blockmine 1.23.4 → 1.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (954) hide show
  1. package/CHANGELOG.md +82 -32
  2. package/README.en.md +427 -0
  3. package/README.md +40 -0
  4. package/backend/cli.js +1 -1
  5. package/backend/src/ai/plugin-assistant-system-prompt.md +725 -6
  6. package/backend/src/api/routes/aiAssistant.js +562 -103
  7. package/backend/src/api/routes/botUsers.js +30 -10
  8. package/backend/src/api/routes/bots.js +112 -21
  9. package/backend/src/api/routes/servers.js +14 -2
  10. package/backend/src/core/BotProcess.js +139 -7
  11. package/backend/src/core/GraphExecutionEngine.js +9 -2
  12. package/backend/src/core/PluginHooks.js +221 -0
  13. package/backend/src/core/PluginLoader.js +83 -3
  14. package/backend/src/core/PluginManager.js +85 -5
  15. package/backend/src/core/node-registries/container.js +162 -0
  16. package/backend/src/core/node-registries/furnace.js +143 -0
  17. package/backend/src/core/node-registries/inventory.js +181 -0
  18. package/backend/src/core/node-registries/navigation.js +111 -0
  19. package/backend/src/core/nodes/container/close.js +26 -0
  20. package/backend/src/core/nodes/container/deposit.js +88 -0
  21. package/backend/src/core/nodes/container/deposit_all.js +71 -0
  22. package/backend/src/core/nodes/container/find_item.js +77 -0
  23. package/backend/src/core/nodes/container/get_items.js +51 -0
  24. package/backend/src/core/nodes/container/open.js +111 -0
  25. package/backend/src/core/nodes/container/withdraw.js +91 -0
  26. package/backend/src/core/nodes/furnace/close.js +24 -0
  27. package/backend/src/core/nodes/furnace/get_status.js +74 -0
  28. package/backend/src/core/nodes/furnace/open.js +110 -0
  29. package/backend/src/core/nodes/furnace/put_fuel.js +64 -0
  30. package/backend/src/core/nodes/furnace/put_input.js +64 -0
  31. package/backend/src/core/nodes/furnace/take_output.js +69 -0
  32. package/backend/src/core/nodes/inventory/count_item.js +28 -0
  33. package/backend/src/core/nodes/inventory/drop.js +65 -0
  34. package/backend/src/core/nodes/inventory/equip.js +45 -0
  35. package/backend/src/core/nodes/inventory/find_item.js +55 -0
  36. package/backend/src/core/nodes/inventory/get_all.js +45 -0
  37. package/backend/src/core/nodes/inventory/get_held_item.js +63 -0
  38. package/backend/src/core/nodes/inventory/get_slot.js +46 -0
  39. package/backend/src/core/nodes/inventory/has_item.js +35 -0
  40. package/backend/src/core/nodes/inventory/select_slot.js +46 -0
  41. package/backend/src/core/nodes/navigation/follow.js +51 -0
  42. package/backend/src/core/nodes/navigation/go_to.js +53 -0
  43. package/backend/src/core/nodes/navigation/go_to_entity.js +69 -0
  44. package/backend/src/core/nodes/navigation/go_to_player.js +70 -0
  45. package/backend/src/core/nodes/navigation/stop.js +26 -0
  46. package/backend/src/core/services/BotLifecycleService.js +186 -2
  47. package/backend/src/core/services/MinecraftViewerService.js +2 -0
  48. package/backend/src/server.js +11 -1
  49. package/frontend/dist/assets/browser-ponyfill-DN7pwmHT.js +2 -0
  50. package/frontend/dist/assets/index-LSy71uwm.js +11261 -0
  51. package/frontend/dist/assets/index-SfhKxI4-.css +32 -0
  52. package/frontend/dist/flags/en.svg +32 -0
  53. package/frontend/dist/flags/ru.svg +5 -0
  54. package/frontend/dist/index.html +2 -2
  55. package/frontend/dist/locales/en/admin.json +100 -0
  56. package/frontend/dist/locales/en/api-keys.json +58 -0
  57. package/frontend/dist/locales/en/bots.json +110 -0
  58. package/frontend/dist/locales/en/common.json +47 -0
  59. package/frontend/dist/locales/en/configuration.json +22 -0
  60. package/frontend/dist/locales/en/console.json +10 -0
  61. package/frontend/dist/locales/en/dashboard.json +85 -0
  62. package/frontend/dist/locales/en/dialogs.json +70 -0
  63. package/frontend/dist/locales/en/event-graphs.json +50 -0
  64. package/frontend/dist/locales/en/graph-store.json +70 -0
  65. package/frontend/dist/locales/en/login.json +34 -0
  66. package/frontend/dist/locales/en/management.json +114 -0
  67. package/frontend/dist/locales/en/minecraft-viewer.json +27 -0
  68. package/frontend/dist/locales/en/nodes.json +1077 -0
  69. package/frontend/dist/locales/en/permissions.json +50 -0
  70. package/frontend/dist/locales/en/plugin-detail.json +49 -0
  71. package/frontend/dist/locales/en/plugins.json +110 -0
  72. package/frontend/dist/locales/en/proxies.json +81 -0
  73. package/frontend/dist/locales/en/servers.json +39 -0
  74. package/frontend/dist/locales/en/setup.json +17 -0
  75. package/frontend/dist/locales/en/sidebar.json +27 -0
  76. package/frontend/dist/locales/en/tasks.json +62 -0
  77. package/frontend/dist/locales/en/visual-editor.json +219 -0
  78. package/frontend/dist/locales/en/websocket.json +86 -0
  79. package/frontend/dist/locales/ru/admin.json +100 -0
  80. package/frontend/dist/locales/ru/api-keys.json +58 -0
  81. package/frontend/dist/locales/ru/bots.json +110 -0
  82. package/frontend/dist/locales/ru/common.json +49 -0
  83. package/frontend/dist/locales/ru/configuration.json +22 -0
  84. package/frontend/dist/locales/ru/console.json +10 -0
  85. package/frontend/dist/locales/ru/dashboard.json +85 -0
  86. package/frontend/dist/locales/ru/dialogs.json +70 -0
  87. package/frontend/dist/locales/ru/event-graphs.json +50 -0
  88. package/frontend/dist/locales/ru/graph-store.json +70 -0
  89. package/frontend/dist/locales/ru/login.json +34 -0
  90. package/frontend/dist/locales/ru/management.json +114 -0
  91. package/frontend/dist/locales/ru/minecraft-viewer.json +27 -0
  92. package/frontend/dist/locales/ru/nodes.json +1077 -0
  93. package/frontend/dist/locales/ru/permissions.json +50 -0
  94. package/frontend/dist/locales/ru/plugin-detail.json +49 -0
  95. package/frontend/dist/locales/ru/plugins.json +110 -0
  96. package/frontend/dist/locales/ru/proxies.json +81 -0
  97. package/frontend/dist/locales/ru/servers.json +39 -0
  98. package/frontend/dist/locales/ru/setup.json +17 -0
  99. package/frontend/dist/locales/ru/sidebar.json +27 -0
  100. package/frontend/dist/locales/ru/tasks.json +62 -0
  101. package/frontend/dist/locales/ru/visual-editor.json +221 -0
  102. package/frontend/dist/locales/ru/websocket.json +86 -0
  103. package/frontend/dist/minecraft-assets/items/acacia_boat.png +0 -0
  104. package/frontend/dist/minecraft-assets/items/acacia_chest_boat.png +0 -0
  105. package/frontend/dist/minecraft-assets/items/acacia_door.png +0 -0
  106. package/frontend/dist/minecraft-assets/items/acacia_hanging_sign.png +0 -0
  107. package/frontend/dist/minecraft-assets/items/acacia_sign.png +0 -0
  108. package/frontend/dist/minecraft-assets/items/amethyst_shard.png +0 -0
  109. package/frontend/dist/minecraft-assets/items/angler_pottery_sherd.png +0 -0
  110. package/frontend/dist/minecraft-assets/items/apple.png +0 -0
  111. package/frontend/dist/minecraft-assets/items/archer_pottery_sherd.png +0 -0
  112. package/frontend/dist/minecraft-assets/items/armor_stand.png +0 -0
  113. package/frontend/dist/minecraft-assets/items/arms_up_pottery_sherd.png +0 -0
  114. package/frontend/dist/minecraft-assets/items/arrow.png +0 -0
  115. package/frontend/dist/minecraft-assets/items/axolotl_bucket.png +0 -0
  116. package/frontend/dist/minecraft-assets/items/baked_potato.png +0 -0
  117. package/frontend/dist/minecraft-assets/items/bamboo.png +0 -0
  118. package/frontend/dist/minecraft-assets/items/bamboo_chest_raft.png +0 -0
  119. package/frontend/dist/minecraft-assets/items/bamboo_door.png +0 -0
  120. package/frontend/dist/minecraft-assets/items/bamboo_hanging_sign.png +0 -0
  121. package/frontend/dist/minecraft-assets/items/bamboo_raft.png +0 -0
  122. package/frontend/dist/minecraft-assets/items/bamboo_sign.png +0 -0
  123. package/frontend/dist/minecraft-assets/items/barrier.png +0 -0
  124. package/frontend/dist/minecraft-assets/items/beef.png +0 -0
  125. package/frontend/dist/minecraft-assets/items/beetroot.png +0 -0
  126. package/frontend/dist/minecraft-assets/items/beetroot_seeds.png +0 -0
  127. package/frontend/dist/minecraft-assets/items/beetroot_soup.png +0 -0
  128. package/frontend/dist/minecraft-assets/items/bell.png +0 -0
  129. package/frontend/dist/minecraft-assets/items/birch_boat.png +0 -0
  130. package/frontend/dist/minecraft-assets/items/birch_chest_boat.png +0 -0
  131. package/frontend/dist/minecraft-assets/items/birch_door.png +0 -0
  132. package/frontend/dist/minecraft-assets/items/birch_hanging_sign.png +0 -0
  133. package/frontend/dist/minecraft-assets/items/birch_sign.png +0 -0
  134. package/frontend/dist/minecraft-assets/items/black_candle.png +0 -0
  135. package/frontend/dist/minecraft-assets/items/black_dye.png +0 -0
  136. package/frontend/dist/minecraft-assets/items/blade_pottery_sherd.png +0 -0
  137. package/frontend/dist/minecraft-assets/items/blaze_powder.png +0 -0
  138. package/frontend/dist/minecraft-assets/items/blaze_rod.png +0 -0
  139. package/frontend/dist/minecraft-assets/items/blue_candle.png +0 -0
  140. package/frontend/dist/minecraft-assets/items/blue_dye.png +0 -0
  141. package/frontend/dist/minecraft-assets/items/bone.png +0 -0
  142. package/frontend/dist/minecraft-assets/items/bone_meal.png +0 -0
  143. package/frontend/dist/minecraft-assets/items/book.png +0 -0
  144. package/frontend/dist/minecraft-assets/items/bow.png +0 -0
  145. package/frontend/dist/minecraft-assets/items/bow_pulling_0.png +0 -0
  146. package/frontend/dist/minecraft-assets/items/bow_pulling_1.png +0 -0
  147. package/frontend/dist/minecraft-assets/items/bow_pulling_2.png +0 -0
  148. package/frontend/dist/minecraft-assets/items/bowl.png +0 -0
  149. package/frontend/dist/minecraft-assets/items/bread.png +0 -0
  150. package/frontend/dist/minecraft-assets/items/brewer_pottery_sherd.png +0 -0
  151. package/frontend/dist/minecraft-assets/items/brewing_stand.png +0 -0
  152. package/frontend/dist/minecraft-assets/items/brick.png +0 -0
  153. package/frontend/dist/minecraft-assets/items/broken_elytra.png +0 -0
  154. package/frontend/dist/minecraft-assets/items/brown_candle.png +0 -0
  155. package/frontend/dist/minecraft-assets/items/brown_dye.png +0 -0
  156. package/frontend/dist/minecraft-assets/items/brush.png +0 -0
  157. package/frontend/dist/minecraft-assets/items/bucket.png +0 -0
  158. package/frontend/dist/minecraft-assets/items/bundle.png +0 -0
  159. package/frontend/dist/minecraft-assets/items/bundle_filled.png +0 -0
  160. package/frontend/dist/minecraft-assets/items/burn_pottery_sherd.png +0 -0
  161. package/frontend/dist/minecraft-assets/items/cake.png +0 -0
  162. package/frontend/dist/minecraft-assets/items/campfire.png +0 -0
  163. package/frontend/dist/minecraft-assets/items/candle.png +0 -0
  164. package/frontend/dist/minecraft-assets/items/carrot.png +0 -0
  165. package/frontend/dist/minecraft-assets/items/carrot_on_a_stick.png +0 -0
  166. package/frontend/dist/minecraft-assets/items/cauldron.png +0 -0
  167. package/frontend/dist/minecraft-assets/items/chain.png +0 -0
  168. package/frontend/dist/minecraft-assets/items/chainmail_boots.png +0 -0
  169. package/frontend/dist/minecraft-assets/items/chainmail_chestplate.png +0 -0
  170. package/frontend/dist/minecraft-assets/items/chainmail_helmet.png +0 -0
  171. package/frontend/dist/minecraft-assets/items/chainmail_leggings.png +0 -0
  172. package/frontend/dist/minecraft-assets/items/charcoal.png +0 -0
  173. package/frontend/dist/minecraft-assets/items/cherry_boat.png +0 -0
  174. package/frontend/dist/minecraft-assets/items/cherry_chest_boat.png +0 -0
  175. package/frontend/dist/minecraft-assets/items/cherry_door.png +0 -0
  176. package/frontend/dist/minecraft-assets/items/cherry_hanging_sign.png +0 -0
  177. package/frontend/dist/minecraft-assets/items/cherry_sign.png +0 -0
  178. package/frontend/dist/minecraft-assets/items/chest_minecart.png +0 -0
  179. package/frontend/dist/minecraft-assets/items/chicken.png +0 -0
  180. package/frontend/dist/minecraft-assets/items/chorus_fruit.png +0 -0
  181. package/frontend/dist/minecraft-assets/items/clay_ball.png +0 -0
  182. package/frontend/dist/minecraft-assets/items/clock_00.png +0 -0
  183. package/frontend/dist/minecraft-assets/items/clock_01.png +0 -0
  184. package/frontend/dist/minecraft-assets/items/clock_02.png +0 -0
  185. package/frontend/dist/minecraft-assets/items/clock_03.png +0 -0
  186. package/frontend/dist/minecraft-assets/items/clock_04.png +0 -0
  187. package/frontend/dist/minecraft-assets/items/clock_05.png +0 -0
  188. package/frontend/dist/minecraft-assets/items/clock_06.png +0 -0
  189. package/frontend/dist/minecraft-assets/items/clock_07.png +0 -0
  190. package/frontend/dist/minecraft-assets/items/clock_08.png +0 -0
  191. package/frontend/dist/minecraft-assets/items/clock_09.png +0 -0
  192. package/frontend/dist/minecraft-assets/items/clock_10.png +0 -0
  193. package/frontend/dist/minecraft-assets/items/clock_11.png +0 -0
  194. package/frontend/dist/minecraft-assets/items/clock_12.png +0 -0
  195. package/frontend/dist/minecraft-assets/items/clock_13.png +0 -0
  196. package/frontend/dist/minecraft-assets/items/clock_14.png +0 -0
  197. package/frontend/dist/minecraft-assets/items/clock_15.png +0 -0
  198. package/frontend/dist/minecraft-assets/items/clock_16.png +0 -0
  199. package/frontend/dist/minecraft-assets/items/clock_17.png +0 -0
  200. package/frontend/dist/minecraft-assets/items/clock_18.png +0 -0
  201. package/frontend/dist/minecraft-assets/items/clock_19.png +0 -0
  202. package/frontend/dist/minecraft-assets/items/clock_20.png +0 -0
  203. package/frontend/dist/minecraft-assets/items/clock_21.png +0 -0
  204. package/frontend/dist/minecraft-assets/items/clock_22.png +0 -0
  205. package/frontend/dist/minecraft-assets/items/clock_23.png +0 -0
  206. package/frontend/dist/minecraft-assets/items/clock_24.png +0 -0
  207. package/frontend/dist/minecraft-assets/items/clock_25.png +0 -0
  208. package/frontend/dist/minecraft-assets/items/clock_26.png +0 -0
  209. package/frontend/dist/minecraft-assets/items/clock_27.png +0 -0
  210. package/frontend/dist/minecraft-assets/items/clock_28.png +0 -0
  211. package/frontend/dist/minecraft-assets/items/clock_29.png +0 -0
  212. package/frontend/dist/minecraft-assets/items/clock_30.png +0 -0
  213. package/frontend/dist/minecraft-assets/items/clock_31.png +0 -0
  214. package/frontend/dist/minecraft-assets/items/clock_32.png +0 -0
  215. package/frontend/dist/minecraft-assets/items/clock_33.png +0 -0
  216. package/frontend/dist/minecraft-assets/items/clock_34.png +0 -0
  217. package/frontend/dist/minecraft-assets/items/clock_35.png +0 -0
  218. package/frontend/dist/minecraft-assets/items/clock_36.png +0 -0
  219. package/frontend/dist/minecraft-assets/items/clock_37.png +0 -0
  220. package/frontend/dist/minecraft-assets/items/clock_38.png +0 -0
  221. package/frontend/dist/minecraft-assets/items/clock_39.png +0 -0
  222. package/frontend/dist/minecraft-assets/items/clock_40.png +0 -0
  223. package/frontend/dist/minecraft-assets/items/clock_41.png +0 -0
  224. package/frontend/dist/minecraft-assets/items/clock_42.png +0 -0
  225. package/frontend/dist/minecraft-assets/items/clock_43.png +0 -0
  226. package/frontend/dist/minecraft-assets/items/clock_44.png +0 -0
  227. package/frontend/dist/minecraft-assets/items/clock_45.png +0 -0
  228. package/frontend/dist/minecraft-assets/items/clock_46.png +0 -0
  229. package/frontend/dist/minecraft-assets/items/clock_47.png +0 -0
  230. package/frontend/dist/minecraft-assets/items/clock_48.png +0 -0
  231. package/frontend/dist/minecraft-assets/items/clock_49.png +0 -0
  232. package/frontend/dist/minecraft-assets/items/clock_50.png +0 -0
  233. package/frontend/dist/minecraft-assets/items/clock_51.png +0 -0
  234. package/frontend/dist/minecraft-assets/items/clock_52.png +0 -0
  235. package/frontend/dist/minecraft-assets/items/clock_53.png +0 -0
  236. package/frontend/dist/minecraft-assets/items/clock_54.png +0 -0
  237. package/frontend/dist/minecraft-assets/items/clock_55.png +0 -0
  238. package/frontend/dist/minecraft-assets/items/clock_56.png +0 -0
  239. package/frontend/dist/minecraft-assets/items/clock_57.png +0 -0
  240. package/frontend/dist/minecraft-assets/items/clock_58.png +0 -0
  241. package/frontend/dist/minecraft-assets/items/clock_59.png +0 -0
  242. package/frontend/dist/minecraft-assets/items/clock_60.png +0 -0
  243. package/frontend/dist/minecraft-assets/items/clock_61.png +0 -0
  244. package/frontend/dist/minecraft-assets/items/clock_62.png +0 -0
  245. package/frontend/dist/minecraft-assets/items/clock_63.png +0 -0
  246. package/frontend/dist/minecraft-assets/items/coal.png +0 -0
  247. package/frontend/dist/minecraft-assets/items/coast_armor_trim_smithing_template.png +0 -0
  248. package/frontend/dist/minecraft-assets/items/cocoa_beans.png +0 -0
  249. package/frontend/dist/minecraft-assets/items/cod.png +0 -0
  250. package/frontend/dist/minecraft-assets/items/cod_bucket.png +0 -0
  251. package/frontend/dist/minecraft-assets/items/command_block_minecart.png +0 -0
  252. package/frontend/dist/minecraft-assets/items/comparator.png +0 -0
  253. package/frontend/dist/minecraft-assets/items/compass_00.png +0 -0
  254. package/frontend/dist/minecraft-assets/items/compass_01.png +0 -0
  255. package/frontend/dist/minecraft-assets/items/compass_02.png +0 -0
  256. package/frontend/dist/minecraft-assets/items/compass_03.png +0 -0
  257. package/frontend/dist/minecraft-assets/items/compass_04.png +0 -0
  258. package/frontend/dist/minecraft-assets/items/compass_05.png +0 -0
  259. package/frontend/dist/minecraft-assets/items/compass_06.png +0 -0
  260. package/frontend/dist/minecraft-assets/items/compass_07.png +0 -0
  261. package/frontend/dist/minecraft-assets/items/compass_08.png +0 -0
  262. package/frontend/dist/minecraft-assets/items/compass_09.png +0 -0
  263. package/frontend/dist/minecraft-assets/items/compass_10.png +0 -0
  264. package/frontend/dist/minecraft-assets/items/compass_11.png +0 -0
  265. package/frontend/dist/minecraft-assets/items/compass_12.png +0 -0
  266. package/frontend/dist/minecraft-assets/items/compass_13.png +0 -0
  267. package/frontend/dist/minecraft-assets/items/compass_14.png +0 -0
  268. package/frontend/dist/minecraft-assets/items/compass_15.png +0 -0
  269. package/frontend/dist/minecraft-assets/items/compass_16.png +0 -0
  270. package/frontend/dist/minecraft-assets/items/compass_17.png +0 -0
  271. package/frontend/dist/minecraft-assets/items/compass_18.png +0 -0
  272. package/frontend/dist/minecraft-assets/items/compass_19.png +0 -0
  273. package/frontend/dist/minecraft-assets/items/compass_20.png +0 -0
  274. package/frontend/dist/minecraft-assets/items/compass_21.png +0 -0
  275. package/frontend/dist/minecraft-assets/items/compass_22.png +0 -0
  276. package/frontend/dist/minecraft-assets/items/compass_23.png +0 -0
  277. package/frontend/dist/minecraft-assets/items/compass_24.png +0 -0
  278. package/frontend/dist/minecraft-assets/items/compass_25.png +0 -0
  279. package/frontend/dist/minecraft-assets/items/compass_26.png +0 -0
  280. package/frontend/dist/minecraft-assets/items/compass_27.png +0 -0
  281. package/frontend/dist/minecraft-assets/items/compass_28.png +0 -0
  282. package/frontend/dist/minecraft-assets/items/compass_29.png +0 -0
  283. package/frontend/dist/minecraft-assets/items/compass_30.png +0 -0
  284. package/frontend/dist/minecraft-assets/items/compass_31.png +0 -0
  285. package/frontend/dist/minecraft-assets/items/cooked_beef.png +0 -0
  286. package/frontend/dist/minecraft-assets/items/cooked_chicken.png +0 -0
  287. package/frontend/dist/minecraft-assets/items/cooked_cod.png +0 -0
  288. package/frontend/dist/minecraft-assets/items/cooked_mutton.png +0 -0
  289. package/frontend/dist/minecraft-assets/items/cooked_porkchop.png +0 -0
  290. package/frontend/dist/minecraft-assets/items/cooked_rabbit.png +0 -0
  291. package/frontend/dist/minecraft-assets/items/cooked_salmon.png +0 -0
  292. package/frontend/dist/minecraft-assets/items/cookie.png +0 -0
  293. package/frontend/dist/minecraft-assets/items/copper_ingot.png +0 -0
  294. package/frontend/dist/minecraft-assets/items/creeper_banner_pattern.png +0 -0
  295. package/frontend/dist/minecraft-assets/items/crimson_door.png +0 -0
  296. package/frontend/dist/minecraft-assets/items/crimson_hanging_sign.png +0 -0
  297. package/frontend/dist/minecraft-assets/items/crimson_sign.png +0 -0
  298. package/frontend/dist/minecraft-assets/items/crossbow_arrow.png +0 -0
  299. package/frontend/dist/minecraft-assets/items/crossbow_firework.png +0 -0
  300. package/frontend/dist/minecraft-assets/items/crossbow_pulling_0.png +0 -0
  301. package/frontend/dist/minecraft-assets/items/crossbow_pulling_1.png +0 -0
  302. package/frontend/dist/minecraft-assets/items/crossbow_pulling_2.png +0 -0
  303. package/frontend/dist/minecraft-assets/items/crossbow_standby.png +0 -0
  304. package/frontend/dist/minecraft-assets/items/cyan_candle.png +0 -0
  305. package/frontend/dist/minecraft-assets/items/cyan_dye.png +0 -0
  306. package/frontend/dist/minecraft-assets/items/danger_pottery_sherd.png +0 -0
  307. package/frontend/dist/minecraft-assets/items/dark_oak_boat.png +0 -0
  308. package/frontend/dist/minecraft-assets/items/dark_oak_chest_boat.png +0 -0
  309. package/frontend/dist/minecraft-assets/items/dark_oak_door.png +0 -0
  310. package/frontend/dist/minecraft-assets/items/dark_oak_hanging_sign.png +0 -0
  311. package/frontend/dist/minecraft-assets/items/dark_oak_sign.png +0 -0
  312. package/frontend/dist/minecraft-assets/items/diamond.png +0 -0
  313. package/frontend/dist/minecraft-assets/items/diamond_axe.png +0 -0
  314. package/frontend/dist/minecraft-assets/items/diamond_boots.png +0 -0
  315. package/frontend/dist/minecraft-assets/items/diamond_chestplate.png +0 -0
  316. package/frontend/dist/minecraft-assets/items/diamond_helmet.png +0 -0
  317. package/frontend/dist/minecraft-assets/items/diamond_hoe.png +0 -0
  318. package/frontend/dist/minecraft-assets/items/diamond_horse_armor.png +0 -0
  319. package/frontend/dist/minecraft-assets/items/diamond_leggings.png +0 -0
  320. package/frontend/dist/minecraft-assets/items/diamond_pickaxe.png +0 -0
  321. package/frontend/dist/minecraft-assets/items/diamond_shovel.png +0 -0
  322. package/frontend/dist/minecraft-assets/items/diamond_sword.png +0 -0
  323. package/frontend/dist/minecraft-assets/items/disc_fragment_5.png +0 -0
  324. package/frontend/dist/minecraft-assets/items/dragon_breath.png +0 -0
  325. package/frontend/dist/minecraft-assets/items/dried_kelp.png +0 -0
  326. package/frontend/dist/minecraft-assets/items/dune_armor_trim_smithing_template.png +0 -0
  327. package/frontend/dist/minecraft-assets/items/echo_shard.png +0 -0
  328. package/frontend/dist/minecraft-assets/items/egg.png +0 -0
  329. package/frontend/dist/minecraft-assets/items/elytra.png +0 -0
  330. package/frontend/dist/minecraft-assets/items/emerald.png +0 -0
  331. package/frontend/dist/minecraft-assets/items/empty_armor_slot_boots.png +0 -0
  332. package/frontend/dist/minecraft-assets/items/empty_armor_slot_chestplate.png +0 -0
  333. package/frontend/dist/minecraft-assets/items/empty_armor_slot_helmet.png +0 -0
  334. package/frontend/dist/minecraft-assets/items/empty_armor_slot_leggings.png +0 -0
  335. package/frontend/dist/minecraft-assets/items/empty_armor_slot_shield.png +0 -0
  336. package/frontend/dist/minecraft-assets/items/empty_slot_amethyst_shard.png +0 -0
  337. package/frontend/dist/minecraft-assets/items/empty_slot_axe.png +0 -0
  338. package/frontend/dist/minecraft-assets/items/empty_slot_diamond.png +0 -0
  339. package/frontend/dist/minecraft-assets/items/empty_slot_emerald.png +0 -0
  340. package/frontend/dist/minecraft-assets/items/empty_slot_hoe.png +0 -0
  341. package/frontend/dist/minecraft-assets/items/empty_slot_ingot.png +0 -0
  342. package/frontend/dist/minecraft-assets/items/empty_slot_lapis_lazuli.png +0 -0
  343. package/frontend/dist/minecraft-assets/items/empty_slot_pickaxe.png +0 -0
  344. package/frontend/dist/minecraft-assets/items/empty_slot_quartz.png +0 -0
  345. package/frontend/dist/minecraft-assets/items/empty_slot_redstone_dust.png +0 -0
  346. package/frontend/dist/minecraft-assets/items/empty_slot_shovel.png +0 -0
  347. package/frontend/dist/minecraft-assets/items/empty_slot_smithing_template_armor_trim.png +0 -0
  348. package/frontend/dist/minecraft-assets/items/empty_slot_smithing_template_netherite_upgrade.png +0 -0
  349. package/frontend/dist/minecraft-assets/items/empty_slot_sword.png +0 -0
  350. package/frontend/dist/minecraft-assets/items/enchanted_book.png +0 -0
  351. package/frontend/dist/minecraft-assets/items/end_crystal.png +0 -0
  352. package/frontend/dist/minecraft-assets/items/ender_eye.png +0 -0
  353. package/frontend/dist/minecraft-assets/items/ender_pearl.png +0 -0
  354. package/frontend/dist/minecraft-assets/items/experience_bottle.png +0 -0
  355. package/frontend/dist/minecraft-assets/items/explorer_pottery_sherd.png +0 -0
  356. package/frontend/dist/minecraft-assets/items/eye_armor_trim_smithing_template.png +0 -0
  357. package/frontend/dist/minecraft-assets/items/feather.png +0 -0
  358. package/frontend/dist/minecraft-assets/items/fermented_spider_eye.png +0 -0
  359. package/frontend/dist/minecraft-assets/items/filled_map.png +0 -0
  360. package/frontend/dist/minecraft-assets/items/filled_map_markings.png +0 -0
  361. package/frontend/dist/minecraft-assets/items/fire_charge.png +0 -0
  362. package/frontend/dist/minecraft-assets/items/firework_rocket.png +0 -0
  363. package/frontend/dist/minecraft-assets/items/firework_star.png +0 -0
  364. package/frontend/dist/minecraft-assets/items/firework_star_overlay.png +0 -0
  365. package/frontend/dist/minecraft-assets/items/fishing_rod.png +0 -0
  366. package/frontend/dist/minecraft-assets/items/fishing_rod_cast.png +0 -0
  367. package/frontend/dist/minecraft-assets/items/flint.png +0 -0
  368. package/frontend/dist/minecraft-assets/items/flint_and_steel.png +0 -0
  369. package/frontend/dist/minecraft-assets/items/flower_banner_pattern.png +0 -0
  370. package/frontend/dist/minecraft-assets/items/flower_pot.png +0 -0
  371. package/frontend/dist/minecraft-assets/items/friend_pottery_sherd.png +0 -0
  372. package/frontend/dist/minecraft-assets/items/furnace_minecart.png +0 -0
  373. package/frontend/dist/minecraft-assets/items/ghast_tear.png +0 -0
  374. package/frontend/dist/minecraft-assets/items/glass_bottle.png +0 -0
  375. package/frontend/dist/minecraft-assets/items/glistering_melon_slice.png +0 -0
  376. package/frontend/dist/minecraft-assets/items/globe_banner_pattern.png +0 -0
  377. package/frontend/dist/minecraft-assets/items/glow_berries.png +0 -0
  378. package/frontend/dist/minecraft-assets/items/glow_ink_sac.png +0 -0
  379. package/frontend/dist/minecraft-assets/items/glow_item_frame.png +0 -0
  380. package/frontend/dist/minecraft-assets/items/glowstone_dust.png +0 -0
  381. package/frontend/dist/minecraft-assets/items/goat_horn.png +0 -0
  382. package/frontend/dist/minecraft-assets/items/gold_ingot.png +0 -0
  383. package/frontend/dist/minecraft-assets/items/gold_nugget.png +0 -0
  384. package/frontend/dist/minecraft-assets/items/golden_apple.png +0 -0
  385. package/frontend/dist/minecraft-assets/items/golden_axe.png +0 -0
  386. package/frontend/dist/minecraft-assets/items/golden_boots.png +0 -0
  387. package/frontend/dist/minecraft-assets/items/golden_carrot.png +0 -0
  388. package/frontend/dist/minecraft-assets/items/golden_chestplate.png +0 -0
  389. package/frontend/dist/minecraft-assets/items/golden_helmet.png +0 -0
  390. package/frontend/dist/minecraft-assets/items/golden_hoe.png +0 -0
  391. package/frontend/dist/minecraft-assets/items/golden_horse_armor.png +0 -0
  392. package/frontend/dist/minecraft-assets/items/golden_leggings.png +0 -0
  393. package/frontend/dist/minecraft-assets/items/golden_pickaxe.png +0 -0
  394. package/frontend/dist/minecraft-assets/items/golden_shovel.png +0 -0
  395. package/frontend/dist/minecraft-assets/items/golden_sword.png +0 -0
  396. package/frontend/dist/minecraft-assets/items/gray_candle.png +0 -0
  397. package/frontend/dist/minecraft-assets/items/gray_dye.png +0 -0
  398. package/frontend/dist/minecraft-assets/items/green_candle.png +0 -0
  399. package/frontend/dist/minecraft-assets/items/green_dye.png +0 -0
  400. package/frontend/dist/minecraft-assets/items/gunpowder.png +0 -0
  401. package/frontend/dist/minecraft-assets/items/heart_of_the_sea.png +0 -0
  402. package/frontend/dist/minecraft-assets/items/heart_pottery_sherd.png +0 -0
  403. package/frontend/dist/minecraft-assets/items/heartbreak_pottery_sherd.png +0 -0
  404. package/frontend/dist/minecraft-assets/items/honey_bottle.png +0 -0
  405. package/frontend/dist/minecraft-assets/items/honeycomb.png +0 -0
  406. package/frontend/dist/minecraft-assets/items/hopper.png +0 -0
  407. package/frontend/dist/minecraft-assets/items/hopper_minecart.png +0 -0
  408. package/frontend/dist/minecraft-assets/items/host_armor_trim_smithing_template.png +0 -0
  409. package/frontend/dist/minecraft-assets/items/howl_pottery_sherd.png +0 -0
  410. package/frontend/dist/minecraft-assets/items/ink_sac.png +0 -0
  411. package/frontend/dist/minecraft-assets/items/iron_axe.png +0 -0
  412. package/frontend/dist/minecraft-assets/items/iron_boots.png +0 -0
  413. package/frontend/dist/minecraft-assets/items/iron_chestplate.png +0 -0
  414. package/frontend/dist/minecraft-assets/items/iron_door.png +0 -0
  415. package/frontend/dist/minecraft-assets/items/iron_helmet.png +0 -0
  416. package/frontend/dist/minecraft-assets/items/iron_hoe.png +0 -0
  417. package/frontend/dist/minecraft-assets/items/iron_horse_armor.png +0 -0
  418. package/frontend/dist/minecraft-assets/items/iron_ingot.png +0 -0
  419. package/frontend/dist/minecraft-assets/items/iron_leggings.png +0 -0
  420. package/frontend/dist/minecraft-assets/items/iron_nugget.png +0 -0
  421. package/frontend/dist/minecraft-assets/items/iron_pickaxe.png +0 -0
  422. package/frontend/dist/minecraft-assets/items/iron_shovel.png +0 -0
  423. package/frontend/dist/minecraft-assets/items/iron_sword.png +0 -0
  424. package/frontend/dist/minecraft-assets/items/item_frame.png +0 -0
  425. package/frontend/dist/minecraft-assets/items/jungle_boat.png +0 -0
  426. package/frontend/dist/minecraft-assets/items/jungle_chest_boat.png +0 -0
  427. package/frontend/dist/minecraft-assets/items/jungle_door.png +0 -0
  428. package/frontend/dist/minecraft-assets/items/jungle_hanging_sign.png +0 -0
  429. package/frontend/dist/minecraft-assets/items/jungle_sign.png +0 -0
  430. package/frontend/dist/minecraft-assets/items/kelp.png +0 -0
  431. package/frontend/dist/minecraft-assets/items/knowledge_book.png +0 -0
  432. package/frontend/dist/minecraft-assets/items/lantern.png +0 -0
  433. package/frontend/dist/minecraft-assets/items/lapis_lazuli.png +0 -0
  434. package/frontend/dist/minecraft-assets/items/lava_bucket.png +0 -0
  435. package/frontend/dist/minecraft-assets/items/lead.png +0 -0
  436. package/frontend/dist/minecraft-assets/items/leather.png +0 -0
  437. package/frontend/dist/minecraft-assets/items/leather_boots.png +0 -0
  438. package/frontend/dist/minecraft-assets/items/leather_boots_overlay.png +0 -0
  439. package/frontend/dist/minecraft-assets/items/leather_chestplate.png +0 -0
  440. package/frontend/dist/minecraft-assets/items/leather_chestplate_overlay.png +0 -0
  441. package/frontend/dist/minecraft-assets/items/leather_helmet.png +0 -0
  442. package/frontend/dist/minecraft-assets/items/leather_helmet_overlay.png +0 -0
  443. package/frontend/dist/minecraft-assets/items/leather_horse_armor.png +0 -0
  444. package/frontend/dist/minecraft-assets/items/leather_leggings.png +0 -0
  445. package/frontend/dist/minecraft-assets/items/leather_leggings_overlay.png +0 -0
  446. package/frontend/dist/minecraft-assets/items/light.png +0 -0
  447. package/frontend/dist/minecraft-assets/items/light_00.png +0 -0
  448. package/frontend/dist/minecraft-assets/items/light_01.png +0 -0
  449. package/frontend/dist/minecraft-assets/items/light_02.png +0 -0
  450. package/frontend/dist/minecraft-assets/items/light_03.png +0 -0
  451. package/frontend/dist/minecraft-assets/items/light_04.png +0 -0
  452. package/frontend/dist/minecraft-assets/items/light_05.png +0 -0
  453. package/frontend/dist/minecraft-assets/items/light_06.png +0 -0
  454. package/frontend/dist/minecraft-assets/items/light_07.png +0 -0
  455. package/frontend/dist/minecraft-assets/items/light_08.png +0 -0
  456. package/frontend/dist/minecraft-assets/items/light_09.png +0 -0
  457. package/frontend/dist/minecraft-assets/items/light_10.png +0 -0
  458. package/frontend/dist/minecraft-assets/items/light_11.png +0 -0
  459. package/frontend/dist/minecraft-assets/items/light_12.png +0 -0
  460. package/frontend/dist/minecraft-assets/items/light_13.png +0 -0
  461. package/frontend/dist/minecraft-assets/items/light_14.png +0 -0
  462. package/frontend/dist/minecraft-assets/items/light_15.png +0 -0
  463. package/frontend/dist/minecraft-assets/items/light_blue_candle.png +0 -0
  464. package/frontend/dist/minecraft-assets/items/light_blue_dye.png +0 -0
  465. package/frontend/dist/minecraft-assets/items/light_gray_candle.png +0 -0
  466. package/frontend/dist/minecraft-assets/items/light_gray_dye.png +0 -0
  467. package/frontend/dist/minecraft-assets/items/lime_candle.png +0 -0
  468. package/frontend/dist/minecraft-assets/items/lime_dye.png +0 -0
  469. package/frontend/dist/minecraft-assets/items/lingering_potion.png +0 -0
  470. package/frontend/dist/minecraft-assets/items/magenta_candle.png +0 -0
  471. package/frontend/dist/minecraft-assets/items/magenta_dye.png +0 -0
  472. package/frontend/dist/minecraft-assets/items/magma_cream.png +0 -0
  473. package/frontend/dist/minecraft-assets/items/mangrove_boat.png +0 -0
  474. package/frontend/dist/minecraft-assets/items/mangrove_chest_boat.png +0 -0
  475. package/frontend/dist/minecraft-assets/items/mangrove_door.png +0 -0
  476. package/frontend/dist/minecraft-assets/items/mangrove_hanging_sign.png +0 -0
  477. package/frontend/dist/minecraft-assets/items/mangrove_propagule.png +0 -0
  478. package/frontend/dist/minecraft-assets/items/mangrove_sign.png +0 -0
  479. package/frontend/dist/minecraft-assets/items/map.png +0 -0
  480. package/frontend/dist/minecraft-assets/items/melon_seeds.png +0 -0
  481. package/frontend/dist/minecraft-assets/items/melon_slice.png +0 -0
  482. package/frontend/dist/minecraft-assets/items/milk_bucket.png +0 -0
  483. package/frontend/dist/minecraft-assets/items/minecart.png +0 -0
  484. package/frontend/dist/minecraft-assets/items/miner_pottery_sherd.png +0 -0
  485. package/frontend/dist/minecraft-assets/items/mojang_banner_pattern.png +0 -0
  486. package/frontend/dist/minecraft-assets/items/mourner_pottery_sherd.png +0 -0
  487. package/frontend/dist/minecraft-assets/items/mushroom_stew.png +0 -0
  488. package/frontend/dist/minecraft-assets/items/music_disc_11.png +0 -0
  489. package/frontend/dist/minecraft-assets/items/music_disc_13.png +0 -0
  490. package/frontend/dist/minecraft-assets/items/music_disc_5.png +0 -0
  491. package/frontend/dist/minecraft-assets/items/music_disc_blocks.png +0 -0
  492. package/frontend/dist/minecraft-assets/items/music_disc_cat.png +0 -0
  493. package/frontend/dist/minecraft-assets/items/music_disc_chirp.png +0 -0
  494. package/frontend/dist/minecraft-assets/items/music_disc_far.png +0 -0
  495. package/frontend/dist/minecraft-assets/items/music_disc_mall.png +0 -0
  496. package/frontend/dist/minecraft-assets/items/music_disc_mellohi.png +0 -0
  497. package/frontend/dist/minecraft-assets/items/music_disc_otherside.png +0 -0
  498. package/frontend/dist/minecraft-assets/items/music_disc_pigstep.png +0 -0
  499. package/frontend/dist/minecraft-assets/items/music_disc_relic.png +0 -0
  500. package/frontend/dist/minecraft-assets/items/music_disc_stal.png +0 -0
  501. package/frontend/dist/minecraft-assets/items/music_disc_strad.png +0 -0
  502. package/frontend/dist/minecraft-assets/items/music_disc_wait.png +0 -0
  503. package/frontend/dist/minecraft-assets/items/music_disc_ward.png +0 -0
  504. package/frontend/dist/minecraft-assets/items/mutton.png +0 -0
  505. package/frontend/dist/minecraft-assets/items/name_tag.png +0 -0
  506. package/frontend/dist/minecraft-assets/items/nautilus_shell.png +0 -0
  507. package/frontend/dist/minecraft-assets/items/nether_brick.png +0 -0
  508. package/frontend/dist/minecraft-assets/items/nether_sprouts.png +0 -0
  509. package/frontend/dist/minecraft-assets/items/nether_star.png +0 -0
  510. package/frontend/dist/minecraft-assets/items/nether_wart.png +0 -0
  511. package/frontend/dist/minecraft-assets/items/netherite_axe.png +0 -0
  512. package/frontend/dist/minecraft-assets/items/netherite_boots.png +0 -0
  513. package/frontend/dist/minecraft-assets/items/netherite_chestplate.png +0 -0
  514. package/frontend/dist/minecraft-assets/items/netherite_helmet.png +0 -0
  515. package/frontend/dist/minecraft-assets/items/netherite_hoe.png +0 -0
  516. package/frontend/dist/minecraft-assets/items/netherite_ingot.png +0 -0
  517. package/frontend/dist/minecraft-assets/items/netherite_leggings.png +0 -0
  518. package/frontend/dist/minecraft-assets/items/netherite_pickaxe.png +0 -0
  519. package/frontend/dist/minecraft-assets/items/netherite_scrap.png +0 -0
  520. package/frontend/dist/minecraft-assets/items/netherite_shovel.png +0 -0
  521. package/frontend/dist/minecraft-assets/items/netherite_sword.png +0 -0
  522. package/frontend/dist/minecraft-assets/items/netherite_upgrade_smithing_template.png +0 -0
  523. package/frontend/dist/minecraft-assets/items/oak_boat.png +0 -0
  524. package/frontend/dist/minecraft-assets/items/oak_chest_boat.png +0 -0
  525. package/frontend/dist/minecraft-assets/items/oak_door.png +0 -0
  526. package/frontend/dist/minecraft-assets/items/oak_hanging_sign.png +0 -0
  527. package/frontend/dist/minecraft-assets/items/oak_sign.png +0 -0
  528. package/frontend/dist/minecraft-assets/items/orange_candle.png +0 -0
  529. package/frontend/dist/minecraft-assets/items/orange_dye.png +0 -0
  530. package/frontend/dist/minecraft-assets/items/painting.png +0 -0
  531. package/frontend/dist/minecraft-assets/items/paper.png +0 -0
  532. package/frontend/dist/minecraft-assets/items/phantom_membrane.png +0 -0
  533. package/frontend/dist/minecraft-assets/items/piglin_banner_pattern.png +0 -0
  534. package/frontend/dist/minecraft-assets/items/pink_candle.png +0 -0
  535. package/frontend/dist/minecraft-assets/items/pink_dye.png +0 -0
  536. package/frontend/dist/minecraft-assets/items/pink_petals.png +0 -0
  537. package/frontend/dist/minecraft-assets/items/pitcher_plant.png +0 -0
  538. package/frontend/dist/minecraft-assets/items/pitcher_pod.png +0 -0
  539. package/frontend/dist/minecraft-assets/items/plenty_pottery_sherd.png +0 -0
  540. package/frontend/dist/minecraft-assets/items/pointed_dripstone.png +0 -0
  541. package/frontend/dist/minecraft-assets/items/poisonous_potato.png +0 -0
  542. package/frontend/dist/minecraft-assets/items/popped_chorus_fruit.png +0 -0
  543. package/frontend/dist/minecraft-assets/items/porkchop.png +0 -0
  544. package/frontend/dist/minecraft-assets/items/potato.png +0 -0
  545. package/frontend/dist/minecraft-assets/items/potion.png +0 -0
  546. package/frontend/dist/minecraft-assets/items/potion_overlay.png +0 -0
  547. package/frontend/dist/minecraft-assets/items/powder_snow_bucket.png +0 -0
  548. package/frontend/dist/minecraft-assets/items/prismarine_crystals.png +0 -0
  549. package/frontend/dist/minecraft-assets/items/prismarine_shard.png +0 -0
  550. package/frontend/dist/minecraft-assets/items/prize_pottery_sherd.png +0 -0
  551. package/frontend/dist/minecraft-assets/items/pufferfish.png +0 -0
  552. package/frontend/dist/minecraft-assets/items/pufferfish_bucket.png +0 -0
  553. package/frontend/dist/minecraft-assets/items/pumpkin_pie.png +0 -0
  554. package/frontend/dist/minecraft-assets/items/pumpkin_seeds.png +0 -0
  555. package/frontend/dist/minecraft-assets/items/purple_candle.png +0 -0
  556. package/frontend/dist/minecraft-assets/items/purple_dye.png +0 -0
  557. package/frontend/dist/minecraft-assets/items/quartz.png +0 -0
  558. package/frontend/dist/minecraft-assets/items/rabbit.png +0 -0
  559. package/frontend/dist/minecraft-assets/items/rabbit_foot.png +0 -0
  560. package/frontend/dist/minecraft-assets/items/rabbit_hide.png +0 -0
  561. package/frontend/dist/minecraft-assets/items/rabbit_stew.png +0 -0
  562. package/frontend/dist/minecraft-assets/items/raiser_armor_trim_smithing_template.png +0 -0
  563. package/frontend/dist/minecraft-assets/items/raw_copper.png +0 -0
  564. package/frontend/dist/minecraft-assets/items/raw_gold.png +0 -0
  565. package/frontend/dist/minecraft-assets/items/raw_iron.png +0 -0
  566. package/frontend/dist/minecraft-assets/items/recovery_compass_00.png +0 -0
  567. package/frontend/dist/minecraft-assets/items/recovery_compass_01.png +0 -0
  568. package/frontend/dist/minecraft-assets/items/recovery_compass_02.png +0 -0
  569. package/frontend/dist/minecraft-assets/items/recovery_compass_03.png +0 -0
  570. package/frontend/dist/minecraft-assets/items/recovery_compass_04.png +0 -0
  571. package/frontend/dist/minecraft-assets/items/recovery_compass_05.png +0 -0
  572. package/frontend/dist/minecraft-assets/items/recovery_compass_06.png +0 -0
  573. package/frontend/dist/minecraft-assets/items/recovery_compass_07.png +0 -0
  574. package/frontend/dist/minecraft-assets/items/recovery_compass_08.png +0 -0
  575. package/frontend/dist/minecraft-assets/items/recovery_compass_09.png +0 -0
  576. package/frontend/dist/minecraft-assets/items/recovery_compass_10.png +0 -0
  577. package/frontend/dist/minecraft-assets/items/recovery_compass_11.png +0 -0
  578. package/frontend/dist/minecraft-assets/items/recovery_compass_12.png +0 -0
  579. package/frontend/dist/minecraft-assets/items/recovery_compass_13.png +0 -0
  580. package/frontend/dist/minecraft-assets/items/recovery_compass_14.png +0 -0
  581. package/frontend/dist/minecraft-assets/items/recovery_compass_15.png +0 -0
  582. package/frontend/dist/minecraft-assets/items/recovery_compass_16.png +0 -0
  583. package/frontend/dist/minecraft-assets/items/recovery_compass_17.png +0 -0
  584. package/frontend/dist/minecraft-assets/items/recovery_compass_18.png +0 -0
  585. package/frontend/dist/minecraft-assets/items/recovery_compass_19.png +0 -0
  586. package/frontend/dist/minecraft-assets/items/recovery_compass_20.png +0 -0
  587. package/frontend/dist/minecraft-assets/items/recovery_compass_21.png +0 -0
  588. package/frontend/dist/minecraft-assets/items/recovery_compass_22.png +0 -0
  589. package/frontend/dist/minecraft-assets/items/recovery_compass_23.png +0 -0
  590. package/frontend/dist/minecraft-assets/items/recovery_compass_24.png +0 -0
  591. package/frontend/dist/minecraft-assets/items/recovery_compass_25.png +0 -0
  592. package/frontend/dist/minecraft-assets/items/recovery_compass_26.png +0 -0
  593. package/frontend/dist/minecraft-assets/items/recovery_compass_27.png +0 -0
  594. package/frontend/dist/minecraft-assets/items/recovery_compass_28.png +0 -0
  595. package/frontend/dist/minecraft-assets/items/recovery_compass_29.png +0 -0
  596. package/frontend/dist/minecraft-assets/items/recovery_compass_30.png +0 -0
  597. package/frontend/dist/minecraft-assets/items/recovery_compass_31.png +0 -0
  598. package/frontend/dist/minecraft-assets/items/red_candle.png +0 -0
  599. package/frontend/dist/minecraft-assets/items/red_dye.png +0 -0
  600. package/frontend/dist/minecraft-assets/items/redstone.png +0 -0
  601. package/frontend/dist/minecraft-assets/items/repeater.png +0 -0
  602. package/frontend/dist/minecraft-assets/items/rib_armor_trim_smithing_template.png +0 -0
  603. package/frontend/dist/minecraft-assets/items/rotten_flesh.png +0 -0
  604. package/frontend/dist/minecraft-assets/items/saddle.png +0 -0
  605. package/frontend/dist/minecraft-assets/items/salmon.png +0 -0
  606. package/frontend/dist/minecraft-assets/items/salmon_bucket.png +0 -0
  607. package/frontend/dist/minecraft-assets/items/scute.png +0 -0
  608. package/frontend/dist/minecraft-assets/items/sea_pickle.png +0 -0
  609. package/frontend/dist/minecraft-assets/items/seagrass.png +0 -0
  610. package/frontend/dist/minecraft-assets/items/sentry_armor_trim_smithing_template.png +0 -0
  611. package/frontend/dist/minecraft-assets/items/shaper_armor_trim_smithing_template.png +0 -0
  612. package/frontend/dist/minecraft-assets/items/sheaf_pottery_sherd.png +0 -0
  613. package/frontend/dist/minecraft-assets/items/shears.png +0 -0
  614. package/frontend/dist/minecraft-assets/items/shelter_pottery_sherd.png +0 -0
  615. package/frontend/dist/minecraft-assets/items/shulker_shell.png +0 -0
  616. package/frontend/dist/minecraft-assets/items/silence_armor_trim_smithing_template.png +0 -0
  617. package/frontend/dist/minecraft-assets/items/skull_banner_pattern.png +0 -0
  618. package/frontend/dist/minecraft-assets/items/skull_pottery_sherd.png +0 -0
  619. package/frontend/dist/minecraft-assets/items/slime_ball.png +0 -0
  620. package/frontend/dist/minecraft-assets/items/sniffer_egg.png +0 -0
  621. package/frontend/dist/minecraft-assets/items/snort_pottery_sherd.png +0 -0
  622. package/frontend/dist/minecraft-assets/items/snout_armor_trim_smithing_template.png +0 -0
  623. package/frontend/dist/minecraft-assets/items/snowball.png +0 -0
  624. package/frontend/dist/minecraft-assets/items/soul_campfire.png +0 -0
  625. package/frontend/dist/minecraft-assets/items/soul_lantern.png +0 -0
  626. package/frontend/dist/minecraft-assets/items/spawn_egg.png +0 -0
  627. package/frontend/dist/minecraft-assets/items/spawn_egg_overlay.png +0 -0
  628. package/frontend/dist/minecraft-assets/items/spectral_arrow.png +0 -0
  629. package/frontend/dist/minecraft-assets/items/spider_eye.png +0 -0
  630. package/frontend/dist/minecraft-assets/items/spire_armor_trim_smithing_template.png +0 -0
  631. package/frontend/dist/minecraft-assets/items/splash_potion.png +0 -0
  632. package/frontend/dist/minecraft-assets/items/spruce_boat.png +0 -0
  633. package/frontend/dist/minecraft-assets/items/spruce_chest_boat.png +0 -0
  634. package/frontend/dist/minecraft-assets/items/spruce_door.png +0 -0
  635. package/frontend/dist/minecraft-assets/items/spruce_hanging_sign.png +0 -0
  636. package/frontend/dist/minecraft-assets/items/spruce_sign.png +0 -0
  637. package/frontend/dist/minecraft-assets/items/spyglass.png +0 -0
  638. package/frontend/dist/minecraft-assets/items/spyglass_model.png +0 -0
  639. package/frontend/dist/minecraft-assets/items/stick.png +0 -0
  640. package/frontend/dist/minecraft-assets/items/stone_axe.png +0 -0
  641. package/frontend/dist/minecraft-assets/items/stone_hoe.png +0 -0
  642. package/frontend/dist/minecraft-assets/items/stone_pickaxe.png +0 -0
  643. package/frontend/dist/minecraft-assets/items/stone_shovel.png +0 -0
  644. package/frontend/dist/minecraft-assets/items/stone_sword.png +0 -0
  645. package/frontend/dist/minecraft-assets/items/string.png +0 -0
  646. package/frontend/dist/minecraft-assets/items/structure_void.png +0 -0
  647. package/frontend/dist/minecraft-assets/items/sugar.png +0 -0
  648. package/frontend/dist/minecraft-assets/items/sugar_cane.png +0 -0
  649. package/frontend/dist/minecraft-assets/items/suspicious_stew.png +0 -0
  650. package/frontend/dist/minecraft-assets/items/sweet_berries.png +0 -0
  651. package/frontend/dist/minecraft-assets/items/tadpole_bucket.png +0 -0
  652. package/frontend/dist/minecraft-assets/items/tide_armor_trim_smithing_template.png +0 -0
  653. package/frontend/dist/minecraft-assets/items/tipped_arrow_base.png +0 -0
  654. package/frontend/dist/minecraft-assets/items/tipped_arrow_head.png +0 -0
  655. package/frontend/dist/minecraft-assets/items/tnt_minecart.png +0 -0
  656. package/frontend/dist/minecraft-assets/items/torchflower_seeds.png +0 -0
  657. package/frontend/dist/minecraft-assets/items/totem_of_undying.png +0 -0
  658. package/frontend/dist/minecraft-assets/items/trident.png +0 -0
  659. package/frontend/dist/minecraft-assets/items/tropical_fish.png +0 -0
  660. package/frontend/dist/minecraft-assets/items/tropical_fish_bucket.png +0 -0
  661. package/frontend/dist/minecraft-assets/items/turtle_egg.png +0 -0
  662. package/frontend/dist/minecraft-assets/items/turtle_helmet.png +0 -0
  663. package/frontend/dist/minecraft-assets/items/vex_armor_trim_smithing_template.png +0 -0
  664. package/frontend/dist/minecraft-assets/items/ward_armor_trim_smithing_template.png +0 -0
  665. package/frontend/dist/minecraft-assets/items/warped_door.png +0 -0
  666. package/frontend/dist/minecraft-assets/items/warped_fungus_on_a_stick.png +0 -0
  667. package/frontend/dist/minecraft-assets/items/warped_hanging_sign.png +0 -0
  668. package/frontend/dist/minecraft-assets/items/warped_sign.png +0 -0
  669. package/frontend/dist/minecraft-assets/items/water_bucket.png +0 -0
  670. package/frontend/dist/minecraft-assets/items/wayfinder_armor_trim_smithing_template.png +0 -0
  671. package/frontend/dist/minecraft-assets/items/wheat.png +0 -0
  672. package/frontend/dist/minecraft-assets/items/wheat_seeds.png +0 -0
  673. package/frontend/dist/minecraft-assets/items/white_candle.png +0 -0
  674. package/frontend/dist/minecraft-assets/items/white_dye.png +0 -0
  675. package/frontend/dist/minecraft-assets/items/wild_armor_trim_smithing_template.png +0 -0
  676. package/frontend/dist/minecraft-assets/items/wooden_axe.png +0 -0
  677. package/frontend/dist/minecraft-assets/items/wooden_hoe.png +0 -0
  678. package/frontend/dist/minecraft-assets/items/wooden_pickaxe.png +0 -0
  679. package/frontend/dist/minecraft-assets/items/wooden_shovel.png +0 -0
  680. package/frontend/dist/minecraft-assets/items/wooden_sword.png +0 -0
  681. package/frontend/dist/minecraft-assets/items/writable_book.png +0 -0
  682. package/frontend/dist/minecraft-assets/items/written_book.png +0 -0
  683. package/frontend/dist/minecraft-assets/items/yellow_candle.png +0 -0
  684. package/frontend/dist/minecraft-assets/items/yellow_dye.png +0 -0
  685. package/frontend/dist/monacoeditorwork/css.worker.bundle.js +7 -7
  686. package/frontend/dist/monacoeditorwork/html.worker.bundle.js +7 -7
  687. package/frontend/dist/monacoeditorwork/json.worker.bundle.js +7 -7
  688. package/frontend/dist/monacoeditorwork/ts.worker.bundle.js +3 -3
  689. package/frontend/package.json +4 -0
  690. package/package.json +1 -1
  691. package/screen/3dviewer.png +0 -0
  692. package/screen/console.png +0 -0
  693. package/screen/language_selector.png +0 -0
  694. package/.claude/agents/README.md +0 -469
  695. package/.claude/agents/auth-route-debugger.md +0 -118
  696. package/.claude/agents/auth-route-tester.md +0 -93
  697. package/.claude/agents/auto-error-resolver.md +0 -97
  698. package/.claude/agents/build-optimizer.md +0 -236
  699. package/.claude/agents/code-architect.md +0 -34
  700. package/.claude/agents/code-architecture-reviewer.md +0 -83
  701. package/.claude/agents/code-explorer.md +0 -51
  702. package/.claude/agents/code-refactor-master.md +0 -94
  703. package/.claude/agents/code-reviewer.md +0 -46
  704. package/.claude/agents/cost-optimizer.md +0 -134
  705. package/.claude/agents/deployment-orchestrator.md +0 -113
  706. package/.claude/agents/documentation-architect.md +0 -82
  707. package/.claude/agents/frontend-error-fixer.md +0 -77
  708. package/.claude/agents/iac-code-generator.md +0 -71
  709. package/.claude/agents/incident-responder.md +0 -346
  710. package/.claude/agents/infrastructure-architect.md +0 -31
  711. package/.claude/agents/kubernetes-specialist.md +0 -56
  712. package/.claude/agents/migration-planner.md +0 -181
  713. package/.claude/agents/network-architect.md +0 -196
  714. package/.claude/agents/plan-reviewer.md +0 -52
  715. package/.claude/agents/refactor-planner.md +0 -63
  716. package/.claude/agents/security-scanner.md +0 -102
  717. package/.claude/agents/web-research-specialist.md +0 -78
  718. package/.claude/commands/cost-analysis.md +0 -315
  719. package/.claude/commands/dev-docs-update.md +0 -55
  720. package/.claude/commands/dev-docs.md +0 -51
  721. package/.claude/commands/feature-dev.md +0 -125
  722. package/.claude/commands/incident-debug.md +0 -247
  723. package/.claude/commands/infra-plan.md +0 -81
  724. package/.claude/commands/migration-plan.md +0 -478
  725. package/.claude/commands/route-research-for-testing.md +0 -37
  726. package/.claude/commands/security-review.md +0 -66
  727. package/.claude/hooks/CONFIG.md +0 -448
  728. package/.claude/hooks/README.md +0 -163
  729. package/.claude/hooks/SKILL_ACTIVATION_COMPLETE.md +0 -226
  730. package/.claude/hooks/WINDOWS_HOOKS_README.md +0 -151
  731. package/.claude/hooks/add-skill-activation-banners.ts +0 -132
  732. package/.claude/hooks/comprehensive-skill-test.ts +0 -1315
  733. package/.claude/hooks/error-handling-reminder.sh +0 -12
  734. package/.claude/hooks/error-handling-reminder.ts +0 -222
  735. package/.claude/hooks/k8s-manifest-validator.sh +0 -56
  736. package/.claude/hooks/package-lock.json +0 -556
  737. package/.claude/hooks/package.json +0 -16
  738. package/.claude/hooks/post-tool-use-tracker.ps1 +0 -174
  739. package/.claude/hooks/post-tool-use-tracker.sh +0 -183
  740. package/.claude/hooks/security-policy-check.sh +0 -247
  741. package/.claude/hooks/skill-activation-prompt.ps1 +0 -10
  742. package/.claude/hooks/skill-activation-prompt.sh +0 -10
  743. package/.claude/hooks/skill-activation-prompt.ts +0 -141
  744. package/.claude/hooks/stop-build-check-enhanced.sh +0 -130
  745. package/.claude/hooks/terraform-validator.sh +0 -53
  746. package/.claude/hooks/test-input.json +0 -7
  747. package/.claude/hooks/test-skill-activation.ts +0 -427
  748. package/.claude/hooks/trigger-build-resolver.sh +0 -79
  749. package/.claude/hooks/tsc-check.sh +0 -173
  750. package/.claude/hooks/tsconfig.json +0 -19
  751. package/.claude/settings.json +0 -59
  752. package/.claude/settings.local.json +0 -47
  753. package/.claude/skills/README.md +0 -507
  754. package/.claude/skills/api-engineering/SKILL.md +0 -63
  755. package/.claude/skills/api-engineering/resources/api-versioning.md +0 -88
  756. package/.claude/skills/api-engineering/resources/graphql-patterns.md +0 -106
  757. package/.claude/skills/api-engineering/resources/rate-limiting.md +0 -118
  758. package/.claude/skills/api-engineering/resources/rest-api-design.md +0 -105
  759. package/.claude/skills/backend-dev-guidelines/SKILL.md +0 -306
  760. package/.claude/skills/backend-dev-guidelines/resources/architecture-overview.md +0 -451
  761. package/.claude/skills/backend-dev-guidelines/resources/async-and-errors.md +0 -307
  762. package/.claude/skills/backend-dev-guidelines/resources/complete-examples.md +0 -638
  763. package/.claude/skills/backend-dev-guidelines/resources/configuration.md +0 -275
  764. package/.claude/skills/backend-dev-guidelines/resources/database-patterns.md +0 -224
  765. package/.claude/skills/backend-dev-guidelines/resources/middleware-guide.md +0 -213
  766. package/.claude/skills/backend-dev-guidelines/resources/routing-and-controllers.md +0 -756
  767. package/.claude/skills/backend-dev-guidelines/resources/sentry-and-monitoring.md +0 -336
  768. package/.claude/skills/backend-dev-guidelines/resources/services-and-repositories.md +0 -789
  769. package/.claude/skills/backend-dev-guidelines/resources/testing-guide.md +0 -235
  770. package/.claude/skills/backend-dev-guidelines/resources/validation-patterns.md +0 -754
  771. package/.claude/skills/budget-and-cost-management/SKILL.md +0 -850
  772. package/.claude/skills/build-engineering/SKILL.md +0 -431
  773. package/.claude/skills/build-engineering/resources/artifact-repositories.md +0 -72
  774. package/.claude/skills/build-engineering/resources/build-caching.md +0 -96
  775. package/.claude/skills/build-engineering/resources/build-pipelines.md +0 -105
  776. package/.claude/skills/build-engineering/resources/build-security.md +0 -95
  777. package/.claude/skills/build-engineering/resources/build-systems.md +0 -389
  778. package/.claude/skills/build-engineering/resources/compilation-optimization.md +0 -201
  779. package/.claude/skills/build-engineering/resources/dependency-management.md +0 -73
  780. package/.claude/skills/build-engineering/resources/monorepo-builds.md +0 -110
  781. package/.claude/skills/build-engineering/resources/performance-optimization.md +0 -113
  782. package/.claude/skills/build-engineering/resources/reproducible-builds.md +0 -82
  783. package/.claude/skills/cloud-engineering/SKILL.md +0 -675
  784. package/.claude/skills/cloud-engineering/resources/aws-patterns.md +0 -742
  785. package/.claude/skills/cloud-engineering/resources/azure-patterns.md +0 -714
  786. package/.claude/skills/cloud-engineering/resources/cleared-cloud-environments.md +0 -987
  787. package/.claude/skills/cloud-engineering/resources/cloud-cost-optimization.md +0 -757
  788. package/.claude/skills/cloud-engineering/resources/cloud-networking.md +0 -1058
  789. package/.claude/skills/cloud-engineering/resources/cloud-security-tools.md +0 -1530
  790. package/.claude/skills/cloud-engineering/resources/cloud-security.md +0 -990
  791. package/.claude/skills/cloud-engineering/resources/gcp-patterns.md +0 -758
  792. package/.claude/skills/cloud-engineering/resources/migration-strategies.md +0 -820
  793. package/.claude/skills/cloud-engineering/resources/multi-cloud-strategies.md +0 -670
  794. package/.claude/skills/cloud-engineering/resources/oci-patterns.md +0 -1198
  795. package/.claude/skills/cloud-engineering/resources/serverless-patterns.md +0 -795
  796. package/.claude/skills/cloud-engineering/resources/well-architected-frameworks.md +0 -966
  797. package/.claude/skills/cybersecurity/SKILL.md +0 -409
  798. package/.claude/skills/cybersecurity/resources/security-architecture.md +0 -266
  799. package/.claude/skills/database-engineering/SKILL.md +0 -61
  800. package/.claude/skills/database-engineering/resources/backup-and-recovery.md +0 -72
  801. package/.claude/skills/database-engineering/resources/database-replication.md +0 -63
  802. package/.claude/skills/database-engineering/resources/postgresql-fundamentals.md +0 -70
  803. package/.claude/skills/database-engineering/resources/query-optimization.md +0 -68
  804. package/.claude/skills/devsecops/SKILL.md +0 -374
  805. package/.claude/skills/devsecops/resources/ci-cd-security.md +0 -204
  806. package/.claude/skills/devsecops/resources/compliance-automation.md +0 -530
  807. package/.claude/skills/devsecops/resources/compliance-frameworks.md +0 -2322
  808. package/.claude/skills/devsecops/resources/container-security.md +0 -915
  809. package/.claude/skills/devsecops/resources/cspm-integration.md +0 -1440
  810. package/.claude/skills/devsecops/resources/policy-enforcement.md +0 -619
  811. package/.claude/skills/devsecops/resources/secrets-management.md +0 -755
  812. package/.claude/skills/devsecops/resources/security-monitoring.md +0 -146
  813. package/.claude/skills/devsecops/resources/security-scanning.md +0 -887
  814. package/.claude/skills/devsecops/resources/security-testing.md +0 -203
  815. package/.claude/skills/devsecops/resources/supply-chain-security.md +0 -518
  816. package/.claude/skills/devsecops/resources/vulnerability-management.md +0 -481
  817. package/.claude/skills/devsecops/resources/zero-trust-architecture.md +0 -177
  818. package/.claude/skills/documentation-as-code/SKILL.md +0 -323
  819. package/.claude/skills/documentation-as-code/resources/api-documentation.md +0 -90
  820. package/.claude/skills/documentation-as-code/resources/changelog-management.md +0 -79
  821. package/.claude/skills/documentation-as-code/resources/diagram-generation.md +0 -44
  822. package/.claude/skills/documentation-as-code/resources/docs-as-code-workflow.md +0 -99
  823. package/.claude/skills/documentation-as-code/resources/documentation-automation.md +0 -68
  824. package/.claude/skills/documentation-as-code/resources/documentation-sites.md +0 -79
  825. package/.claude/skills/documentation-as-code/resources/markdown-best-practices.md +0 -162
  826. package/.claude/skills/documentation-as-code/resources/openapi-specification.md +0 -77
  827. package/.claude/skills/documentation-as-code/resources/readme-engineering.md +0 -60
  828. package/.claude/skills/documentation-as-code/resources/technical-writing-guide.md +0 -202
  829. package/.claude/skills/engineering-management/SKILL.md +0 -356
  830. package/.claude/skills/engineering-management/resources/career-ladders.md +0 -609
  831. package/.claude/skills/engineering-management/resources/hiring-and-assessment.md +0 -555
  832. package/.claude/skills/engineering-management/resources/one-on-one-guides.md +0 -609
  833. package/.claude/skills/engineering-management/resources/resource-planning.md +0 -557
  834. package/.claude/skills/engineering-management/resources/team-organization-patterns.md +0 -491
  835. package/.claude/skills/engineering-management/resources/technical-interviews.md +0 -474
  836. package/.claude/skills/engineering-operations-management/SKILL.md +0 -817
  837. package/.claude/skills/error-tracking/SKILL.md +0 -379
  838. package/.claude/skills/frontend-design/SKILL.md +0 -42
  839. package/.claude/skills/frontend-dev-guidelines/SKILL.md +0 -403
  840. package/.claude/skills/frontend-dev-guidelines/resources/common-patterns.md +0 -331
  841. package/.claude/skills/frontend-dev-guidelines/resources/complete-examples.md +0 -872
  842. package/.claude/skills/frontend-dev-guidelines/resources/component-patterns.md +0 -502
  843. package/.claude/skills/frontend-dev-guidelines/resources/data-fetching.md +0 -767
  844. package/.claude/skills/frontend-dev-guidelines/resources/file-organization.md +0 -502
  845. package/.claude/skills/frontend-dev-guidelines/resources/loading-and-error-states.md +0 -501
  846. package/.claude/skills/frontend-dev-guidelines/resources/performance.md +0 -406
  847. package/.claude/skills/frontend-dev-guidelines/resources/routing-guide.md +0 -364
  848. package/.claude/skills/frontend-dev-guidelines/resources/styling-guide.md +0 -428
  849. package/.claude/skills/frontend-dev-guidelines/resources/typescript-standards.md +0 -418
  850. package/.claude/skills/general-it-engineering/SKILL.md +0 -393
  851. package/.claude/skills/general-it-engineering/resources/asset-management.md +0 -712
  852. package/.claude/skills/general-it-engineering/resources/automation-orchestration.md +0 -817
  853. package/.claude/skills/general-it-engineering/resources/business-continuity.md +0 -786
  854. package/.claude/skills/general-it-engineering/resources/change-management.md +0 -715
  855. package/.claude/skills/general-it-engineering/resources/enterprise-monitoring.md +0 -729
  856. package/.claude/skills/general-it-engineering/resources/help-desk-operations.md +0 -738
  857. package/.claude/skills/general-it-engineering/resources/incident-service-management.md +0 -834
  858. package/.claude/skills/general-it-engineering/resources/it-governance.md +0 -753
  859. package/.claude/skills/general-it-engineering/resources/itil-framework.md +0 -503
  860. package/.claude/skills/general-it-engineering/resources/service-management.md +0 -669
  861. package/.claude/skills/infrastructure-architecture/SKILL.md +0 -328
  862. package/.claude/skills/infrastructure-architecture/resources/architecture-decision-records.md +0 -505
  863. package/.claude/skills/infrastructure-architecture/resources/architecture-patterns.md +0 -528
  864. package/.claude/skills/infrastructure-architecture/resources/capacity-planning.md +0 -453
  865. package/.claude/skills/infrastructure-architecture/resources/cleared-environment-architecture.md +0 -773
  866. package/.claude/skills/infrastructure-architecture/resources/cost-architecture.md +0 -499
  867. package/.claude/skills/infrastructure-architecture/resources/data-architecture.md +0 -501
  868. package/.claude/skills/infrastructure-architecture/resources/disaster-recovery.md +0 -535
  869. package/.claude/skills/infrastructure-architecture/resources/migration-architecture.md +0 -512
  870. package/.claude/skills/infrastructure-architecture/resources/multi-region-design.md +0 -608
  871. package/.claude/skills/infrastructure-architecture/resources/reference-architectures.md +0 -562
  872. package/.claude/skills/infrastructure-architecture/resources/security-architecture.md +0 -538
  873. package/.claude/skills/infrastructure-architecture/resources/system-design-principles.md +0 -489
  874. package/.claude/skills/infrastructure-architecture/resources/workload-classification.md +0 -1000
  875. package/.claude/skills/infrastructure-strategy/SKILL.md +0 -924
  876. package/.claude/skills/network-engineering/SKILL.md +0 -385
  877. package/.claude/skills/network-engineering/resources/dns-management.md +0 -738
  878. package/.claude/skills/network-engineering/resources/load-balancing.md +0 -820
  879. package/.claude/skills/network-engineering/resources/network-architecture.md +0 -546
  880. package/.claude/skills/network-engineering/resources/network-security.md +0 -921
  881. package/.claude/skills/network-engineering/resources/network-troubleshooting.md +0 -749
  882. package/.claude/skills/network-engineering/resources/routing-switching.md +0 -373
  883. package/.claude/skills/network-engineering/resources/sdn-networking.md +0 -695
  884. package/.claude/skills/network-engineering/resources/service-mesh-networking.md +0 -777
  885. package/.claude/skills/network-engineering/resources/tcp-ip-protocols.md +0 -444
  886. package/.claude/skills/network-engineering/resources/vpn-connectivity.md +0 -672
  887. package/.claude/skills/observability-engineering/SKILL.md +0 -101
  888. package/.claude/skills/observability-engineering/resources/apm-tools.md +0 -97
  889. package/.claude/skills/observability-engineering/resources/correlation-strategies.md +0 -87
  890. package/.claude/skills/observability-engineering/resources/distributed-tracing.md +0 -98
  891. package/.claude/skills/observability-engineering/resources/logs-aggregation.md +0 -118
  892. package/.claude/skills/observability-engineering/resources/observability-cost-optimization.md +0 -141
  893. package/.claude/skills/observability-engineering/resources/opentelemetry.md +0 -110
  894. package/.claude/skills/platform-engineering/SKILL.md +0 -555
  895. package/.claude/skills/platform-engineering/resources/architecture-overview.md +0 -600
  896. package/.claude/skills/platform-engineering/resources/container-orchestration.md +0 -916
  897. package/.claude/skills/platform-engineering/resources/cost-optimization.md +0 -634
  898. package/.claude/skills/platform-engineering/resources/developer-platforms.md +0 -670
  899. package/.claude/skills/platform-engineering/resources/gitops-automation.md +0 -650
  900. package/.claude/skills/platform-engineering/resources/infrastructure-as-code.md +0 -778
  901. package/.claude/skills/platform-engineering/resources/infrastructure-standards.md +0 -708
  902. package/.claude/skills/platform-engineering/resources/multi-tenancy.md +0 -602
  903. package/.claude/skills/platform-engineering/resources/platform-security.md +0 -711
  904. package/.claude/skills/platform-engineering/resources/resource-management.md +0 -592
  905. package/.claude/skills/platform-engineering/resources/service-mesh.md +0 -628
  906. package/.claude/skills/release-engineering/SKILL.md +0 -393
  907. package/.claude/skills/release-engineering/resources/artifact-management.md +0 -108
  908. package/.claude/skills/release-engineering/resources/build-optimization.md +0 -84
  909. package/.claude/skills/release-engineering/resources/ci-cd-pipelines.md +0 -411
  910. package/.claude/skills/release-engineering/resources/deployment-strategies.md +0 -197
  911. package/.claude/skills/release-engineering/resources/pipeline-security.md +0 -62
  912. package/.claude/skills/release-engineering/resources/progressive-delivery.md +0 -83
  913. package/.claude/skills/release-engineering/resources/release-automation.md +0 -68
  914. package/.claude/skills/release-engineering/resources/release-orchestration.md +0 -77
  915. package/.claude/skills/release-engineering/resources/rollback-strategies.md +0 -66
  916. package/.claude/skills/release-engineering/resources/versioning-strategies.md +0 -59
  917. package/.claude/skills/route-tester/SKILL.md +0 -392
  918. package/.claude/skills/skill-developer/ADVANCED.md +0 -197
  919. package/.claude/skills/skill-developer/HOOK_MECHANISMS.md +0 -306
  920. package/.claude/skills/skill-developer/PATTERNS_LIBRARY.md +0 -152
  921. package/.claude/skills/skill-developer/SKILL.md +0 -430
  922. package/.claude/skills/skill-developer/SKILL_RULES_REFERENCE.md +0 -315
  923. package/.claude/skills/skill-developer/TRIGGER_TYPES.md +0 -305
  924. package/.claude/skills/skill-developer/TROUBLESHOOTING.md +0 -514
  925. package/.claude/skills/skill-rules.json +0 -2940
  926. package/.claude/skills/sre/SKILL.md +0 -464
  927. package/.claude/skills/sre/resources/alerting-best-practices.md +0 -282
  928. package/.claude/skills/sre/resources/capacity-planning.md +0 -226
  929. package/.claude/skills/sre/resources/chaos-engineering.md +0 -193
  930. package/.claude/skills/sre/resources/disaster-recovery.md +0 -232
  931. package/.claude/skills/sre/resources/incident-management.md +0 -436
  932. package/.claude/skills/sre/resources/observability-stack.md +0 -240
  933. package/.claude/skills/sre/resources/on-call-runbooks.md +0 -167
  934. package/.claude/skills/sre/resources/performance-optimization.md +0 -108
  935. package/.claude/skills/sre/resources/reliability-patterns.md +0 -183
  936. package/.claude/skills/sre/resources/slo-sli-sla.md +0 -464
  937. package/.claude/skills/sre/resources/toil-reduction.md +0 -145
  938. package/.claude/skills/systems-engineering/SKILL.md +0 -648
  939. package/.claude/skills/systems-engineering/resources/automation-patterns.md +0 -771
  940. package/.claude/skills/systems-engineering/resources/configuration-management.md +0 -998
  941. package/.claude/skills/systems-engineering/resources/linux-administration.md +0 -672
  942. package/.claude/skills/systems-engineering/resources/networking-fundamentals.md +0 -982
  943. package/.claude/skills/systems-engineering/resources/performance-tuning.md +0 -871
  944. package/.claude/skills/systems-engineering/resources/powershell-scripting.md +0 -482
  945. package/.claude/skills/systems-engineering/resources/security-hardening.md +0 -739
  946. package/.claude/skills/systems-engineering/resources/shell-scripting.md +0 -915
  947. package/.claude/skills/systems-engineering/resources/storage-management.md +0 -628
  948. package/.claude/skills/systems-engineering/resources/system-monitoring.md +0 -787
  949. package/.claude/skills/systems-engineering/resources/troubleshooting-guide.md +0 -753
  950. package/.claude/skills/systems-engineering/resources/windows-administration.md +0 -738
  951. package/.claude/skills/technical-leadership/SKILL.md +0 -728
  952. package/backend/docs/SECRETS_DOCUMENTATION.md +0 -327
  953. package/frontend/dist/assets/index-DqzDkFsP.js +0 -11210
  954. package/frontend/dist/assets/index-t6K1u4OV.css +0 -32
