@darkclaw921/umgt 0.0.0-stage → 0.2.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 (295) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +161 -2
  3. package/architecture.md +105 -0
  4. package/bin/lm-game-hub.js +7 -0
  5. package/dist/server/activity.d.ts +17 -0
  6. package/dist/server/activity.js +55 -0
  7. package/dist/server/activity.js.map +1 -0
  8. package/dist/server/agents/activity.d.ts +36 -0
  9. package/dist/server/agents/activity.js +117 -0
  10. package/dist/server/agents/activity.js.map +1 -0
  11. package/dist/server/agents/claude.d.ts +5 -0
  12. package/dist/server/agents/claude.js +107 -0
  13. package/dist/server/agents/claude.js.map +1 -0
  14. package/dist/server/agents/codex.d.ts +5 -0
  15. package/dist/server/agents/codex.js +128 -0
  16. package/dist/server/agents/codex.js.map +1 -0
  17. package/dist/server/agents/core-tools.d.ts +23 -0
  18. package/dist/server/agents/core-tools.js +298 -0
  19. package/dist/server/agents/core-tools.js.map +1 -0
  20. package/dist/server/agents/core.d.ts +9 -0
  21. package/dist/server/agents/core.js +106 -0
  22. package/dist/server/agents/core.js.map +1 -0
  23. package/dist/server/agents/index.d.ts +5 -0
  24. package/dist/server/agents/index.js +41 -0
  25. package/dist/server/agents/index.js.map +1 -0
  26. package/dist/server/agents/kimi.d.ts +5 -0
  27. package/dist/server/agents/kimi.js +123 -0
  28. package/dist/server/agents/kimi.js.map +1 -0
  29. package/dist/server/agents/rpc.d.ts +19 -0
  30. package/dist/server/agents/rpc.js +102 -0
  31. package/dist/server/agents/rpc.js.map +1 -0
  32. package/dist/server/agents/types.d.ts +51 -0
  33. package/dist/server/agents/types.js +7 -0
  34. package/dist/server/agents/types.js.map +1 -0
  35. package/dist/server/app.d.ts +21 -0
  36. package/dist/server/app.js +38 -0
  37. package/dist/server/app.js.map +1 -0
  38. package/dist/server/asset-catalog.d.ts +5 -0
  39. package/dist/server/asset-catalog.js +525 -0
  40. package/dist/server/asset-catalog.js.map +1 -0
  41. package/dist/server/asset-media.d.ts +16 -0
  42. package/dist/server/asset-media.js +170 -0
  43. package/dist/server/asset-media.js.map +1 -0
  44. package/dist/server/asset-selection.d.ts +71 -0
  45. package/dist/server/asset-selection.js +273 -0
  46. package/dist/server/asset-selection.js.map +1 -0
  47. package/dist/server/assets.d.ts +69 -0
  48. package/dist/server/assets.js +669 -0
  49. package/dist/server/assets.js.map +1 -0
  50. package/dist/server/browser-gateway.d.ts +82 -0
  51. package/dist/server/browser-gateway.js +285 -0
  52. package/dist/server/browser-gateway.js.map +1 -0
  53. package/dist/server/chat-computer.d.ts +13 -0
  54. package/dist/server/chat-computer.js +29 -0
  55. package/dist/server/chat-computer.js.map +1 -0
  56. package/dist/server/chat-games.d.ts +38 -0
  57. package/dist/server/chat-games.js +202 -0
  58. package/dist/server/chat-games.js.map +1 -0
  59. package/dist/server/chat.d.ts +42 -0
  60. package/dist/server/chat.js +318 -0
  61. package/dist/server/chat.js.map +1 -0
  62. package/dist/server/cli.d.ts +14 -0
  63. package/dist/server/cli.js +117 -0
  64. package/dist/server/cli.js.map +1 -0
  65. package/dist/server/core-client.d.ts +69 -0
  66. package/dist/server/core-client.js +357 -0
  67. package/dist/server/core-client.js.map +1 -0
  68. package/dist/server/directory-picker.d.ts +14 -0
  69. package/dist/server/directory-picker.js +113 -0
  70. package/dist/server/directory-picker.js.map +1 -0
  71. package/dist/server/engine.d.ts +36 -0
  72. package/dist/server/engine.js +507 -0
  73. package/dist/server/engine.js.map +1 -0
  74. package/dist/server/events.d.ts +12 -0
  75. package/dist/server/events.js +137 -0
  76. package/dist/server/events.js.map +1 -0
  77. package/dist/server/game-launch.d.ts +16 -0
  78. package/dist/server/game-launch.js +143 -0
  79. package/dist/server/game-launch.js.map +1 -0
  80. package/dist/server/html5.d.ts +9 -0
  81. package/dist/server/html5.js +107 -0
  82. package/dist/server/html5.js.map +1 -0
  83. package/dist/server/interview.d.ts +241 -0
  84. package/dist/server/interview.js +190 -0
  85. package/dist/server/interview.js.map +1 -0
  86. package/dist/server/mcp.d.ts +27 -0
  87. package/dist/server/mcp.js +91 -0
  88. package/dist/server/mcp.js.map +1 -0
  89. package/dist/server/plugins.d.ts +8 -0
  90. package/dist/server/plugins.js +144 -0
  91. package/dist/server/plugins.js.map +1 -0
  92. package/dist/server/process.d.ts +15 -0
  93. package/dist/server/process.js +89 -0
  94. package/dist/server/process.js.map +1 -0
  95. package/dist/server/publication-materials.d.ts +18 -0
  96. package/dist/server/publication-materials.js +104 -0
  97. package/dist/server/publication-materials.js.map +1 -0
  98. package/dist/server/publication-mcp.d.ts +3 -0
  99. package/dist/server/publication-mcp.js +43 -0
  100. package/dist/server/publication-mcp.js.map +1 -0
  101. package/dist/server/publication.d.ts +54 -0
  102. package/dist/server/publication.js +334 -0
  103. package/dist/server/publication.js.map +1 -0
  104. package/dist/server/push.d.ts +81 -0
  105. package/dist/server/push.js +122 -0
  106. package/dist/server/push.js.map +1 -0
  107. package/dist/server/reports.d.ts +4 -0
  108. package/dist/server/reports.js +40 -0
  109. package/dist/server/reports.js.map +1 -0
  110. package/dist/server/roblox-assets.d.ts +41 -0
  111. package/dist/server/roblox-assets.js +131 -0
  112. package/dist/server/roblox-assets.js.map +1 -0
  113. package/dist/server/roblox-connection.d.ts +54 -0
  114. package/dist/server/roblox-connection.js +331 -0
  115. package/dist/server/roblox-connection.js.map +1 -0
  116. package/dist/server/roblox-install.d.ts +4 -0
  117. package/dist/server/roblox-install.js +170 -0
  118. package/dist/server/roblox-install.js.map +1 -0
  119. package/dist/server/roblox-mcp.d.ts +2 -0
  120. package/dist/server/roblox-mcp.js +34 -0
  121. package/dist/server/roblox-mcp.js.map +1 -0
  122. package/dist/server/roblox-play.d.ts +23 -0
  123. package/dist/server/roblox-play.js +84 -0
  124. package/dist/server/roblox-play.js.map +1 -0
  125. package/dist/server/roblox-project-tools.d.ts +11 -0
  126. package/dist/server/roblox-project-tools.js +119 -0
  127. package/dist/server/roblox-project-tools.js.map +1 -0
  128. package/dist/server/roblox-setup.d.ts +37 -0
  129. package/dist/server/roblox-setup.js +206 -0
  130. package/dist/server/roblox-setup.js.map +1 -0
  131. package/dist/server/roblox-skills.d.ts +15 -0
  132. package/dist/server/roblox-skills.js +15 -0
  133. package/dist/server/roblox-skills.js.map +1 -0
  134. package/dist/server/roblox.d.ts +30 -0
  135. package/dist/server/roblox.js +248 -0
  136. package/dist/server/roblox.js.map +1 -0
  137. package/dist/server/routes.d.ts +11 -0
  138. package/dist/server/routes.js +223 -0
  139. package/dist/server/routes.js.map +1 -0
  140. package/dist/server/security.d.ts +4 -0
  141. package/dist/server/security.js +64 -0
  142. package/dist/server/security.js.map +1 -0
  143. package/dist/server/skills.d.ts +4 -0
  144. package/dist/server/skills.js +123 -0
  145. package/dist/server/skills.js.map +1 -0
  146. package/dist/server/store.d.ts +25 -0
  147. package/dist/server/store.js +89 -0
  148. package/dist/server/store.js.map +1 -0
  149. package/dist/server/templates/roblox-coin-run.d.ts +2 -0
  150. package/dist/server/templates/roblox-coin-run.js +326 -0
  151. package/dist/server/templates/roblox-coin-run.js.map +1 -0
  152. package/dist/server/templates/roblox-skills.json +55 -0
  153. package/dist/server/templates/yandex-sdk.d.ts +3 -0
  154. package/dist/server/templates/yandex-sdk.js +177 -0
  155. package/dist/server/templates/yandex-sdk.js.map +1 -0
  156. package/dist/server/updates.d.ts +28 -0
  157. package/dist/server/updates.js +99 -0
  158. package/dist/server/updates.js.map +1 -0
  159. package/dist/server/video-media.d.ts +47 -0
  160. package/dist/server/video-media.js +224 -0
  161. package/dist/server/video-media.js.map +1 -0
  162. package/dist/server/video-routes.d.ts +7 -0
  163. package/dist/server/video-routes.js +91 -0
  164. package/dist/server/video-routes.js.map +1 -0
  165. package/dist/server/video.d.ts +214 -0
  166. package/dist/server/video.js +301 -0
  167. package/dist/server/video.js.map +1 -0
  168. package/dist/server/web-build.d.ts +16 -0
  169. package/dist/server/web-build.js +232 -0
  170. package/dist/server/web-build.js.map +1 -0
  171. package/dist/server/workflow.d.ts +221 -0
  172. package/dist/server/workflow.js +826 -0
  173. package/dist/server/workflow.js.map +1 -0
  174. package/dist/server/yandex-config.d.ts +33 -0
  175. package/dist/server/yandex-config.js +12 -0
  176. package/dist/server/yandex-config.js.map +1 -0
  177. package/dist/server/yandex-godot.d.ts +5 -0
  178. package/dist/server/yandex-godot.js +107 -0
  179. package/dist/server/yandex-godot.js.map +1 -0
  180. package/dist/shared/aspects.d.ts +48 -0
  181. package/dist/shared/aspects.js +22 -0
  182. package/dist/shared/aspects.js.map +1 -0
  183. package/dist/shared/assistant.d.ts +7 -0
  184. package/dist/shared/assistant.js +36 -0
  185. package/dist/shared/assistant.js.map +1 -0
  186. package/dist/shared/chat.d.ts +46 -0
  187. package/dist/shared/chat.js +2 -0
  188. package/dist/shared/chat.js.map +1 -0
  189. package/dist/shared/settings.d.ts +11 -0
  190. package/dist/shared/settings.js +25 -0
  191. package/dist/shared/settings.js.map +1 -0
  192. package/dist/shared/types.d.ts +510 -0
  193. package/dist/shared/types.js +2 -0
  194. package/dist/shared/types.js.map +1 -0
  195. package/dist/web/apple-touch-icon.png +0 -0
  196. package/dist/web/assets/AgentActivity-sYJeY5Yf.js +9 -0
  197. package/dist/web/assets/ArrowRight.es-9w41WqD8.js +1 -0
  198. package/dist/web/assets/ArrowUpRight.es-BmIrpjWN.js +1 -0
  199. package/dist/web/assets/AssetMediaPreview-D2cd6oQO.js +1 -0
  200. package/dist/web/assets/AssetSelectionWizard-a43_6NO7.js +1 -0
  201. package/dist/web/assets/CaretDown.es-Cq33NYip.js +1 -0
  202. package/dist/web/assets/CheckCircle.es-D5B3hdvz.js +1 -0
  203. package/dist/web/assets/CoreAccount-D4ZC8CWv.js +1 -0
  204. package/dist/web/assets/DownloadSimple.es-DwOWFbs2.js +1 -0
  205. package/dist/web/assets/FileText.es-D83IIiOG.js +1 -0
  206. package/dist/web/assets/ImageSquare.es-DxCFt99_.js +1 -0
  207. package/dist/web/assets/KidsApp-BXWaALoK.css +1 -0
  208. package/dist/web/assets/KidsApp-D-8t3HPy.js +2 -0
  209. package/dist/web/assets/MagnifyingGlass.es-rkdOU2rH.js +1 -0
  210. package/dist/web/assets/PaperPlaneRight.es-U0twumpP.js +1 -0
  211. package/dist/web/assets/PencilSimple.es-JVHwRvGx.js +1 -0
  212. package/dist/web/assets/PlainChat-BC4K_tmj.css +1 -0
  213. package/dist/web/assets/PlainChat-CMxYwKko.js +1 -0
  214. package/dist/web/assets/Sparkle.es-CmGpvnNm.js +1 -0
  215. package/dist/web/assets/Square.es-BjNN9Ypc.js +1 -0
  216. package/dist/web/assets/UploadSimple.es-DxIuxpCC.js +1 -0
  217. package/dist/web/assets/WarningCircle.es-D63H8cL9.js +1 -0
  218. package/dist/web/assets/WorkflowJournal-Did0sRta.js +1 -0
  219. package/dist/web/assets/YandexConfigFields-DDL22Bfw.js +1 -0
  220. package/dist/web/assets/YandexGamesView-R64RSJRL.js +2 -0
  221. package/dist/web/assets/bg-build-DIalyCDw.svg +3 -0
  222. package/dist/web/assets/bg-idea-DHcE-Dhs.svg +3 -0
  223. package/dist/web/assets/bg-materials-UDVFaueI.svg +3 -0
  224. package/dist/web/assets/bg-plan-DpfwIsqJ.svg +3 -0
  225. package/dist/web/assets/bg-play-CNc1QZFK.svg +3 -0
  226. package/dist/web/assets/dist-7vx7MTaJ.js +1 -0
  227. package/dist/web/assets/index-Izzbh11U.css +1 -0
  228. package/dist/web/assets/index-sNciOZYG.js +13 -0
  229. package/dist/web/assets/jsx-runtime-CdVFa8IP.js +1 -0
  230. package/dist/web/assets/manrope-cyrillic-wght-normal-Dvxsihut.woff2 +0 -0
  231. package/dist/web/assets/manrope-greek-wght-normal-DL7QRZyv.woff2 +0 -0
  232. package/dist/web/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2 +0 -0
  233. package/dist/web/assets/manrope-latin-wght-normal-DHIcAJRg.woff2 +0 -0
  234. package/dist/web/assets/manrope-vietnamese-wght-normal-usUDDRr7.woff2 +0 -0
  235. package/dist/web/assets/resources-DppXCagL.js +1 -0
  236. package/dist/web/assets/robot-happy-B6YvlU94.svg +24 -0
  237. package/dist/web/assets/robot-hello-CCsQgsS-.svg +24 -0
  238. package/dist/web/assets/robot-listen-Buuz9xII.svg +24 -0
  239. package/dist/web/assets/robot-sad-CRtiNVWs.svg +24 -0
  240. package/dist/web/assets/robot-think-CJ5fDBTm.svg +24 -0
  241. package/dist/web/assets/star-big-CSFDKjws.svg +22 -0
  242. package/dist/web/assets/star-empty-CC-5vioJ.svg +3 -0
  243. package/dist/web/assets/star-next-ztuDjOHU.svg +9 -0
  244. package/dist/web/assets/star-on-l_krO3aV.svg +10 -0
  245. package/dist/web/assets/ui-wHE_yBK0.js +41 -0
  246. package/dist/web/assets/umgt-logo-DAOkTN9u.png +0 -0
  247. package/dist/web/assets/unbounded-cyrillic-wght-normal-C627f1f8.woff2 +0 -0
  248. package/dist/web/assets/unbounded-latin-ext-wght-normal-D6H-S6MW.woff2 +0 -0
  249. package/dist/web/assets/unbounded-latin-wght-normal-D5afBTBx.woff2 +0 -0
  250. package/dist/web/assets/unbounded-vietnamese-wght-normal-rat7GD3o.woff2 +0 -0
  251. package/dist/web/assets/workflow-BhcU9uvG.css +1 -0
  252. package/dist/web/assets/workflow-BrIKN5ER.js +34 -0
  253. package/dist/web/favicon.ico +0 -0
  254. package/dist/web/icons/favicon-16.png +0 -0
  255. package/dist/web/icons/favicon-32.png +0 -0
  256. package/dist/web/icons/icon-192.png +0 -0
  257. package/dist/web/icons/icon-512.png +0 -0
  258. package/dist/web/icons/maskable-192.png +0 -0
  259. package/dist/web/icons/maskable-512.png +0 -0
  260. package/dist/web/index.html +28 -0
  261. package/dist/web/manifest.webmanifest +19 -0
  262. package/dist/web/sw.js +25 -0
  263. package/docs/agent-activity-ui.md +33 -0
  264. package/docs/agent-activity.md +43 -0
  265. package/docs/agent-permissions-ui.md +15 -0
  266. package/docs/api.md +145 -0
  267. package/docs/approval-journal.md +13 -0
  268. package/docs/asset-media.md +27 -0
  269. package/docs/asset-providers.md +34 -0
  270. package/docs/asset-selection.md +31 -0
  271. package/docs/automatic-approvals.md +15 -0
  272. package/docs/background-game-launch.md +17 -0
  273. package/docs/billing-validation.md +23 -0
  274. package/docs/core-isolation.md +37 -0
  275. package/docs/core.md +45 -0
  276. package/docs/generated-text-ui.md +41 -0
  277. package/docs/interactive-interview-ui.md +29 -0
  278. package/docs/interactive-interview.md +52 -0
  279. package/docs/local-codex.md +51 -0
  280. package/docs/local-meshy.md +13 -0
  281. package/docs/markdown.md +11 -0
  282. package/docs/permission-ui.md +11 -0
  283. package/docs/plan.md +47 -0
  284. package/docs/remote-core-deployment.md +47 -0
  285. package/docs/roblox.md +90 -0
  286. package/docs/validation.md +228 -0
  287. package/docs/video-reference.md +35 -0
  288. package/docs/workflow-journal-ui.md +21 -0
  289. package/docs/yandex-foundation.md +27 -0
  290. package/docs/yandex-games.md +45 -0
  291. package/package.json +95 -4
  292. package/scripts/create-roblox-demo.mjs +31 -0
  293. package/scripts/diagnose-roblox-mcp.mjs +45 -0
  294. package/scripts/open-hub-chrome.mjs +60 -0
  295. package/scripts/smoke-agent.mjs +91 -0
