@kradle/cli 0.2.4 → 0.2.6
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/README.md +13 -0
- package/dist/commands/challenge/pull.d.ts +15 -0
- package/dist/commands/challenge/pull.js +182 -0
- package/dist/commands/world/delete.d.ts +14 -0
- package/dist/commands/world/delete.js +80 -0
- package/dist/commands/world/import.d.ts +14 -0
- package/dist/commands/world/import.js +116 -0
- package/dist/commands/world/list.d.ts +10 -0
- package/dist/commands/world/list.js +46 -0
- package/dist/commands/world/pull.d.ts +14 -0
- package/dist/commands/world/pull.js +135 -0
- package/dist/commands/world/push.d.ts +13 -0
- package/dist/commands/world/push.js +64 -0
- package/dist/lib/api-client.d.ts +13 -2
- package/dist/lib/api-client.js +59 -2
- package/dist/lib/arguments.d.ts +6 -6
- package/dist/lib/arguments.js +24 -9
- package/dist/lib/challenge.d.ts +0 -3
- package/dist/lib/challenge.js +3 -13
- package/dist/lib/schemas.d.ts +46 -4
- package/dist/lib/schemas.js +24 -3
- package/dist/lib/utils.d.ts +1 -0
- package/dist/lib/utils.js +9 -0
- package/dist/lib/world.d.ts +21 -0
- package/dist/lib/world.js +102 -0
- package/oclif.manifest.json +388 -49
- package/package.json +4 -1
- package/static/ai_docs/LLM_CLI_REFERENCE.md +56 -0
package/oclif.manifest.json
CHANGED
|
@@ -86,6 +86,54 @@
|
|
|
86
86
|
"list.js"
|
|
87
87
|
]
|
|
88
88
|
},
|
|
89
|
+
"ai-docs:api": {
|
|
90
|
+
"aliases": [],
|
|
91
|
+
"args": {},
|
|
92
|
+
"description": "Output the Kradle API reference documentation for LLMs",
|
|
93
|
+
"examples": [
|
|
94
|
+
"<%= config.bin %> <%= command.id %>"
|
|
95
|
+
],
|
|
96
|
+
"flags": {},
|
|
97
|
+
"hasDynamicHelp": false,
|
|
98
|
+
"hiddenAliases": [],
|
|
99
|
+
"id": "ai-docs:api",
|
|
100
|
+
"pluginAlias": "@kradle/cli",
|
|
101
|
+
"pluginName": "@kradle/cli",
|
|
102
|
+
"pluginType": "core",
|
|
103
|
+
"strict": true,
|
|
104
|
+
"enableJsonFlag": false,
|
|
105
|
+
"isESM": true,
|
|
106
|
+
"relativePath": [
|
|
107
|
+
"dist",
|
|
108
|
+
"commands",
|
|
109
|
+
"ai-docs",
|
|
110
|
+
"api.js"
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
"ai-docs:cli": {
|
|
114
|
+
"aliases": [],
|
|
115
|
+
"args": {},
|
|
116
|
+
"description": "Output the Kradle CLI reference documentation for LLMs",
|
|
117
|
+
"examples": [
|
|
118
|
+
"<%= config.bin %> <%= command.id %>"
|
|
119
|
+
],
|
|
120
|
+
"flags": {},
|
|
121
|
+
"hasDynamicHelp": false,
|
|
122
|
+
"hiddenAliases": [],
|
|
123
|
+
"id": "ai-docs:cli",
|
|
124
|
+
"pluginAlias": "@kradle/cli",
|
|
125
|
+
"pluginName": "@kradle/cli",
|
|
126
|
+
"pluginType": "core",
|
|
127
|
+
"strict": true,
|
|
128
|
+
"enableJsonFlag": false,
|
|
129
|
+
"isESM": true,
|
|
130
|
+
"relativePath": [
|
|
131
|
+
"dist",
|
|
132
|
+
"commands",
|
|
133
|
+
"ai-docs",
|
|
134
|
+
"cli.js"
|
|
135
|
+
]
|
|
136
|
+
},
|
|
89
137
|
"challenge:build": {
|
|
90
138
|
"aliases": [],
|
|
91
139
|
"args": {
|
|
@@ -357,6 +405,75 @@
|
|
|
357
405
|
"list.js"
|
|
358
406
|
]
|
|
359
407
|
},
|
|
408
|
+
"challenge:pull": {
|
|
409
|
+
"aliases": [],
|
|
410
|
+
"args": {
|
|
411
|
+
"challengeSlug": {
|
|
412
|
+
"description": "Challenge slug to pull (interactive selection if omitted)",
|
|
413
|
+
"name": "challengeSlug",
|
|
414
|
+
"required": false
|
|
415
|
+
}
|
|
416
|
+
},
|
|
417
|
+
"description": "Pull a challenge from the cloud and extract source files locally",
|
|
418
|
+
"examples": [
|
|
419
|
+
"<%= config.bin %> <%= command.id %>",
|
|
420
|
+
"<%= config.bin %> <%= command.id %> my-challenge",
|
|
421
|
+
"<%= config.bin %> <%= command.id %> username:my-challenge",
|
|
422
|
+
"<%= config.bin %> <%= command.id %> my-challenge --yes"
|
|
423
|
+
],
|
|
424
|
+
"flags": {
|
|
425
|
+
"yes": {
|
|
426
|
+
"char": "y",
|
|
427
|
+
"description": "Skip confirmation prompts",
|
|
428
|
+
"name": "yes",
|
|
429
|
+
"allowNo": false,
|
|
430
|
+
"type": "boolean"
|
|
431
|
+
},
|
|
432
|
+
"api-key": {
|
|
433
|
+
"description": "Kradle API key",
|
|
434
|
+
"env": "KRADLE_API_KEY",
|
|
435
|
+
"name": "api-key",
|
|
436
|
+
"required": true,
|
|
437
|
+
"hasDynamicHelp": false,
|
|
438
|
+
"multiple": false,
|
|
439
|
+
"type": "option"
|
|
440
|
+
},
|
|
441
|
+
"api-url": {
|
|
442
|
+
"description": "Kradle Web API URL",
|
|
443
|
+
"env": "KRADLE_API_URL",
|
|
444
|
+
"name": "api-url",
|
|
445
|
+
"required": true,
|
|
446
|
+
"default": "https://api.kradle.ai/v0",
|
|
447
|
+
"hasDynamicHelp": false,
|
|
448
|
+
"multiple": false,
|
|
449
|
+
"type": "option"
|
|
450
|
+
},
|
|
451
|
+
"challenges-path": {
|
|
452
|
+
"description": "Absolute path to the challenges directory",
|
|
453
|
+
"env": "KRADLE_CHALLENGES_PATH",
|
|
454
|
+
"name": "challenges-path",
|
|
455
|
+
"default": "~/Documents/kradle-studio/challenges",
|
|
456
|
+
"hasDynamicHelp": false,
|
|
457
|
+
"multiple": false,
|
|
458
|
+
"type": "option"
|
|
459
|
+
}
|
|
460
|
+
},
|
|
461
|
+
"hasDynamicHelp": false,
|
|
462
|
+
"hiddenAliases": [],
|
|
463
|
+
"id": "challenge:pull",
|
|
464
|
+
"pluginAlias": "@kradle/cli",
|
|
465
|
+
"pluginName": "@kradle/cli",
|
|
466
|
+
"pluginType": "core",
|
|
467
|
+
"strict": true,
|
|
468
|
+
"enableJsonFlag": false,
|
|
469
|
+
"isESM": true,
|
|
470
|
+
"relativePath": [
|
|
471
|
+
"dist",
|
|
472
|
+
"commands",
|
|
473
|
+
"challenge",
|
|
474
|
+
"pull.js"
|
|
475
|
+
]
|
|
476
|
+
},
|
|
360
477
|
"challenge:run": {
|
|
361
478
|
"aliases": [],
|
|
362
479
|
"args": {
|
|
@@ -518,54 +635,6 @@
|
|
|
518
635
|
"watch.js"
|
|
519
636
|
]
|
|
520
637
|
},
|
|
521
|
-
"ai-docs:api": {
|
|
522
|
-
"aliases": [],
|
|
523
|
-
"args": {},
|
|
524
|
-
"description": "Output the Kradle API reference documentation for LLMs",
|
|
525
|
-
"examples": [
|
|
526
|
-
"<%= config.bin %> <%= command.id %>"
|
|
527
|
-
],
|
|
528
|
-
"flags": {},
|
|
529
|
-
"hasDynamicHelp": false,
|
|
530
|
-
"hiddenAliases": [],
|
|
531
|
-
"id": "ai-docs:api",
|
|
532
|
-
"pluginAlias": "@kradle/cli",
|
|
533
|
-
"pluginName": "@kradle/cli",
|
|
534
|
-
"pluginType": "core",
|
|
535
|
-
"strict": true,
|
|
536
|
-
"enableJsonFlag": false,
|
|
537
|
-
"isESM": true,
|
|
538
|
-
"relativePath": [
|
|
539
|
-
"dist",
|
|
540
|
-
"commands",
|
|
541
|
-
"ai-docs",
|
|
542
|
-
"api.js"
|
|
543
|
-
]
|
|
544
|
-
},
|
|
545
|
-
"ai-docs:cli": {
|
|
546
|
-
"aliases": [],
|
|
547
|
-
"args": {},
|
|
548
|
-
"description": "Output the Kradle CLI reference documentation for LLMs",
|
|
549
|
-
"examples": [
|
|
550
|
-
"<%= config.bin %> <%= command.id %>"
|
|
551
|
-
],
|
|
552
|
-
"flags": {},
|
|
553
|
-
"hasDynamicHelp": false,
|
|
554
|
-
"hiddenAliases": [],
|
|
555
|
-
"id": "ai-docs:cli",
|
|
556
|
-
"pluginAlias": "@kradle/cli",
|
|
557
|
-
"pluginName": "@kradle/cli",
|
|
558
|
-
"pluginType": "core",
|
|
559
|
-
"strict": true,
|
|
560
|
-
"enableJsonFlag": false,
|
|
561
|
-
"isESM": true,
|
|
562
|
-
"relativePath": [
|
|
563
|
-
"dist",
|
|
564
|
-
"commands",
|
|
565
|
-
"ai-docs",
|
|
566
|
-
"cli.js"
|
|
567
|
-
]
|
|
568
|
-
},
|
|
569
638
|
"experiment:create": {
|
|
570
639
|
"aliases": [],
|
|
571
640
|
"args": {
|
|
@@ -798,7 +867,277 @@
|
|
|
798
867
|
"experiment",
|
|
799
868
|
"run.js"
|
|
800
869
|
]
|
|
870
|
+
},
|
|
871
|
+
"world:delete": {
|
|
872
|
+
"aliases": [],
|
|
873
|
+
"args": {
|
|
874
|
+
"worldSlug": {
|
|
875
|
+
"description": "World slug to delete",
|
|
876
|
+
"name": "worldSlug",
|
|
877
|
+
"required": true
|
|
878
|
+
}
|
|
879
|
+
},
|
|
880
|
+
"description": "Delete a world locally, from the cloud, or both",
|
|
881
|
+
"examples": [
|
|
882
|
+
"<%= config.bin %> <%= command.id %> my-world",
|
|
883
|
+
"<%= config.bin %> <%= command.id %> my-world --yes"
|
|
884
|
+
],
|
|
885
|
+
"flags": {
|
|
886
|
+
"yes": {
|
|
887
|
+
"char": "y",
|
|
888
|
+
"description": "Skip confirmation prompts",
|
|
889
|
+
"name": "yes",
|
|
890
|
+
"allowNo": false,
|
|
891
|
+
"type": "boolean"
|
|
892
|
+
},
|
|
893
|
+
"api-key": {
|
|
894
|
+
"description": "Kradle API key",
|
|
895
|
+
"env": "KRADLE_API_KEY",
|
|
896
|
+
"name": "api-key",
|
|
897
|
+
"required": true,
|
|
898
|
+
"hasDynamicHelp": false,
|
|
899
|
+
"multiple": false,
|
|
900
|
+
"type": "option"
|
|
901
|
+
},
|
|
902
|
+
"api-url": {
|
|
903
|
+
"description": "Kradle Web API URL",
|
|
904
|
+
"env": "KRADLE_API_URL",
|
|
905
|
+
"name": "api-url",
|
|
906
|
+
"required": true,
|
|
907
|
+
"default": "https://api.kradle.ai/v0",
|
|
908
|
+
"hasDynamicHelp": false,
|
|
909
|
+
"multiple": false,
|
|
910
|
+
"type": "option"
|
|
911
|
+
}
|
|
912
|
+
},
|
|
913
|
+
"hasDynamicHelp": false,
|
|
914
|
+
"hiddenAliases": [],
|
|
915
|
+
"id": "world:delete",
|
|
916
|
+
"pluginAlias": "@kradle/cli",
|
|
917
|
+
"pluginName": "@kradle/cli",
|
|
918
|
+
"pluginType": "core",
|
|
919
|
+
"strict": true,
|
|
920
|
+
"enableJsonFlag": false,
|
|
921
|
+
"isESM": true,
|
|
922
|
+
"relativePath": [
|
|
923
|
+
"dist",
|
|
924
|
+
"commands",
|
|
925
|
+
"world",
|
|
926
|
+
"delete.js"
|
|
927
|
+
]
|
|
928
|
+
},
|
|
929
|
+
"world:import": {
|
|
930
|
+
"aliases": [],
|
|
931
|
+
"args": {
|
|
932
|
+
"path": {
|
|
933
|
+
"description": "Path to the Minecraft world folder",
|
|
934
|
+
"name": "path",
|
|
935
|
+
"required": true
|
|
936
|
+
}
|
|
937
|
+
},
|
|
938
|
+
"description": "Import a Minecraft world folder and package it as a tarball",
|
|
939
|
+
"examples": [
|
|
940
|
+
"<%= config.bin %> <%= command.id %> ~/minecraft/saves/MyWorld",
|
|
941
|
+
"<%= config.bin %> <%= command.id %> ~/minecraft/saves/MyWorld --as my-world"
|
|
942
|
+
],
|
|
943
|
+
"flags": {
|
|
944
|
+
"as": {
|
|
945
|
+
"description": "Slug for the world (defaults to folder name converted to slug)",
|
|
946
|
+
"name": "as",
|
|
947
|
+
"hasDynamicHelp": false,
|
|
948
|
+
"multiple": false,
|
|
949
|
+
"type": "option"
|
|
950
|
+
},
|
|
951
|
+
"api-key": {
|
|
952
|
+
"description": "Kradle API key",
|
|
953
|
+
"env": "KRADLE_API_KEY",
|
|
954
|
+
"name": "api-key",
|
|
955
|
+
"required": true,
|
|
956
|
+
"hasDynamicHelp": false,
|
|
957
|
+
"multiple": false,
|
|
958
|
+
"type": "option"
|
|
959
|
+
},
|
|
960
|
+
"api-url": {
|
|
961
|
+
"description": "Kradle Web API URL",
|
|
962
|
+
"env": "KRADLE_API_URL",
|
|
963
|
+
"name": "api-url",
|
|
964
|
+
"required": true,
|
|
965
|
+
"default": "https://api.kradle.ai/v0",
|
|
966
|
+
"hasDynamicHelp": false,
|
|
967
|
+
"multiple": false,
|
|
968
|
+
"type": "option"
|
|
969
|
+
}
|
|
970
|
+
},
|
|
971
|
+
"hasDynamicHelp": false,
|
|
972
|
+
"hiddenAliases": [],
|
|
973
|
+
"id": "world:import",
|
|
974
|
+
"pluginAlias": "@kradle/cli",
|
|
975
|
+
"pluginName": "@kradle/cli",
|
|
976
|
+
"pluginType": "core",
|
|
977
|
+
"strict": true,
|
|
978
|
+
"enableJsonFlag": false,
|
|
979
|
+
"isESM": true,
|
|
980
|
+
"relativePath": [
|
|
981
|
+
"dist",
|
|
982
|
+
"commands",
|
|
983
|
+
"world",
|
|
984
|
+
"import.js"
|
|
985
|
+
]
|
|
986
|
+
},
|
|
987
|
+
"world:list": {
|
|
988
|
+
"aliases": [],
|
|
989
|
+
"args": {},
|
|
990
|
+
"description": "List all worlds (local and cloud)",
|
|
991
|
+
"examples": [
|
|
992
|
+
"<%= config.bin %> <%= command.id %>"
|
|
993
|
+
],
|
|
994
|
+
"flags": {
|
|
995
|
+
"api-key": {
|
|
996
|
+
"description": "Kradle API key",
|
|
997
|
+
"env": "KRADLE_API_KEY",
|
|
998
|
+
"name": "api-key",
|
|
999
|
+
"required": true,
|
|
1000
|
+
"hasDynamicHelp": false,
|
|
1001
|
+
"multiple": false,
|
|
1002
|
+
"type": "option"
|
|
1003
|
+
},
|
|
1004
|
+
"api-url": {
|
|
1005
|
+
"description": "Kradle Web API URL",
|
|
1006
|
+
"env": "KRADLE_API_URL",
|
|
1007
|
+
"name": "api-url",
|
|
1008
|
+
"required": true,
|
|
1009
|
+
"default": "https://api.kradle.ai/v0",
|
|
1010
|
+
"hasDynamicHelp": false,
|
|
1011
|
+
"multiple": false,
|
|
1012
|
+
"type": "option"
|
|
1013
|
+
}
|
|
1014
|
+
},
|
|
1015
|
+
"hasDynamicHelp": false,
|
|
1016
|
+
"hiddenAliases": [],
|
|
1017
|
+
"id": "world:list",
|
|
1018
|
+
"pluginAlias": "@kradle/cli",
|
|
1019
|
+
"pluginName": "@kradle/cli",
|
|
1020
|
+
"pluginType": "core",
|
|
1021
|
+
"strict": true,
|
|
1022
|
+
"enableJsonFlag": false,
|
|
1023
|
+
"isESM": true,
|
|
1024
|
+
"relativePath": [
|
|
1025
|
+
"dist",
|
|
1026
|
+
"commands",
|
|
1027
|
+
"world",
|
|
1028
|
+
"list.js"
|
|
1029
|
+
]
|
|
1030
|
+
},
|
|
1031
|
+
"world:pull": {
|
|
1032
|
+
"aliases": [],
|
|
1033
|
+
"args": {
|
|
1034
|
+
"worldSlug": {
|
|
1035
|
+
"description": "World slug to pull (interactive selection if omitted)",
|
|
1036
|
+
"name": "worldSlug",
|
|
1037
|
+
"required": false
|
|
1038
|
+
}
|
|
1039
|
+
},
|
|
1040
|
+
"description": "Download a world from the cloud",
|
|
1041
|
+
"examples": [
|
|
1042
|
+
"<%= config.bin %> <%= command.id %>",
|
|
1043
|
+
"<%= config.bin %> <%= command.id %> my-world",
|
|
1044
|
+
"<%= config.bin %> <%= command.id %> username:my-world",
|
|
1045
|
+
"<%= config.bin %> <%= command.id %> my-world --yes"
|
|
1046
|
+
],
|
|
1047
|
+
"flags": {
|
|
1048
|
+
"yes": {
|
|
1049
|
+
"char": "y",
|
|
1050
|
+
"description": "Skip confirmation prompts",
|
|
1051
|
+
"name": "yes",
|
|
1052
|
+
"allowNo": false,
|
|
1053
|
+
"type": "boolean"
|
|
1054
|
+
},
|
|
1055
|
+
"api-key": {
|
|
1056
|
+
"description": "Kradle API key",
|
|
1057
|
+
"env": "KRADLE_API_KEY",
|
|
1058
|
+
"name": "api-key",
|
|
1059
|
+
"required": true,
|
|
1060
|
+
"hasDynamicHelp": false,
|
|
1061
|
+
"multiple": false,
|
|
1062
|
+
"type": "option"
|
|
1063
|
+
},
|
|
1064
|
+
"api-url": {
|
|
1065
|
+
"description": "Kradle Web API URL",
|
|
1066
|
+
"env": "KRADLE_API_URL",
|
|
1067
|
+
"name": "api-url",
|
|
1068
|
+
"required": true,
|
|
1069
|
+
"default": "https://api.kradle.ai/v0",
|
|
1070
|
+
"hasDynamicHelp": false,
|
|
1071
|
+
"multiple": false,
|
|
1072
|
+
"type": "option"
|
|
1073
|
+
}
|
|
1074
|
+
},
|
|
1075
|
+
"hasDynamicHelp": false,
|
|
1076
|
+
"hiddenAliases": [],
|
|
1077
|
+
"id": "world:pull",
|
|
1078
|
+
"pluginAlias": "@kradle/cli",
|
|
1079
|
+
"pluginName": "@kradle/cli",
|
|
1080
|
+
"pluginType": "core",
|
|
1081
|
+
"strict": true,
|
|
1082
|
+
"enableJsonFlag": false,
|
|
1083
|
+
"isESM": true,
|
|
1084
|
+
"relativePath": [
|
|
1085
|
+
"dist",
|
|
1086
|
+
"commands",
|
|
1087
|
+
"world",
|
|
1088
|
+
"pull.js"
|
|
1089
|
+
]
|
|
1090
|
+
},
|
|
1091
|
+
"world:push": {
|
|
1092
|
+
"aliases": [],
|
|
1093
|
+
"args": {
|
|
1094
|
+
"worldSlug": {
|
|
1095
|
+
"description": "World slug to push",
|
|
1096
|
+
"name": "worldSlug",
|
|
1097
|
+
"required": true
|
|
1098
|
+
}
|
|
1099
|
+
},
|
|
1100
|
+
"description": "Upload a world (config + tarball) to the cloud",
|
|
1101
|
+
"examples": [
|
|
1102
|
+
"<%= config.bin %> <%= command.id %> my-world"
|
|
1103
|
+
],
|
|
1104
|
+
"flags": {
|
|
1105
|
+
"api-key": {
|
|
1106
|
+
"description": "Kradle API key",
|
|
1107
|
+
"env": "KRADLE_API_KEY",
|
|
1108
|
+
"name": "api-key",
|
|
1109
|
+
"required": true,
|
|
1110
|
+
"hasDynamicHelp": false,
|
|
1111
|
+
"multiple": false,
|
|
1112
|
+
"type": "option"
|
|
1113
|
+
},
|
|
1114
|
+
"api-url": {
|
|
1115
|
+
"description": "Kradle Web API URL",
|
|
1116
|
+
"env": "KRADLE_API_URL",
|
|
1117
|
+
"name": "api-url",
|
|
1118
|
+
"required": true,
|
|
1119
|
+
"default": "https://api.kradle.ai/v0",
|
|
1120
|
+
"hasDynamicHelp": false,
|
|
1121
|
+
"multiple": false,
|
|
1122
|
+
"type": "option"
|
|
1123
|
+
}
|
|
1124
|
+
},
|
|
1125
|
+
"hasDynamicHelp": false,
|
|
1126
|
+
"hiddenAliases": [],
|
|
1127
|
+
"id": "world:push",
|
|
1128
|
+
"pluginAlias": "@kradle/cli",
|
|
1129
|
+
"pluginName": "@kradle/cli",
|
|
1130
|
+
"pluginType": "core",
|
|
1131
|
+
"strict": true,
|
|
1132
|
+
"enableJsonFlag": false,
|
|
1133
|
+
"isESM": true,
|
|
1134
|
+
"relativePath": [
|
|
1135
|
+
"dist",
|
|
1136
|
+
"commands",
|
|
1137
|
+
"world",
|
|
1138
|
+
"push.js"
|
|
1139
|
+
]
|
|
801
1140
|
}
|
|
802
1141
|
},
|
|
803
|
-
"version": "0.2.
|
|
1142
|
+
"version": "0.2.6"
|
|
804
1143
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kradle/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.6",
|
|
4
4
|
"description": "Kradle's CLI. Manage challenges, experiments, agents and more!",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cli"
|
|
@@ -84,6 +84,9 @@
|
|
|
84
84
|
},
|
|
85
85
|
"ai-docs": {
|
|
86
86
|
"description": "Output LLM reference documentation"
|
|
87
|
+
},
|
|
88
|
+
"world": {
|
|
89
|
+
"description": "Manage worlds"
|
|
87
90
|
}
|
|
88
91
|
}
|
|
89
92
|
}
|
|
@@ -223,6 +223,61 @@ kradle challenge list
|
|
|
223
223
|
|
|
224
224
|
---
|
|
225
225
|
|
|
226
|
+
### `kradle challenge pull [name]`
|
|
227
|
+
|
|
228
|
+
Downloads a challenge from the cloud and extracts source files locally.
|
|
229
|
+
|
|
230
|
+
**Usage:**
|
|
231
|
+
```bash
|
|
232
|
+
kradle challenge pull
|
|
233
|
+
kradle challenge pull <challenge-name>
|
|
234
|
+
kradle challenge pull <team-name>:<challenge-name>
|
|
235
|
+
kradle challenge pull <challenge-name> --yes
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
**Arguments:**
|
|
239
|
+
| Argument | Description | Required |
|
|
240
|
+
|----------|-------------|----------|
|
|
241
|
+
| `challenge-name` | Challenge slug to pull. Can be a short slug (e.g., `my-challenge`) or include a team/user namespace (e.g., `team-name:my-challenge`). If omitted, shows interactive selection. | No |
|
|
242
|
+
|
|
243
|
+
**Flags:**
|
|
244
|
+
| Flag | Short | Description | Default |
|
|
245
|
+
|------|-------|-------------|---------|
|
|
246
|
+
| `--yes` | `-y` | Skip confirmation prompts when overwriting local files | false |
|
|
247
|
+
|
|
248
|
+
**What it does:**
|
|
249
|
+
1. Downloads the challenge tarball from cloud storage
|
|
250
|
+
2. Extracts `challenge.ts` and `config.ts` from the `.src` folder in the tarball
|
|
251
|
+
3. Places files in `challenges/<short-slug>/` directory
|
|
252
|
+
4. Builds the datapack locally
|
|
253
|
+
|
|
254
|
+
**Interactive mode (no slug argument):**
|
|
255
|
+
- Shows list of all cloud challenges (your own + team-kradle)
|
|
256
|
+
- Marks challenges that exist locally with "(local)" indicator
|
|
257
|
+
- Select a challenge to pull
|
|
258
|
+
|
|
259
|
+
**Confirmation prompt:**
|
|
260
|
+
When pulling over existing local files (without `--yes`), shows:
|
|
261
|
+
- Which files will be overwritten
|
|
262
|
+
- Asks for confirmation before proceeding
|
|
263
|
+
|
|
264
|
+
**Examples:**
|
|
265
|
+
```bash
|
|
266
|
+
# Interactive selection from all cloud challenges
|
|
267
|
+
kradle challenge pull
|
|
268
|
+
|
|
269
|
+
# Pull your own challenge
|
|
270
|
+
kradle challenge pull my-challenge
|
|
271
|
+
|
|
272
|
+
# Pull a public challenge from another team
|
|
273
|
+
kradle challenge pull team-kradle:example-challenge
|
|
274
|
+
|
|
275
|
+
# Pull without confirmation prompt
|
|
276
|
+
kradle challenge pull my-challenge --yes
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
226
281
|
### `kradle challenge watch <name>`
|
|
227
282
|
|
|
228
283
|
Watches a challenge for file changes and automatically rebuilds/uploads.
|
|
@@ -663,6 +718,7 @@ kradle challenge build --all --visibility public
|
|
|
663
718
|
| `kradle challenge build --all` | Build all challenges |
|
|
664
719
|
| `kradle challenge delete <name>` | Delete challenge |
|
|
665
720
|
| `kradle challenge list` | List all challenges |
|
|
721
|
+
| `kradle challenge pull [name]` | Pull challenge from cloud |
|
|
666
722
|
| `kradle challenge watch <name>` | Watch and auto-rebuild |
|
|
667
723
|
| `kradle challenge run <name>` | Run challenge |
|
|
668
724
|
| `kradle experiment create <name>` | Create new experiment |
|