@@ -1,915 +0,0 @@
1
- # Container Security
2
-
3
- Comprehensive guide to securing container images and runtime environments, covering image scanning, base image selection, vulnerability remediation, distroless images, runtime security, and container best practices.
4
-
5
- ## Table of Contents
6
-
7
- - [Overview](#overview)
8
- - [Image Scanning](#image-scanning)
9
- - [Base Image Selection](#base-image-selection)
10
- - [Distroless Images](#distroless-images)
11
- - [Runtime Security](#runtime-security)
12
- - [Pod Security Standards](#pod-security-standards)
13
- - [Image Signing and Verification](#image-signing-and-verification)
14
- - [Container Hardening](#container-hardening)
15
- - [Best Practices](#best-practices)
16
- - [Anti-Patterns](#anti-patterns)
17
-
18
- ## Overview
19
-
20
- **Container Security Layers:**
21
-
22
- ```
23
- ┌────────────────────────────────────────────────┐
24
- │ Supply Chain Security │
25
- │ (Image signing, SBOM, provenance) │
26
- ├────────────────────────────────────────────────┤
27
- │ Build-Time Security │
28
- │ (Base image, dependencies, scanning) │
29
- ├────────────────────────────────────────────────┤
30
- │ Registry Security │
31
- │ (Access control, encryption, scanning) │
32
- ├────────────────────────────────────────────────┤
33
- │ Runtime Security │
34
- │ (Falco, AppArmor, Seccomp, monitoring) │
35
- └────────────────────────────────────────────────┘
36
- ```
37
-
38
- ## Image Scanning
39
-
40
- ### Trivy Image Scanning
41
-
42
- **Basic Scanning:**
43
- ```bash
44
- # Scan image
45
- trivy image nginx:latest
46
-
47
- # Scan with severity filter
48
- trivy image --severity HIGH,CRITICAL nginx:latest
49
-
50
- # Scan local Dockerfile
51
- trivy config Dockerfile
52
-
53
- # Scan and fail on vulnerabilities
54
- trivy image --exit-code 1 --severity CRITICAL nginx:latest
55
-
56
- # Generate SBOM
57
- trivy image --format cyclonedx nginx:latest
58
- ```
59
-
60
- **CI Integration:**
61
- ```yaml
62
- # .github/workflows/container-scan.yml
63
- name: Container Security Scan
64
-
65
- on:
66
- push:
67
- branches: [ main ]
68
- pull_request:
69
-
70
- jobs:
71
- trivy-scan:
72
- runs-on: ubuntu-latest
73
- steps:
74
- - uses: actions/checkout@v3
75
-
76
- - name: Build image
77
- run: |
78
- docker build -t myapp:${{ github.sha }} .
79
-
80
- - name: Run Trivy vulnerability scanner
81
- uses: aquasecurity/trivy-action@master
82
- with:
83
- image-ref: 'myapp:${{ github.sha }}'
84
- format: 'sarif'
85
- output: 'trivy-results.sarif'
86
- severity: 'CRITICAL,HIGH'
87
- exit-code: '1'
88
-
89
- - name: Upload Trivy results to GitHub Security
90
- uses: github/codeql-action/upload-sarif@v2
91
- if: always()
92
- with:
93
- sarif_file: 'trivy-results.sarif'
94
-
95
- - name: Generate SBOM
96
- uses: aquasecurity/trivy-action@master
97
- with:
98
- image-ref: 'myapp:${{ github.sha }}'
99
- format: 'cyclonedx'
100
- output: 'sbom.json'
101
-
102
- - name: Upload SBOM
103
- uses: actions/upload-artifact@v3
104
- with:
105
- name: sbom
106
- path: sbom.json
107
- ```
108
-
109
- **Trivy Configuration:**
110
- ```yaml
111
- # trivy.yaml
112
- scan:
113
- security-checks:
114
- - vuln
115
- - config
116
- - secret
117
-
118
- severity:
119
- - CRITICAL
120
- - HIGH
121
-
122
- vulnerability:
123
- type:
124
- - os
125
- - library
126
-
127
- ignore-unfixed: true
128
-
129
- secret:
130
- config: .trivyignore-secrets
131
- ```
132
-
133
- **Ignore File:**
134
- ```
135
- # .trivyignore
136
- # Temporary ignore for CVE with no fix available
137
- CVE-2023-12345
138
-
139
- # Ignore low severity in dev dependencies
140
- CVE-2023-67890 npm:dev-dependency
141
- ```
142
-
143
- ### Grype Scanning
144
-
145
- ```bash
146
- # Install Grype
147
- curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh
148
-
149
- # Scan image
150
- grype nginx:latest
151
-
152
- # Only high/critical
153
- grype nginx:latest --fail-on high
154
-
155
- # Output formats
156
- grype nginx:latest -o json > results.json
157
- grype nginx:latest -o sarif > results.sarif
158
- grype nginx:latest -o template -t grype-report.tmpl
159
- ```
160
-
161
- ### Snyk Container
162
-
163
- ```bash
164
- # Authenticate
165
- snyk auth
166
-
167
- # Scan image
168
- snyk container test nginx:latest
169
-
170
- # Monitor image
171
- snyk container monitor nginx:latest --project-name=nginx-prod
172
-
173
- # Test Dockerfile
174
- snyk container test nginx:latest --file=Dockerfile
175
-
176
- # Get remediation advice
177
- snyk container test nginx:latest --json | jq '.vulnerabilities[].remediation'
178
- ```
179
-
180
- **GitHub Action:**
181
- ```yaml
182
- - name: Snyk Container Scan
183
- uses: snyk/actions/docker@master
184
- env:
185
- SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
186
- with:
187
- image: myapp:latest
188
- args: --severity-threshold=high --file=Dockerfile
189
- ```
190
-
191
- ## Base Image Selection
192
-
193
- ### Official vs Custom Images
194
-
195
- **Official Images (Recommended):**
196
- ```dockerfile
197
- # ✅ Good: Official images, well-maintained
198
- FROM node:20-alpine
199
- FROM python:3.11-slim
200
- FROM nginx:1.25-alpine
201
- FROM postgres:15-alpine
202
- ```
203
-
204
- **Avoid:**
205
- ```dockerfile
206
- # ❌ Bad: Unknown source, no security updates
207
- FROM someuser/custom-node:latest
208
- FROM random-image:v1
209
- ```
210
-
211
- ### Choosing the Right Variant
212
-
213
- **Variants Comparison:**
214
-
215
- | Variant | Size | Use Case | Security |
216
- |---------|------|----------|----------|
217
- | `alpine` | ~5MB | Production, minimal | Excellent |
218
- | `slim` | ~50MB | Good balance | Very Good |
219
- | `standard` | ~200MB | Dev, all tools | Good |
220
- | `distroless` | ~20MB | Production, secure | Excellent |
221
-
222
- **Examples:**
223
-
224
- ```dockerfile
225
- # Alpine (smallest)
226
- FROM node:20-alpine
227
- # Size: ~50MB, Good for production
228
-
229
- # Slim (balanced)
230
- FROM python:3.11-slim
231
- # Size: ~150MB, Common packages included
232
-
233
- # Distroless (most secure)
234
- FROM gcr.io/distroless/nodejs20-debian11
235
- # Size: ~70MB, No shell, minimal attack surface
236
- ```
237
-
238
- ### Multi-Stage Builds
239
-
240
- **Security Benefits:**
241
- - Remove build tools from final image
242
- - Smaller attack surface
243
- - Reduced vulnerability count
244
-
245
- ```dockerfile
246
- # Multi-stage build for security
247
- FROM node:20-alpine AS builder
248
- WORKDIR /app
249
-
250
- # Install dependencies
251
- COPY package*.json ./
252
- RUN npm ci --only=production && \
253
- npm cache clean --force
254
-
255
- COPY . .
256
- RUN npm run build
257
-
258
- # Final production image
259
- FROM gcr.io/distroless/nodejs20-debian11
260
- WORKDIR /app
261
-
262
- # Copy only necessary files
263
- COPY --from=builder /app/dist ./dist
264
- COPY --from=builder /app/node_modules ./node_modules
265
- COPY --from=builder /app/package.json ./
266
-
267
- # Non-root user (distroless default)
268
- USER nonroot:nonroot
269
-
270
- # Start app
271
- CMD ["dist/index.js"]
272
- ```
273
-
274
- **Comparison:**
275
-
276
- ```bash
277
- # Standard build
278
- FROM node:20
279
- WORKDIR /app
280
- COPY . .
281
- RUN npm install
282
- CMD ["node", "index.js"]
283
- # Result: 900MB, 200+ vulnerabilities
284
-
285
- # Multi-stage + distroless
286
- FROM node:20-alpine AS builder
287
- # ... build steps
288
- FROM gcr.io/distroless/nodejs20-debian11
289
- # ... minimal copy
290
- # Result: 150MB, 5 vulnerabilities
291
- ```
292
-
293
- ## Distroless Images
294
-
295
- ### What are Distroless Images?
296
-
297
- **Traditional Image:**
298
- ```
299
- Application
300
- Node.js Runtime
301
- Shell, Package Manager, Utils
302
- Base OS (Debian/Alpine)
303
- ────────────────────
304
- Size: 200MB
305
- Attack Surface: Large
306
- CVEs: 100+
307
- ```
308
-
309
- **Distroless Image:**
310
- ```
311
- Application
312
- Node.js Runtime
313
- Base OS (minimal)
314
- ────────────────────
315
- Size: 70MB
316
- Attack Surface: Minimal
317
- CVEs: 5-10
318
- ```
319
-
320
- ### Using Distroless
321
-
322
- **Node.js Example:**
323
- ```dockerfile
324
- FROM node:20-alpine AS builder
325
- WORKDIR /app
326
- COPY package*.json ./
327
- RUN npm ci --only=production
328
- COPY . .
329
- RUN npm run build
330
-
331
- FROM gcr.io/distroless/nodejs20-debian11
332
- WORKDIR /app
333
- COPY --from=builder /app/dist ./dist
334
- COPY --from=builder /app/node_modules ./node_modules
335
- EXPOSE 3000
336
- USER nonroot:nonroot
337
- CMD ["dist/index.js"]
338
- ```
339
-
340
- **Python Example:**
341
- ```dockerfile
342
- FROM python:3.11-slim AS builder
343
- WORKDIR /app
344
- COPY requirements.txt .
345
- RUN pip install --user --no-cache-dir -r requirements.txt
346
- COPY . .
347
-
348
- FROM gcr.io/distroless/python3-debian11
349
- WORKDIR /app
350
- COPY --from=builder /root/.local /root/.local
351
- COPY --from=builder /app .
352
- ENV PATH=/root/.local/bin:$PATH
353
- USER nonroot:nonroot
354
- CMD ["app.py"]
355
- ```
356
-
357
- **Java Example:**
358
- ```dockerfile
359
- FROM maven:3.9-eclipse-temurin-17 AS builder
360
- WORKDIR /app
361
- COPY pom.xml .
362
- RUN mvn dependency:go-offline
363
- COPY src ./src
364
- RUN mvn package -DskipTests
365
-
366
- FROM gcr.io/distroless/java17-debian11
367
- WORKDIR /app
368
- COPY --from=builder /app/target/app.jar .
369
- USER nonroot:nonroot
370
- CMD ["app.jar"]
371
- ```
372
-
373
- ### Debugging Distroless Images
374
-
375
- **Problem:** No shell for debugging
376
-
377
- **Solution 1: Debug Variant**
378
- ```dockerfile
379
- # Use debug variant for troubleshooting
380
- FROM gcr.io/distroless/nodejs20-debian11:debug
381
- # Includes busybox shell
382
- ```
383
-
384
- ```bash
385
- # Debug with docker exec
386
- docker run -it --entrypoint=/busybox/sh myapp:debug
387
- ```
388
-
389
- **Solution 2: Ephemeral Debug Container**
390
- ```bash
391
- # Kubernetes ephemeral container
392
- kubectl debug pod/myapp -it --image=busybox --target=myapp
393
- ```
394
-
395
- ## Runtime Security
396
-
397
- ### Falco Implementation
398
-
399
- **Installation (Kubernetes):**
400
- ```yaml
401
- # falco-helm-values.yaml
402
- falco:
403
- rules_file:
404
- - /etc/falco/falco_rules.yaml
405
- - /etc/falco/falco_rules.local.yaml
406
- - /etc/falco/k8s_audit_rules.yaml
407
-
408
- json_output: true
409
- json_include_output_property: true
410
-
411
- priority: warning
412
-
413
- falcosidekick:
414
- enabled: true
415
- webui:
416
- enabled: true
417
- ```
418
-
419
- ```bash
420
- # Install via Helm
421
- helm repo add falcosecurity https://falcosecurity.github.io/charts
422
- helm repo update
423
-
424
- helm install falco falcosecurity/falco \
425
- --namespace falco --create-namespace \
426
- -f falco-helm-values.yaml
427
- ```
428
-
429
- **Custom Falco Rules:**
430
- ```yaml
431
- # custom-rules.yaml
432
- - rule: Unauthorized Process in Container
433
- desc: Detect unauthorized processes running in containers
434
- condition: >
435
- spawned_process and
436
- container and
437
- not proc.name in (node, npm, python, java)
438
- output: >
439
- Unauthorized process started in container
440
- (user=%user.name process=%proc.name
441
- container=%container.name image=%container.image)
442
- priority: WARNING
443
-
444
- - rule: Container Drift Detected
445
- desc: Detect file modifications in container
446
- condition: >
447
- evt.type = open and
448
- evt.dir = < and
449
- container and
450
- fd.name startswith /app/ and
451
- not proc.name in (node, npm)
452
- output: >
453
- File modified in running container
454
- (file=%fd.name process=%proc.name
455
- container=%container.name)
456
- priority: ERROR
457
-
458
- - rule: Sensitive File Access
459
- desc: Detect access to sensitive files
460
- condition: >
461
- open_read and
462
- sensitive_files and
463
- not trusted_process
464
- output: >
465
- Sensitive file accessed
466
- (file=%fd.name process=%proc.name user=%user.name)
467
- priority: CRITICAL
468
- ```
469
-
470
- ### AppArmor Profiles
471
-
472
- **Kubernetes with AppArmor:**
473
- ```yaml
474
- apiVersion: v1
475
- kind: Pod
476
- metadata:
477
- name: secured-app
478
- annotations:
479
- container.apparmor.security.beta.kubernetes.io/app: localhost/k8s-apparmor-example
480
- spec:
481
- containers:
482
- - name: app
483
- image: nginx:alpine
484
- securityContext:
485
- allowPrivilegeEscalation: false
486
- ```
487
-
488
- **AppArmor Profile:**
489
- ```
490
- #include <tunables/global>
491
-
492
- profile k8s-apparmor-example flags=(attach_disconnected,mediate_deleted) {
493
- #include <abstractions/base>
494
-
495
- # Allow network
496
- network inet tcp,
497
- network inet udp,
498
-
499
- # Deny all file writes except in specific directories
500
- deny /** w,
501
- /app/** rw,
502
- /tmp/** rw,
503
-
504
- # Deny process execution except allowed binaries
505
- deny /bin/** x,
506
- deny /usr/bin/** x,
507
- /usr/bin/node ix,
508
-
509
- # Deny capability
510
- deny capability sys_admin,
511
- deny capability net_admin,
512
- }
513
- ```
514
-
515
- ### Seccomp Profiles
516
-
517
- ```json
518
- {
519
- "defaultAction": "SCMP_ACT_ERRNO",
520
- "architectures": [
521
- "SCMP_ARCH_X86_64",
522
- "SCMP_ARCH_X86",
523
- "SCMP_ARCH_ARM64"
524
- ],
525
- "syscalls": [
526
- {
527
- "names": [
528
- "accept4", "bind", "listen", "connect", "socket",
529
- "read", "write", "open", "close", "stat",
530
- "fstat", "lstat", "poll", "epoll_wait",
531
- "rt_sigaction", "rt_sigprocmask", "clone",
532
- "execve", "wait4", "exit", "exit_group"
533
- ],
534
- "action": "SCMP_ACT_ALLOW"
535
- }
536
- ]
537
- }
538
- ```
539
-
540
- **Using in Kubernetes:**
541
- ```yaml
542
- apiVersion: v1
543
- kind: Pod
544
- metadata:
545
- name: secured-pod
546
- spec:
547
- securityContext:
548
- seccompProfile:
549
- type: Localhost
550
- localhostProfile: profiles/restricted.json
551
- containers:
552
- - name: app
553
- image: myapp:latest
554
- ```
555
-
556
- ## Pod Security Standards
557
-
558
- ### Pod Security Levels
559
-
560
- **Privileged (Unrestricted):**
561
- ```yaml
562
- # No restrictions - avoid in production
563
- ```
564
-
565
- **Baseline (Minimally Restrictive):**
566
- ```yaml
567
- apiVersion: v1
568
- kind: Pod
569
- metadata:
570
- name: baseline-pod
571
- spec:
572
- containers:
573
- - name: app
574
- image: nginx:alpine
575
- securityContext:
576
- allowPrivilegeEscalation: false
577
- capabilities:
578
- drop: ["ALL"]
579
- runAsNonRoot: true
580
- ```
581
-
582
- **Restricted (Highly Restrictive - Recommended):**
583
- ```yaml
584
- apiVersion: v1
585
- kind: Pod
586
- metadata:
587
- name: restricted-pod
588
- spec:
589
- securityContext:
590
- runAsNonRoot: true
591
- runAsUser: 1000
592
- fsGroup: 1000
593
- seccompProfile:
594
- type: RuntimeDefault
595
-
596
- containers:
597
- - name: app
598
- image: nginx:alpine
599
- securityContext:
600
- allowPrivilegeEscalation: false
601
- runAsNonRoot: true
602
- runAsUser: 1000
603
- capabilities:
604
- drop: ["ALL"]
605
- readOnlyRootFilesystem: true
606
-
607
- volumeMounts:
608
- - name: tmp
609
- mountPath: /tmp
610
- - name: cache
611
- mountPath: /var/cache/nginx
612
-
613
- volumes:
614
- - name: tmp
615
- emptyDir: {}
616
- - name: cache
617
- emptyDir: {}
618
- ```
619
-
620
- ### Namespace-Level Enforcement
621
-
622
- ```yaml
623
- # Enforce restricted standard for namespace
624
- apiVersion: v1
625
- kind: Namespace
626
- metadata:
627
- name: production
628
- labels:
629
- pod-security.kubernetes.io/enforce: restricted
630
- pod-security.kubernetes.io/audit: restricted
631
- pod-security.kubernetes.io/warn: restricted
632
- ```
633
-
634
- ## Image Signing and Verification
635
-
636
- ### Cosign (Sigstore)
637
-
638
- **Install Cosign:**
639
- ```bash
640
- # Linux
641
- wget https://github.com/sigstore/cosign/releases/download/v2.0.0/cosign-linux-amd64
642
- chmod +x cosign-linux-amd64
643
- mv cosign-linux-amd64 /usr/local/bin/cosign
644
-
645
- # macOS
646
- brew install cosign
647
- ```
648
-
649
- **Generate Keys:**
650
- ```bash
651
- # Generate key pair
652
- cosign generate-key-pair
653
-
654
- # Outputs:
655
- # - cosign.key (private key - keep secure!)
656
- # - cosign.pub (public key - distribute)
657
- ```
658
-
659
- **Sign Image:**
660
- ```bash
661
- # Sign image
662
- cosign sign --key cosign.key myregistry.com/myapp:v1.0.0
663
-
664
- # Keyless signing (OIDC)
665
- cosign sign myregistry.com/myapp:v1.0.0
666
-
667
- # Sign with annotations
668
- cosign sign --key cosign.key \
669
- -a git_commit=$(git rev-parse HEAD) \
670
- -a build_date=$(date -u +%Y-%m-%dT%H:%M:%SZ) \
671
- myregistry.com/myapp:v1.0.0
672
- ```
673
-
674
- **Verify Image:**
675
- ```bash
676
- # Verify signature
677
- cosign verify --key cosign.pub myregistry.com/myapp:v1.0.0
678
-
679
- # Keyless verification
680
- cosign verify \
681
- --certificate-identity=user@example.com \
682
- --certificate-oidc-issuer=https://github.com/login/oauth \
683
- myregistry.com/myapp:v1.0.0
684
- ```
685
-
686
- **CI Integration:**
687
- ```yaml
688
- # .github/workflows/sign-image.yml
689
- name: Build and Sign Container
690
-
691
- on:
692
- push:
693
- tags: [ 'v*' ]
694
-
695
- jobs:
696
- build-sign:
697
- runs-on: ubuntu-latest
698
- permissions:
699
- contents: read
700
- packages: write
701
- id-token: write # For keyless signing
702
-
703
- steps:
704
- - uses: actions/checkout@v3
705
-
706
- - name: Login to registry
707
- uses: docker/login-action@v2
708
- with:
709
- registry: ghcr.io
710
- username: ${{ github.actor }}
711
- password: ${{ secrets.GITHUB_TOKEN }}
712
-
713
- - name: Build and push
714
- uses: docker/build-push-action@v4
715
- with:
716
- push: true
717
- tags: ghcr.io/${{ github.repository }}:${{ github.ref_name }}
718
-
719
- - name: Install Cosign
720
- uses: sigstore/cosign-installer@v3
721
-
722
- - name: Sign image
723
- run: |
724
- cosign sign --yes \
725
- ghcr.io/${{ github.repository }}:${{ github.ref_name }}
726
- ```
727
-
728
- ### Admission Controller Verification
729
-
730
- **Kyverno Policy:**
731
- ```yaml
732
- apiVersion: kyverno.io/v1
733
- kind: ClusterPolicy
734
- metadata:
735
- name: verify-image-signature
736
- spec:
737
- validationFailureAction: enforce
738
- background: false
739
- rules:
740
- - name: verify-signature
741
- match:
742
- any:
743
- - resources:
744
- kinds:
745
- - Pod
746
- verifyImages:
747
- - imageReferences:
748
- - "myregistry.com/*"
749
- attestors:
750
- - entries:
751
- - keys:
752
- publicKeys: |-
753
- -----BEGIN PUBLIC KEY-----
754
- MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE...
755
- -----END PUBLIC KEY-----
756
- ```
757
-
758
- ## Container Hardening
759
-
760
- ### Minimal Dockerfile
761
-
762
- ```dockerfile
763
- # ✅ Secure Dockerfile
764
- FROM node:20-alpine AS builder
765
- WORKDIR /app
766
-
767
- # Install dependencies as non-root
768
- RUN addgroup -g 1001 -S nodejs && \
769
- adduser -S nodejs -u 1001
770
-
771
- # Copy dependency files
772
- COPY --chown=nodejs:nodejs package*.json ./
773
-
774
- # Install dependencies
775
- RUN npm ci --only=production && \
776
- npm cache clean --force
777
-
778
- # Copy application
779
- COPY --chown=nodejs:nodejs . .
780
-
781
- # Build application
782
- RUN npm run build
783
-
784
- # Production image
785
- FROM gcr.io/distroless/nodejs20-debian11
786
- WORKDIR /app
787
-
788
- # Copy from builder
789
- COPY --from=builder --chown=nonroot:nonroot /app/dist ./dist
790
- COPY --from=builder --chown=nonroot:nonroot /app/node_modules ./node_modules
791
- COPY --from=builder --chown=nonroot:nonroot /app/package.json ./
792
-
793
- # Use non-root user
794
- USER nonroot:nonroot
795
-
796
- # Health check
797
- HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
798
- CMD ["/nodejs/bin/node", "-e", "fetch('http://localhost:3000/health')"]
799
-
800
- # Expose port
801
- EXPOSE 3000
802
-
803
- # Start application
804
- CMD ["dist/index.js"]
805
- ```
806
-
807
- ### Security Best Practices
808
-
809
- ```dockerfile
810
- # ❌ Bad practices
811
- FROM ubuntu:latest # Don't use 'latest'
812
- RUN apt-get update # Don't run as root
813
- ADD http://example.com/file.tar.gz / # Unsafe ADD
814
- COPY secrets.env . # Never copy secrets
815
- RUN chmod 777 /app # Overly permissive
816
-
817
- # ✅ Good practices
818
- FROM ubuntu:22.04 # Use specific versions
819
- RUN apt-get update && apt-get install -y package \
820
- && rm -rf /var/lib/apt/lists/* # Clean up
821
- COPY --chown=user:user file.tar.gz / # Use COPY, set ownership
822
- # Use secret management, not files
823
- RUN chmod 755 /app # Minimal permissions
824
- USER nonroot # Run as non-root
825
- ```
826
-
827
- ## Best Practices
828
-
829
- ### 1. Use Minimal Base Images
830
-
831
- ```dockerfile
832
- # Size and security comparison
833
- alpine: 5 MB, ~5 CVEs
834
- distroless: 20 MB, ~3 CVEs
835
- slim: 50 MB, ~15 CVEs
836
- standard: 200 MB, ~50 CVEs
837
- ```
838
-
839
- ### 2. Multi-Stage Builds
840
-
841
- Keep build tools out of production images.
842
-
843
- ### 3. Scan Images Regularly
844
-
845
- ```bash
846
- # Scan on build
847
- # Scan on schedule (weekly)
848
- # Scan on new vulnerabilities
849
- ```
850
-
851
- ### 4. Sign Images
852
-
853
- Verify image authenticity and integrity.
854
-
855
- ### 5. Run as Non-Root
856
-
857
- ```dockerfile
858
- USER nonroot:nonroot
859
- ```
860
-
861
- ### 6. Drop Capabilities
862
-
863
- ```yaml
864
- securityContext:
865
- capabilities:
866
- drop: ["ALL"]
867
- ```
868
-
869
- ### 7. Read-Only Root Filesystem
870
-
871
- ```yaml
872
- securityContext:
873
- readOnlyRootFilesystem: true
874
- ```
875
-
876
- ### 8. Network Policies
877
-
878
- Restrict container network access.
879
-
880
- ### 9. Resource Limits
881
-
882
- Prevent resource exhaustion.
883
-
884
- ### 10. Runtime Monitoring
885
-
886
- Use Falco or similar tools.
887
-
888
- ## Anti-Patterns
889
-
890
- ❌ **Using `latest` tag** - Unpredictable, not reproducible
891
-
892
- ❌ **Running as root** - Unnecessary privilege
893
-
894
- ❌ **Including secrets in image** - Exposed in layers
895
-
896
- ❌ **Not scanning images** - Unknown vulnerabilities
897
-
898
- ❌ **Privileged containers** - Full host access
899
-
900
- ❌ **No resource limits** - Resource exhaustion risk
901
-
902
- ❌ **Mutable containers** - Configuration drift
903
-
904
- ❌ **Ignoring CVEs** - "Won't fix" attitude
905
-
906
- ❌ **No signature verification** - Supply chain risk
907
-
908
- ❌ **Large images** - More vulnerabilities, slow deployments
909
-
910
- ---
911
-
912
- **Related Resources:**
913
- - [security-scanning.md](security-scanning.md) - Vulnerability scanning tools
914
- - [supply-chain-security.md](supply-chain-security.md) - SBOM, provenance
915
- - [policy-enforcement.md](policy-enforcement.md) - OPA, Kyverno policies