@@ -0,0 +1,525 @@
1
+ /** Curated official-source records, verified on 2026-10-08. No runtime crawling.
2
+ * Kenney provides manual download links; OpenGameArt imports use exact listed files.
3
+ * OGA entries with several licenses use the explicitly offered CC0/CC-BY option. */
4
+ export const curatedAssets = [
5
+ {
6
+ "id": "tiny-town",
7
+ "provider": "kenney",
8
+ "name": "Tiny Town",
9
+ "type": "2d",
10
+ "sourceUrl": "https://kenney.nl/assets/tiny-town",
11
+ "provenanceUrl": "https://kenney.nl/assets/tiny-town",
12
+ "license": "CC0-1.0",
13
+ "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
14
+ "author": "Kenney",
15
+ "tags": [
16
+ "town",
17
+ "city",
18
+ "tiles",
19
+ "village",
20
+ "top",
21
+ "down",
22
+ "buildings",
23
+ "environment"
24
+ ],
25
+ "formats": [
26
+ "ZIP"
27
+ ],
28
+ "thumbnail": "https://kenney.nl/media/pages/assets/tiny-town/e241a9f6c0-1674742338/sample.png",
29
+ "downloadUrl": "https://kenney.nl/media/pages/assets/tiny-town/a415fbeb49-1735736916/kenney_tiny-town.zip",
30
+ "importMode": "manual",
31
+ "verifiedAt": "2026-10-08"
32
+ },
33
+ {
34
+ "id": "nature-kit",
35
+ "provider": "kenney",
36
+ "name": "Nature Kit",
37
+ "type": "models",
38
+ "sourceUrl": "https://kenney.nl/assets/nature-kit",
39
+ "provenanceUrl": "https://kenney.nl/assets/nature-kit",
40
+ "license": "CC0-1.0",
41
+ "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
42
+ "author": "Kenney",
43
+ "tags": [
44
+ "nature",
45
+ "forest",
46
+ "trees",
47
+ "rocks",
48
+ "low",
49
+ "poly",
50
+ "terrain",
51
+ "environment",
52
+ "3d"
53
+ ],
54
+ "formats": [
55
+ "ZIP"
56
+ ],
57
+ "thumbnail": "https://kenney.nl/media/pages/assets/nature-kit/656a90532f-1677698896/sample.png",
58
+ "downloadUrl": "https://kenney.nl/media/pages/assets/nature-kit/37ac38a37b-1677698939/kenney_nature-kit.zip",
59
+ "importMode": "manual",
60
+ "verifiedAt": "2026-10-08"
61
+ },
62
+ {
63
+ "id": "ui-pack",
64
+ "provider": "kenney",
65
+ "name": "UI Pack",
66
+ "type": "ui",
67
+ "sourceUrl": "https://kenney.nl/assets/ui-pack",
68
+ "provenanceUrl": "https://kenney.nl/assets/ui-pack",
69
+ "license": "CC0-1.0",
70
+ "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
71
+ "author": "Kenney",
72
+ "tags": [
73
+ "interface",
74
+ "buttons",
75
+ "panels",
76
+ "menu",
77
+ "hud"
78
+ ],
79
+ "formats": [
80
+ "ZIP"
81
+ ],
82
+ "thumbnail": "https://kenney.nl/media/pages/assets/ui-pack/249266460a-1718203984/sample.png",
83
+ "downloadUrl": "https://kenney.nl/media/pages/assets/ui-pack/f651646eab-1718203990/kenney_ui-pack.zip",
84
+ "importMode": "manual",
85
+ "verifiedAt": "2026-10-08"
86
+ },
87
+ {
88
+ "id": "pixel-platformer",
89
+ "provider": "kenney",
90
+ "name": "Pixel Platformer",
91
+ "type": "2d",
92
+ "sourceUrl": "https://kenney.nl/assets/pixel-platformer",
93
+ "provenanceUrl": "https://kenney.nl/assets/pixel-platformer",
94
+ "license": "CC0-1.0",
95
+ "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
96
+ "author": "Kenney",
97
+ "tags": [
98
+ "pixel",
99
+ "platformer",
100
+ "character",
101
+ "enemies",
102
+ "tiles",
103
+ "terrain",
104
+ "jump"
105
+ ],
106
+ "formats": [
107
+ "ZIP"
108
+ ],
109
+ "thumbnail": "https://kenney.nl/media/pages/assets/pixel-platformer/bf585643f0-1696667860/samplea.png",
110
+ "downloadUrl": "https://kenney.nl/media/pages/assets/pixel-platformer/33bb4921eb-1696667883/kenney_pixel-platformer.zip",
111
+ "importMode": "manual",
112
+ "verifiedAt": "2026-10-08"
113
+ },
114
+ {
115
+ "id": "tiny-dungeon",
116
+ "provider": "kenney",
117
+ "name": "Tiny Dungeon",
118
+ "type": "2d",
119
+ "sourceUrl": "https://kenney.nl/assets/tiny-dungeon",
120
+ "provenanceUrl": "https://kenney.nl/assets/tiny-dungeon",
121
+ "license": "CC0-1.0",
122
+ "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
123
+ "author": "Kenney",
124
+ "tags": [
125
+ "dungeon",
126
+ "pixel",
127
+ "characters",
128
+ "enemies",
129
+ "tiles",
130
+ "roguelike",
131
+ "items"
132
+ ],
133
+ "formats": [
134
+ "ZIP"
135
+ ],
136
+ "thumbnail": "https://kenney.nl/media/pages/assets/tiny-dungeon/8c4f705db0-1674742412/sample.png",
137
+ "downloadUrl": "https://kenney.nl/media/pages/assets/tiny-dungeon/f8422efb44-1674742415/kenney_tiny-dungeon.zip",
138
+ "importMode": "manual",
139
+ "verifiedAt": "2026-10-08"
140
+ },
141
+ {
142
+ "id": "tiny-battle",
143
+ "provider": "kenney",
144
+ "name": "Tiny Battle",
145
+ "type": "2d",
146
+ "sourceUrl": "https://kenney.nl/assets/tiny-battle",
147
+ "provenanceUrl": "https://kenney.nl/assets/tiny-battle",
148
+ "license": "CC0-1.0",
149
+ "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
150
+ "author": "Kenney",
151
+ "tags": [
152
+ "battle",
153
+ "strategy",
154
+ "pixel",
155
+ "soldiers",
156
+ "units",
157
+ "buildings",
158
+ "tiles"
159
+ ],
160
+ "formats": [
161
+ "ZIP"
162
+ ],
163
+ "thumbnail": "https://kenney.nl/media/pages/assets/tiny-battle/a33076fa44-1691487572/sample.png",
164
+ "downloadUrl": "https://kenney.nl/media/pages/assets/tiny-battle/c1c25ac1f3-1691487575/kenney_tiny-battle.zip",
165
+ "importMode": "manual",
166
+ "verifiedAt": "2026-10-08"
167
+ },
168
+ {
169
+ "id": "input-prompts",
170
+ "provider": "kenney",
171
+ "name": "Input Prompts",
172
+ "type": "ui",
173
+ "sourceUrl": "https://kenney.nl/assets/input-prompts",
174
+ "provenanceUrl": "https://kenney.nl/assets/input-prompts",
175
+ "license": "CC0-1.0",
176
+ "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
177
+ "author": "Kenney",
178
+ "tags": [
179
+ "keyboard",
180
+ "mouse",
181
+ "controller",
182
+ "input",
183
+ "buttons",
184
+ "icons",
185
+ "prompts"
186
+ ],
187
+ "formats": [
188
+ "ZIP"
189
+ ],
190
+ "thumbnail": "https://kenney.nl/media/pages/assets/input-prompts/ebadd3c6fb-1744026989/preview-playstation-series.png",
191
+ "downloadUrl": "https://kenney.nl/media/pages/assets/input-prompts/8de120163f-1783763952/kenney_input-prompts_1.5.zip",
192
+ "importMode": "manual",
193
+ "verifiedAt": "2026-10-08"
194
+ },
195
+ {
196
+ "id": "roguelike-rpg-pack",
197
+ "provider": "kenney",
198
+ "name": "Roguelike/RPG pack",
199
+ "type": "2d",
200
+ "sourceUrl": "https://kenney.nl/assets/roguelike-rpg-pack",
201
+ "provenanceUrl": "https://kenney.nl/assets/roguelike-rpg-pack",
202
+ "license": "CC0-1.0",
203
+ "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
204
+ "author": "Kenney",
205
+ "tags": [
206
+ "roguelike",
207
+ "rpg",
208
+ "top",
209
+ "down",
210
+ "pixel",
211
+ "tiles",
212
+ "terrain",
213
+ "items",
214
+ "characters"
215
+ ],
216
+ "formats": [
217
+ "ZIP"
218
+ ],
219
+ "thumbnail": "https://kenney.nl/media/pages/assets/roguelike-rpg-pack/6b88b8d663-1677697411/sample1.png",
220
+ "downloadUrl": "https://kenney.nl/media/pages/assets/roguelike-rpg-pack/12c03cd78b-1677697420/kenney_roguelike-rpg-pack.zip",
221
+ "importMode": "manual",
222
+ "verifiedAt": "2026-10-08"
223
+ },
224
+ {
225
+ "id": "modular-characters",
226
+ "provider": "kenney",
227
+ "name": "Modular Characters",
228
+ "type": "2d",
229
+ "sourceUrl": "https://kenney.nl/assets/modular-characters",
230
+ "provenanceUrl": "https://kenney.nl/assets/modular-characters",
231
+ "license": "CC0-1.0",
232
+ "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
233
+ "author": "Kenney",
234
+ "tags": [
235
+ "characters",
236
+ "modular",
237
+ "clothes",
238
+ "player",
239
+ "sprite"
240
+ ],
241
+ "formats": [
242
+ "ZIP"
243
+ ],
244
+ "thumbnail": "https://kenney.nl/media/pages/assets/modular-characters/38079a52c2-1677670334/sample.png",
245
+ "downloadUrl": "https://kenney.nl/media/pages/assets/modular-characters/d84577feef-1677670340/kenney_modular-characters.zip",
246
+ "importMode": "manual",
247
+ "verifiedAt": "2026-10-08"
248
+ },
249
+ {
250
+ "id": "interface-sounds",
251
+ "provider": "kenney",
252
+ "name": "Interface Sounds",
253
+ "type": "audio",
254
+ "sourceUrl": "https://kenney.nl/assets/interface-sounds",
255
+ "provenanceUrl": "https://kenney.nl/assets/interface-sounds",
256
+ "license": "CC0-1.0",
257
+ "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
258
+ "author": "Kenney",
259
+ "tags": [
260
+ "interface",
261
+ "buttons",
262
+ "clicks",
263
+ "menu",
264
+ "navigation",
265
+ "sound",
266
+ "effects",
267
+ "sfx"
268
+ ],
269
+ "formats": [
270
+ "ZIP"
271
+ ],
272
+ "previewAudioUrl": "https://kenney.nl/media/pages/assets/interface-sounds/f84eee9fab-1677589472/preview.ogg",
273
+ "downloadUrl": "https://kenney.nl/media/pages/assets/interface-sounds/fa43c1dd4d-1677589452/kenney_interface-sounds.zip",
274
+ "importMode": "manual",
275
+ "verifiedAt": "2026-10-08"
276
+ },
277
+ {
278
+ "id": "impact-sounds",
279
+ "provider": "kenney",
280
+ "name": "Impact Sounds",
281
+ "type": "audio",
282
+ "sourceUrl": "https://kenney.nl/assets/impact-sounds",
283
+ "provenanceUrl": "https://kenney.nl/assets/impact-sounds",
284
+ "license": "CC0-1.0",
285
+ "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
286
+ "author": "Kenney",
287
+ "tags": [
288
+ "impact",
289
+ "collision",
290
+ "hits",
291
+ "footsteps",
292
+ "wood",
293
+ "metal",
294
+ "sound",
295
+ "effects",
296
+ "sfx"
297
+ ],
298
+ "formats": [
299
+ "ZIP"
300
+ ],
301
+ "previewAudioUrl": "https://kenney.nl/media/pages/assets/impact-sounds/4ef56f2408-1677589755/foley-preview.ogg",
302
+ "downloadUrl": "https://kenney.nl/media/pages/assets/impact-sounds/87b4ddecda-1677589768/kenney_impact-sounds.zip",
303
+ "importMode": "manual",
304
+ "verifiedAt": "2026-10-08"
305
+ },
306
+ {
307
+ "id": "other-center",
308
+ "provider": "opengameart",
309
+ "name": "Other Center",
310
+ "type": "audio",
311
+ "sourceUrl": "https://opengameart.org/content/other-center",
312
+ "provenanceUrl": "https://opengameart.org/content/other-center",
313
+ "license": "CC0-1.0",
314
+ "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
315
+ "author": "zesona",
316
+ "tags": [
317
+ "cheerful",
318
+ "mysterious",
319
+ "loop",
320
+ "background",
321
+ "music",
322
+ "bgm"
323
+ ],
324
+ "formats": [
325
+ "OGG"
326
+ ],
327
+ "thumbnail": "https://opengameart.org/sites/default/files/styles/audio_with_background/public/audio_preview/othercenter_0.ogg.png",
328
+ "previewAudioUrl": "https://opengameart.org/sites/default/files/audio_preview/othercenter_0.ogg.mp3",
329
+ "downloadUrl": "https://opengameart.org/sites/default/files/othercenter.ogg",
330
+ "importMode": "automatic",
331
+ "verifiedAt": "2026-10-08"
332
+ },
333
+ {
334
+ "id": "cate",
335
+ "provider": "opengameart",
336
+ "name": "Cate",
337
+ "type": "audio",
338
+ "sourceUrl": "https://opengameart.org/content/cate",
339
+ "provenanceUrl": "https://opengameart.org/content/cate",
340
+ "license": "CC0-1.0",
341
+ "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
342
+ "author": "Cakeflaps / You're Perfect Studio",
343
+ "tags": [
344
+ "cute",
345
+ "happy",
346
+ "loop",
347
+ "background",
348
+ "music"
349
+ ],
350
+ "formats": [
351
+ "OGG"
352
+ ],
353
+ "thumbnail": "https://opengameart.org/sites/default/files/styles/audio_with_background/public/audio_preview/Cakeflaps%20-%20Cate_0.ogg.png",
354
+ "previewAudioUrl": "https://opengameart.org/sites/default/files/audio_preview/Cakeflaps%20-%20Cate_0.ogg.mp3",
355
+ "downloadUrl": "https://opengameart.org/sites/default/files/Cakeflaps%20-%20Cate.ogg",
356
+ "importMode": "automatic",
357
+ "verifiedAt": "2026-10-08"
358
+ },
359
+ {
360
+ "id": "battle-loop-1",
361
+ "provider": "opengameart",
362
+ "name": "Battle Loop 1",
363
+ "type": "audio",
364
+ "sourceUrl": "https://opengameart.org/content/battle-loop-1",
365
+ "provenanceUrl": "https://opengameart.org/content/battle-loop-1",
366
+ "license": "CC-BY-4.0",
367
+ "licenseUrl": "https://creativecommons.org/licenses/by/4.0/",
368
+ "author": "MNDV.ecb",
369
+ "tags": [
370
+ "battle",
371
+ "combat",
372
+ "loop",
373
+ "music"
374
+ ],
375
+ "formats": [
376
+ "OGG"
377
+ ],
378
+ "thumbnail": "https://opengameart.org/sites/default/files/styles/audio_with_background/public/audio_preview/iom2b.ogg.png",
379
+ "previewAudioUrl": "https://opengameart.org/sites/default/files/audio_preview/iom2b.ogg.mp3",
380
+ "downloadUrl": "https://opengameart.org/sites/default/files/iom2b_0.ogg",
381
+ "attribution": "Battle Loop 1 by MNDV.ecb. https://opengameart.org/content/battle-loop-1 — CC-BY-4.0.",
382
+ "importMode": "automatic",
383
+ "verifiedAt": "2026-10-08"
384
+ },
385
+ {
386
+ "id": "lights",
387
+ "provider": "opengameart",
388
+ "name": "Lights",
389
+ "type": "audio",
390
+ "sourceUrl": "https://opengameart.org/content/lights",
391
+ "provenanceUrl": "https://opengameart.org/content/lights",
392
+ "license": "CC-BY-4.0",
393
+ "licenseUrl": "https://creativecommons.org/licenses/by/4.0/",
394
+ "author": "Tsorthan Grove",
395
+ "tags": [
396
+ "ambient",
397
+ "exploration",
398
+ "loop",
399
+ "music",
400
+ "background"
401
+ ],
402
+ "formats": [
403
+ "FLAC"
404
+ ],
405
+ "thumbnail": "https://opengameart.org/sites/default/files/styles/audio_with_background/public/audio_preview/lights.mp3.png",
406
+ "previewAudioUrl": "https://opengameart.org/sites/default/files/lights.mp3",
407
+ "downloadUrl": "https://opengameart.org/sites/default/files/lights_loop.flac",
408
+ "attribution": "Lights by Tsorthan Grove. https://opengameart.org/content/lights — CC-BY-4.0.",
409
+ "importMode": "automatic",
410
+ "verifiedAt": "2026-10-08"
411
+ },
412
+ {
413
+ "id": "8-bit-sound-effects-library",
414
+ "provider": "opengameart",
415
+ "name": "8-Bit Sound Effects Library",
416
+ "type": "audio",
417
+ "sourceUrl": "https://opengameart.org/content/8-bit-sound-effects-library",
418
+ "provenanceUrl": "https://opengameart.org/content/8-bit-sound-effects-library",
419
+ "license": "CC-BY-3.0",
420
+ "licenseUrl": "https://creativecommons.org/licenses/by/3.0/",
421
+ "author": "Little Robot Sound Factory",
422
+ "tags": [
423
+ "8",
424
+ "bit",
425
+ "sound",
426
+ "effects",
427
+ "sfx",
428
+ "jump",
429
+ "pickup",
430
+ "hit",
431
+ "explosion",
432
+ "menu",
433
+ "arcade"
434
+ ],
435
+ "formats": [
436
+ "ZIP"
437
+ ],
438
+ "thumbnail": "https://opengameart.org/sites/default/files/styles/audio_with_background/public/audio_preview/8-Bit%20Sample.mp3.png",
439
+ "previewAudioUrl": "https://opengameart.org/sites/default/files/8-Bit%20Sample.mp3",
440
+ "downloadUrl": "https://opengameart.org/sites/default/files/8-Bit%20Sound%20Library.zip",
441
+ "attribution": "8-Bit Sound Effects Library by Little Robot Sound Factory. https://opengameart.org/content/8-bit-sound-effects-library — CC-BY-3.0. Creator: https://www.littlerobotsoundfactory.com.",
442
+ "importMode": "automatic",
443
+ "verifiedAt": "2026-10-08"
444
+ },
445
+ {
446
+ "id": "background-elements",
447
+ "provider": "kenney",
448
+ "name": "Background Elements",
449
+ "type": "2d",
450
+ "sourceUrl": "https://kenney.nl/assets/background-elements",
451
+ "provenanceUrl": "https://kenney.nl/assets/background-elements",
452
+ "license": "CC0-1.0",
453
+ "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
454
+ "author": "Kenney",
455
+ "tags": [
456
+ "background",
457
+ "landscape",
458
+ "hills",
459
+ "clouds",
460
+ "trees"
461
+ ],
462
+ "formats": [
463
+ "ZIP",
464
+ "PNG"
465
+ ],
466
+ "thumbnail": "https://kenney.nl/media/pages/assets/background-elements/9432bf6d7b-1677670389/sample.png",
467
+ "downloadUrl": "https://kenney.nl/media/pages/assets/background-elements/b66a1ddec7-1677670395/kenney_background-elements.zip",
468
+ "importMode": "manual",
469
+ "verifiedAt": "2026-10-08"
470
+ },
471
+ {
472
+ "id": "tiny-farm",
473
+ "provider": "kenney",
474
+ "name": "Tiny Farm",
475
+ "type": "2d",
476
+ "sourceUrl": "https://kenney.nl/assets/tiny-farm",
477
+ "provenanceUrl": "https://kenney.nl/assets/tiny-farm",
478
+ "license": "CC0-1.0",
479
+ "licenseUrl": "https://creativecommons.org/publicdomain/zero/1.0/",
480
+ "author": "Kenney",
481
+ "tags": [
482
+ "farm",
483
+ "rpg",
484
+ "roguelike",
485
+ "map",
486
+ "pixel",
487
+ "tiles"
488
+ ],
489
+ "formats": [
490
+ "ZIP",
491
+ "PNG"
492
+ ],
493
+ "thumbnail": "https://kenney.nl/media/pages/assets/tiny-farm/6a39809886-1782913585/sample.png",
494
+ "downloadUrl": "https://kenney.nl/media/pages/assets/tiny-farm/dfded1ae3e-1782913588/kenney_tiny-farm.zip",
495
+ "importMode": "manual",
496
+ "verifiedAt": "2026-10-08"
497
+ },
498
+ {
499
+ "id": "big-buck-bunny-trailer",
500
+ "provider": "blender",
501
+ "name": "Big Buck Bunny · Trailer",
502
+ "type": "video",
503
+ "sourceUrl": "https://peach.blender.org/trailer-page/",
504
+ "provenanceUrl": "https://peach.blender.org/about/",
505
+ "license": "CC-BY-3.0",
506
+ "licenseUrl": "https://creativecommons.org/licenses/by/3.0/",
507
+ "author": "Blender Foundation",
508
+ "attribution": "(c) copyright 2008, Blender Foundation / www.bigbuckbunny.org. Trailer mirrored by W3C for HTML video testing.",
509
+ "tags": [
510
+ "video",
511
+ "forest",
512
+ "trailer",
513
+ "animation",
514
+ "background"
515
+ ],
516
+ "formats": [
517
+ "MP4"
518
+ ],
519
+ "previewVideoUrl": "https://media.w3.org/2010/05/bunny/trailer.mp4",
520
+ "downloadUrl": "https://media.w3.org/2010/05/bunny/trailer.mp4",
521
+ "importMode": "manual",
522
+ "verifiedAt": "2026-10-08"
523
+ }
524
+ ];
525
+ //# sourceMappingURL=asset-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"asset-catalog.js","sourceRoot":"","sources":["../../src/server/asset-catalog.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ import type { FastifyInstance } from 'fastify';
2
+ import type { Asset, AssetMediaPage, Project } from '../shared/types.js';
3
+ import type { HubContext } from './app.js';
4
+ export interface ManagedMedia {
5
+ root: string;
6
+ files: string[];
7
+ }
8
+ export declare function mediaPage(files: string[], base: string, offset?: number, limit?: number): AssetMediaPage;
9
+ export declare function localMediaMetadata(project: Project, kind: 'staged' | 'imported', id: string, files: string[]): Pick<Asset, 'media' | 'mediaTotal' | 'mediaGalleryUrl'>;
10
+ /** Reject every symlink component, including links which currently target inside the root. */
11
+ export declare function checkedMediaPath(root: string, name: string): Promise<string>;
12
+ export declare function parseMediaRange(header: string | undefined, size: number): {
13
+ start: number;
14
+ end: number;
15
+ } | undefined;
16
+ export declare function registerAssetMediaRoutes(app: FastifyInstance, hub: HubContext, providerMedia: (provider: string, id: string, signal: AbortSignal) => Promise<ManagedMedia>): void;