summer-engine 2.8.2 → 3.1.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 (790) hide show
  1. package/.claude-plugin/marketplace.json +27 -7
  2. package/.claude-plugin/plugin.json +99 -83
  3. package/.codex-plugin/plugin.json +112 -82
  4. package/.cursor-plugin/plugin.json +119 -83
  5. package/.factory-plugin/plugin.json +100 -3
  6. package/.mcp.json +6 -1
  7. package/.opencode/INSTALL.md +7 -4
  8. package/.opencode/plugins/summer.js +31 -18
  9. package/AGENTS.md +107 -34
  10. package/CHANGELOG.md +149 -44
  11. package/CLAUDE.md +4 -2
  12. package/GEMINI.md +7 -53
  13. package/NOTICE +31 -0
  14. package/README.md +161 -393
  15. package/assets/api-docs.json.gz +0 -0
  16. package/assets/autopilot/README.md +20 -6
  17. package/assets/autopilot/autopilot.gd +80 -26
  18. package/assets/autopilot/run.sh +132 -7
  19. package/assets/navigation/web-routes.json +719 -0
  20. package/commands/gameskill.md +10 -108
  21. package/commands/summer.md +72 -4
  22. package/dist/bin/summer.js +6 -87
  23. package/dist/cli/banner.d.ts +1 -0
  24. package/dist/cli/banner.js +33 -0
  25. package/dist/{commands → cli/commands}/config.js +1 -1
  26. package/dist/cli/commands/create.d.ts +30 -0
  27. package/dist/cli/commands/create.js +212 -0
  28. package/dist/{commands → cli/commands}/debug.js +2 -2
  29. package/dist/cli/commands/doctor.d.ts +2 -0
  30. package/dist/cli/commands/doctor.js +18 -0
  31. package/dist/cli/commands/events.d.ts +57 -0
  32. package/dist/cli/commands/events.js +158 -0
  33. package/dist/cli/commands/install.d.ts +50 -0
  34. package/dist/cli/commands/install.js +447 -0
  35. package/dist/cli/commands/list.js +72 -0
  36. package/dist/{commands → cli/commands}/login.js +33 -17
  37. package/dist/{commands → cli/commands}/logout.d.ts +1 -0
  38. package/dist/cli/commands/logout.js +19 -0
  39. package/dist/{commands → cli/commands}/memory.d.ts +1 -8
  40. package/dist/{commands → cli/commands}/memory.js +20 -11
  41. package/dist/cli/commands/open.d.ts +45 -0
  42. package/dist/cli/commands/open.js +216 -0
  43. package/dist/{commands → cli/commands}/plan.js +2 -2
  44. package/dist/{commands → cli/commands}/publish.js +1 -1
  45. package/dist/{commands → cli/commands}/releases.js +1 -1
  46. package/dist/cli/commands/run.d.ts +19 -0
  47. package/dist/cli/commands/run.js +255 -0
  48. package/dist/cli/commands/setup.js +158 -0
  49. package/dist/{commands → cli/commands}/skills.js +121 -251
  50. package/dist/{commands → cli/commands}/status.d.ts +1 -0
  51. package/dist/cli/commands/status.js +62 -0
  52. package/dist/cli/commands/tool.d.ts +11 -0
  53. package/dist/cli/commands/tool.js +121 -0
  54. package/dist/cli/index.d.ts +6 -0
  55. package/dist/cli/index.js +89 -0
  56. package/dist/cli/root-action.d.ts +7 -0
  57. package/dist/cli/root-action.js +15 -0
  58. package/dist/{lib → core}/api-client.d.ts +106 -15
  59. package/dist/{lib → core}/api-client.js +267 -75
  60. package/dist/{lib → core}/async-op-lifecycle.d.ts +3 -4
  61. package/dist/{lib → core}/async-op-lifecycle.js +3 -4
  62. package/dist/{lib → core}/auth.d.ts +14 -6
  63. package/dist/{lib → core}/auth.js +56 -40
  64. package/dist/core/capabilities/agent-playbook.d.ts +20 -0
  65. package/dist/core/capabilities/agent-playbook.js +218 -0
  66. package/dist/core/capabilities/api-docs.d.ts +36 -0
  67. package/dist/core/capabilities/api-docs.js +118 -0
  68. package/dist/core/capabilities/asset-import.d.ts +49 -0
  69. package/dist/core/capabilities/asset-import.js +134 -0
  70. package/dist/core/capabilities/camera-view.d.ts +98 -0
  71. package/dist/core/capabilities/camera-view.js +222 -0
  72. package/dist/core/capabilities/capture.d.ts +63 -0
  73. package/dist/core/capabilities/capture.js +67 -0
  74. package/dist/core/capabilities/console-read.d.ts +17 -0
  75. package/dist/core/capabilities/console-read.js +21 -0
  76. package/dist/{lib → core/capabilities}/creator.d.ts +1 -29
  77. package/dist/{lib → core/capabilities}/creator.js +14 -33
  78. package/dist/{lib → core/capabilities}/debug-report.d.ts +1 -1
  79. package/dist/{lib → core/capabilities}/debug-report.js +12 -31
  80. package/dist/{commands → core/capabilities}/doctor.d.ts +7 -2
  81. package/dist/{commands → core/capabilities}/doctor.js +47 -73
  82. package/dist/core/capabilities/engine-fallbacks.d.ts +26 -0
  83. package/dist/core/capabilities/engine-fallbacks.js +36 -0
  84. package/dist/core/capabilities/engine-ops.d.ts +33 -0
  85. package/dist/core/capabilities/engine-ops.js +145 -0
  86. package/dist/core/capabilities/engine-receipt.d.ts +53 -0
  87. package/dist/core/capabilities/engine-receipt.js +134 -0
  88. package/dist/core/capabilities/events.d.ts +200 -0
  89. package/dist/core/capabilities/events.js +383 -0
  90. package/dist/core/capabilities/fabricate-mesh.d.ts +111 -0
  91. package/dist/core/capabilities/fabricate-mesh.js +165 -0
  92. package/dist/core/capabilities/frame-quality.d.ts +71 -0
  93. package/dist/core/capabilities/frame-quality.js +449 -0
  94. package/dist/core/capabilities/game-task-plan.d.ts +66 -0
  95. package/dist/{lib → core/capabilities}/game-task-plan.js +59 -8
  96. package/dist/core/capabilities/hdri-import.d.ts +90 -0
  97. package/dist/core/capabilities/hdri-import.js +250 -0
  98. package/dist/core/capabilities/image-generation.d.ts +24 -0
  99. package/dist/core/capabilities/image-generation.js +22 -0
  100. package/dist/core/capabilities/navigation/open.d.ts +156 -0
  101. package/dist/core/capabilities/navigation/open.js +567 -0
  102. package/dist/core/capabilities/navigation/render-product-map.d.ts +1 -0
  103. package/dist/core/capabilities/navigation/render-product-map.js +84 -0
  104. package/dist/core/capabilities/navigation/targets.d.ts +87 -0
  105. package/dist/core/capabilities/navigation/targets.js +250 -0
  106. package/dist/core/capabilities/play-determinism.d.ts +35 -0
  107. package/dist/core/capabilities/play-determinism.js +86 -0
  108. package/dist/core/capabilities/project-context.d.ts +114 -0
  109. package/dist/core/capabilities/project-context.js +249 -0
  110. package/dist/core/capabilities/runtime-control.d.ts +540 -0
  111. package/dist/core/capabilities/runtime-control.js +1011 -0
  112. package/dist/core/capabilities/scene-kind.d.ts +19 -0
  113. package/dist/core/capabilities/scene-kind.js +137 -0
  114. package/dist/core/capabilities/scene-script.d.ts +38 -0
  115. package/dist/core/capabilities/scene-script.js +45 -0
  116. package/dist/core/capabilities/tool-dispatch.d.ts +42 -0
  117. package/dist/core/capabilities/tool-dispatch.js +1490 -0
  118. package/dist/core/capabilities/ui-control.d.ts +179 -0
  119. package/dist/core/capabilities/ui-control.js +423 -0
  120. package/dist/core/capabilities/variant-types.d.ts +22 -0
  121. package/dist/core/capabilities/variant-types.js +101 -0
  122. package/dist/core/capability-skew.d.ts +205 -0
  123. package/dist/core/capability-skew.js +386 -0
  124. package/dist/{lib → core}/config.d.ts +11 -1
  125. package/dist/{lib → core}/config.js +13 -2
  126. package/dist/core/embeddings.d.ts +78 -0
  127. package/dist/core/embeddings.js +166 -0
  128. package/dist/core/engine-install.d.ts +105 -0
  129. package/dist/core/engine-install.js +190 -0
  130. package/dist/core/engine.d.ts +94 -0
  131. package/dist/{lib → core}/engine.js +74 -28
  132. package/dist/core/feedback/client.d.ts +88 -0
  133. package/dist/core/feedback/client.js +182 -0
  134. package/dist/{lib → core}/format.d.ts +0 -1
  135. package/dist/{lib → core}/format.js +1 -1
  136. package/dist/core/headless/connection.d.ts +86 -0
  137. package/dist/core/headless/connection.js +97 -0
  138. package/dist/core/headless/editor-connection.d.ts +26 -0
  139. package/dist/core/headless/editor-connection.js +81 -0
  140. package/dist/core/headless/mcp-routing.d.ts +38 -0
  141. package/dist/core/headless/mcp-routing.js +83 -0
  142. package/dist/core/headless/registry.d.ts +91 -0
  143. package/dist/core/headless/registry.js +226 -0
  144. package/dist/core/headless/resolve.d.ts +46 -0
  145. package/dist/core/headless/resolve.js +75 -0
  146. package/dist/core/headless/spawn.d.ts +46 -0
  147. package/dist/core/headless/spawn.js +205 -0
  148. package/dist/core/headless/worker-connection.d.ts +96 -0
  149. package/dist/core/headless/worker-connection.js +353 -0
  150. package/dist/core/headless/worker-engine-client.d.ts +58 -0
  151. package/dist/core/headless/worker-engine-client.js +246 -0
  152. package/dist/core/launch-posture.d.ts +170 -0
  153. package/dist/core/launch-posture.js +317 -0
  154. package/dist/core/library-read.d.ts +73 -0
  155. package/dist/core/library-read.js +279 -0
  156. package/dist/core/library-search.d.ts +143 -0
  157. package/dist/core/library-search.js +301 -0
  158. package/dist/{lib → core}/log-filters.js +4 -2
  159. package/dist/{lib → core}/mcp-log.js +2 -17
  160. package/dist/core/package-root.d.ts +9 -0
  161. package/dist/core/package-root.js +11 -0
  162. package/dist/core/redact.d.ts +20 -0
  163. package/dist/core/redact.js +64 -0
  164. package/dist/core/registry-search.d.ts +167 -0
  165. package/dist/core/registry-search.js +358 -0
  166. package/dist/core/skills-registry.d.ts +55 -0
  167. package/dist/core/skills-registry.js +106 -0
  168. package/dist/{lib → core}/store.js +11 -7
  169. package/dist/{lib → core}/summer-compatibility.js +3 -3
  170. package/dist/{lib → core}/telemetry.js +5 -2
  171. package/dist/core/templates.d.ts +98 -0
  172. package/dist/core/templates.js +241 -0
  173. package/dist/core/tool-errors.d.ts +30 -0
  174. package/dist/core/tool-errors.js +40 -0
  175. package/dist/core/trajectory.d.ts +80 -0
  176. package/dist/core/trajectory.js +307 -0
  177. package/dist/core/util/http.d.ts +13 -0
  178. package/dist/core/util/http.js +28 -0
  179. package/dist/core/util/json.d.ts +12 -0
  180. package/dist/core/util/json.js +21 -0
  181. package/dist/core/util/process.d.ts +3 -0
  182. package/dist/core/util/process.js +13 -0
  183. package/dist/core/util/sleep.d.ts +1 -0
  184. package/dist/core/util/sleep.js +3 -0
  185. package/dist/core/version.d.ts +3 -0
  186. package/dist/core/version.js +5 -0
  187. package/dist/installer/agent-config.d.ts +63 -0
  188. package/dist/installer/agent-config.js +540 -0
  189. package/dist/installer/agent-table.d.ts +103 -0
  190. package/dist/installer/agent-table.js +584 -0
  191. package/dist/installer/legacy-skills.d.ts +26 -0
  192. package/dist/installer/legacy-skills.js +53 -0
  193. package/dist/installer/setup.d.ts +76 -0
  194. package/dist/installer/setup.js +148 -0
  195. package/dist/installer/skill-locations.d.ts +36 -0
  196. package/dist/installer/skill-locations.js +91 -0
  197. package/dist/installer/version-check.d.ts +178 -0
  198. package/dist/installer/version-check.js +479 -0
  199. package/dist/{lib/mcp-boot-notice.d.ts → mcp/boot-notice.d.ts} +1 -1
  200. package/dist/{commands/mcp.js → mcp/command.js} +18 -6
  201. package/dist/mcp/server.d.ts +23 -3
  202. package/dist/mcp/server.js +122 -28
  203. package/dist/mcp/tools/asset-tools.js +62 -142
  204. package/dist/mcp/tools/creator-tools.js +5 -23
  205. package/dist/mcp/tools/debug-tools.js +61 -18
  206. package/dist/mcp/tools/event-tools.d.ts +14 -0
  207. package/dist/mcp/tools/event-tools.js +41 -0
  208. package/dist/mcp/tools/fabricate-tools.d.ts +2 -0
  209. package/dist/mcp/tools/fabricate-tools.js +28 -0
  210. package/dist/mcp/tools/feedback-tools.d.ts +77 -0
  211. package/dist/mcp/tools/feedback-tools.js +88 -0
  212. package/dist/mcp/tools/file-tools.js +6 -53
  213. package/dist/mcp/tools/generate-tools.js +37 -63
  214. package/dist/mcp/tools/library-tools.d.ts +11 -0
  215. package/dist/mcp/tools/library-tools.js +42 -0
  216. package/dist/mcp/tools/navigation-tools.d.ts +7 -0
  217. package/dist/mcp/tools/navigation-tools.js +37 -0
  218. package/dist/mcp/tools/perception-tools.d.ts +20 -0
  219. package/dist/mcp/tools/perception-tools.js +146 -0
  220. package/dist/mcp/tools/project-tools.d.ts +14 -0
  221. package/dist/mcp/tools/project-tools.js +72 -281
  222. package/dist/mcp/tools/runtime-tools.d.ts +2 -0
  223. package/dist/mcp/tools/runtime-tools.js +92 -0
  224. package/dist/mcp/tools/scene-tools.d.ts +3 -0
  225. package/dist/mcp/tools/scene-tools.js +68 -119
  226. package/dist/mcp/tools/script-tools.d.ts +3 -0
  227. package/dist/mcp/tools/script-tools.js +118 -0
  228. package/dist/mcp/tools/spatial-tools.d.ts +2 -0
  229. package/dist/mcp/tools/spatial-tools.js +485 -0
  230. package/dist/mcp/tools/text-json.d.ts +8 -0
  231. package/dist/mcp/tools/text-json.js +12 -0
  232. package/dist/mcp/tools/{cloud-tools.d.ts → ui-tools.d.ts} +1 -1
  233. package/dist/mcp/tools/ui-tools.js +82 -0
  234. package/dist/mcp/tools/visual-tools.d.ts +2 -7
  235. package/dist/mcp/tools/visual-tools.js +383 -101
  236. package/dist/mcp/tools/with-engine.d.ts +9 -15
  237. package/dist/mcp/tools/with-engine.js +60 -96
  238. package/dist/project-memory/project-manifest.d.ts +36 -0
  239. package/dist/project-memory/project-manifest.js +50 -0
  240. package/dist/project-memory/project-memory.d.ts +57 -0
  241. package/dist/{lib → project-memory}/project-memory.js +46 -0
  242. package/gemini-extension.json +103 -2
  243. package/hooks/hooks-cursor.json +2 -2
  244. package/hooks/hooks.json +2 -1
  245. package/hooks/pre-commit-doctor.sh +45 -39
  246. package/hooks/run-hook.cmd +30 -23
  247. package/hooks/run-hook.sh +20 -0
  248. package/hooks/session-start.sh +18 -7
  249. package/integrations/README.md +99 -0
  250. package/integrations/amp/README.md +12 -0
  251. package/integrations/amp/manifest-target.json +3 -0
  252. package/integrations/antigravity/README.md +12 -0
  253. package/integrations/antigravity/manifest-target.json +3 -0
  254. package/integrations/claude/README.md +19 -0
  255. package/integrations/claude/manifest-target.json +16 -0
  256. package/integrations/claude-desktop/README.md +12 -0
  257. package/integrations/claude-desktop/manifest-target.json +3 -0
  258. package/integrations/cline/README.md +12 -0
  259. package/integrations/cline/manifest-target.json +3 -0
  260. package/integrations/cline-cli/README.md +12 -0
  261. package/integrations/cline-cli/manifest-target.json +3 -0
  262. package/integrations/codex/README.md +15 -0
  263. package/integrations/codex/manifest-target.json +5 -0
  264. package/integrations/copilot-jetbrains/README.md +12 -0
  265. package/integrations/copilot-jetbrains/manifest-target.json +3 -0
  266. package/integrations/crush/README.md +12 -0
  267. package/integrations/crush/manifest-target.json +3 -0
  268. package/integrations/cursor/README.md +16 -0
  269. package/integrations/cursor/manifest-target.json +5 -0
  270. package/integrations/factory/README.md +26 -0
  271. package/integrations/factory/manifest-target.json +5 -0
  272. package/integrations/gemini/README.md +26 -0
  273. package/integrations/gemini/manifest-target.json +5 -0
  274. package/integrations/github-copilot/README.md +12 -0
  275. package/integrations/github-copilot/manifest-target.json +3 -0
  276. package/integrations/goose/README.md +12 -0
  277. package/integrations/goose/manifest-target.json +3 -0
  278. package/integrations/grok-build/README.md +12 -0
  279. package/integrations/grok-build/manifest-target.json +3 -0
  280. package/integrations/hermes/README.md +12 -0
  281. package/integrations/hermes/manifest-target.json +3 -0
  282. package/integrations/junie/README.md +12 -0
  283. package/integrations/junie/manifest-target.json +3 -0
  284. package/integrations/kilo-code/README.md +12 -0
  285. package/integrations/kilo-code/manifest-target.json +3 -0
  286. package/integrations/kimi-code/README.md +12 -0
  287. package/integrations/kimi-code/manifest-target.json +3 -0
  288. package/integrations/kiro/README.md +12 -0
  289. package/integrations/kiro/manifest-target.json +3 -0
  290. package/integrations/lm-studio/README.md +12 -0
  291. package/integrations/lm-studio/manifest-target.json +3 -0
  292. package/integrations/mistral-vibe/README.md +12 -0
  293. package/integrations/mistral-vibe/manifest-target.json +3 -0
  294. package/integrations/opencode/README.md +12 -0
  295. package/integrations/opencode/manifest-target.json +3 -0
  296. package/integrations/qoder/README.md +12 -0
  297. package/integrations/qoder/manifest-target.json +3 -0
  298. package/integrations/qwen-code/README.md +12 -0
  299. package/integrations/qwen-code/manifest-target.json +3 -0
  300. package/integrations/roo-code/README.md +14 -0
  301. package/integrations/roo-code/manifest-target.json +3 -0
  302. package/integrations/rovo-dev/README.md +12 -0
  303. package/integrations/rovo-dev/manifest-target.json +3 -0
  304. package/integrations/trae/README.md +12 -0
  305. package/integrations/trae/manifest-target.json +3 -0
  306. package/integrations/visual-studio/README.md +12 -0
  307. package/integrations/visual-studio/manifest-target.json +3 -0
  308. package/integrations/vscode-copilot/README.md +12 -0
  309. package/integrations/vscode-copilot/manifest-target.json +3 -0
  310. package/integrations/warp/README.md +12 -0
  311. package/integrations/warp/manifest-target.json +3 -0
  312. package/integrations/windsurf/README.md +12 -0
  313. package/integrations/windsurf/manifest-target.json +3 -0
  314. package/integrations/zed/README.md +12 -0
  315. package/integrations/zed/manifest-target.json +3 -0
  316. package/library/references/collaborative-protocol/resource.yaml +24 -0
  317. package/library/references/gd-style/resource.yaml +24 -0
  318. package/{references → library/references/godot-version}/godot-version.md +6 -6
  319. package/library/references/godot-version/resource.yaml +22 -0
  320. package/library/references/headless-routing/headless-routing.md +46 -0
  321. package/library/references/headless-routing/resource.yaml +24 -0
  322. package/library/references/mcp-fresh-chat-playbook/mcp-fresh-chat-playbook.md +49 -0
  323. package/library/references/mcp-fresh-chat-playbook/resource.yaml +23 -0
  324. package/library/references/mcp-tools-reference/mcp-tools-reference.md +271 -0
  325. package/library/references/mcp-tools-reference/resource.yaml +17 -0
  326. package/library/references/product-map/product-map.md +103 -0
  327. package/library/references/product-map/resource.yaml +33 -0
  328. package/{references → library/references/public-surface-language}/public-surface-language.md +5 -7
  329. package/library/references/public-surface-language/resource.yaml +17 -0
  330. package/library/references/summer-folder/resource.yaml +20 -0
  331. package/{references → library/references/summer-folder}/summer-folder.md +22 -21
  332. package/{skills/rendering-and-lighting → library/skills}/3d-lighting/SKILL.md +15 -11
  333. package/library/skills/3d-lighting/resource.yaml +27 -0
  334. package/library/skills/README.md +242 -0
  335. package/{skills/audio → library/skills}/adaptive-music/SKILL.md +1 -1
  336. package/library/skills/adaptive-music/resource.yaml +28 -0
  337. package/library/skills/agent-playtesting/SKILL.md +148 -0
  338. package/library/skills/agent-playtesting/resource.yaml +52 -0
  339. package/library/skills/ambient-bed/resource.yaml +24 -0
  340. package/{skills/video → library/skills}/animated-loop/SKILL.md +1 -1
  341. package/library/skills/animated-loop/resource.yaml +27 -0
  342. package/{skills/animation → library/skills}/animation-tree/SKILL.md +29 -14
  343. package/library/skills/animation-tree/resource.yaml +33 -0
  344. package/{skills/rendering-and-lighting → library/skills}/art-direction/SKILL.md +3 -3
  345. package/library/skills/art-direction/resource.yaml +29 -0
  346. package/{skills/asset-pipeline → library/skills}/asset-strategy/SKILL.md +44 -44
  347. package/library/skills/asset-strategy/resource.yaml +63 -0
  348. package/{skills/audio → library/skills}/audio-direction/SKILL.md +7 -7
  349. package/library/skills/audio-direction/resource.yaml +32 -0
  350. package/library/skills/auto-fire-targeting/resource.yaml +22 -0
  351. package/{skills/scene-and-project → library/skills}/brainstorm-game/SKILL.md +8 -8
  352. package/library/skills/brainstorm-game/resource.yaml +30 -0
  353. package/{skills/workflow → library/skills}/brainstorming/SKILL.md +2 -22
  354. package/library/skills/brainstorming/resource.yaml +23 -0
  355. package/{skills/workflow → library/skills}/brainstorming/spec-document-reviewer-prompt.md +1 -1
  356. package/{skills/scene-and-project → library/skills}/browse-templates/SKILL.md +18 -18
  357. package/library/skills/browse-templates/resource.yaml +23 -0
  358. package/library/skills/celeste-momentum-platforming/SKILL.md +366 -0
  359. package/library/skills/celeste-momentum-platforming/resource.yaml +33 -0
  360. package/library/skills/character-animation-wiring/SKILL.md +249 -0
  361. package/library/skills/character-animation-wiring/resource.yaml +39 -0
  362. package/{skills/3d-assets → library/skills}/character-model/SKILL.md +25 -25
  363. package/library/skills/character-model/resource.yaml +36 -0
  364. package/{skills/2d-assets → library/skills}/character-portrait/SKILL.md +14 -14
  365. package/library/skills/character-portrait/resource.yaml +30 -0
  366. package/{skills/video → library/skills}/cinematic-cutscene/SKILL.md +2 -2
  367. package/library/skills/cinematic-cutscene/resource.yaml +29 -0
  368. package/{skills/2d-assets → library/skills}/concept-art/SKILL.md +15 -15
  369. package/library/skills/concept-art/resource.yaml +34 -0
  370. package/{skills/2d-assets → library/skills}/create-asset-sheet/SKILL.md +8 -8
  371. package/library/skills/create-asset-sheet/resource.yaml +33 -0
  372. package/{skills/debugging → library/skills}/debug/SKILL.md +3 -3
  373. package/library/skills/debug/resource.yaml +31 -0
  374. package/{skills/workflow → library/skills}/debugging-game-feel/SKILL.md +11 -11
  375. package/library/skills/debugging-game-feel/resource.yaml +25 -0
  376. package/{skills/level-design → library/skills}/design-level/SKILL.md +6 -6
  377. package/library/skills/design-level/resource.yaml +31 -0
  378. package/{skills/gameplay-mechanics → library/skills}/design-mechanic/SKILL.md +3 -3
  379. package/library/skills/design-mechanic/resource.yaml +31 -0
  380. package/{skills/ai-and-npcs → library/skills}/design-npc/SKILL.md +7 -3
  381. package/library/skills/design-npc/resource.yaml +29 -0
  382. package/{skills/workflow → library/skills}/diagnosing-perf-regressions/SKILL.md +10 -10
  383. package/library/skills/diagnosing-perf-regressions/resource.yaml +25 -0
  384. package/{skills/workflow → library/skills}/dispatching-parallel-agents/SKILL.md +8 -8
  385. package/library/skills/dispatching-parallel-agents/resource.yaml +23 -0
  386. package/library/skills/driving-the-editor-ui/SKILL.md +85 -0
  387. package/library/skills/driving-the-editor-ui/resource.yaml +46 -0
  388. package/{skills/3d-assets → library/skills}/environment-kit/SKILL.md +11 -11
  389. package/library/skills/environment-kit/resource.yaml +29 -0
  390. package/{skills/deployment → library/skills}/export-and-ship/SKILL.md +5 -5
  391. package/library/skills/export-and-ship/resource.yaml +32 -0
  392. package/library/skills/fabricating-assets/SKILL.md +195 -0
  393. package/library/skills/fabricating-assets/resource.yaml +52 -0
  394. package/{skills/animation → library/skills}/facial-and-lipsync/SKILL.md +23 -11
  395. package/library/skills/facial-and-lipsync/resource.yaml +36 -0
  396. package/{skills/character-controllers → library/skills}/fps-controller/SKILL.md +8 -4
  397. package/library/skills/fps-controller/resource.yaml +29 -0
  398. package/{skills/visual-effects → library/skills}/game-feel/SKILL.md +7 -7
  399. package/library/skills/game-feel/resource.yaml +27 -0
  400. package/library/skills/gameskill/SKILL.md +64 -0
  401. package/library/skills/gameskill/resource.yaml +22 -0
  402. package/library/skills/gdscript-patterns/resource.yaml +23 -0
  403. package/{skills/animation → library/skills}/generate-motion/SKILL.md +16 -16
  404. package/library/skills/generate-motion/resource.yaml +34 -0
  405. package/library/skills/godogen-visual-proof-game-generation/SKILL.md +223 -0
  406. package/library/skills/godogen-visual-proof-game-generation/resource.yaml +33 -0
  407. package/{skills/workflow → library/skills}/headless-scripting/SKILL.md +14 -7
  408. package/library/skills/headless-scripting/resource.yaml +26 -0
  409. package/library/skills/host-authoritative-state/resource.yaml +28 -0
  410. package/{skills/2d-assets → library/skills}/instantiate-asset-pack/SKILL.md +10 -12
  411. package/library/skills/instantiate-asset-pack/resource.yaml +29 -0
  412. package/{skills/workflow → library/skills}/investigating-bugs/SKILL.md +4 -4
  413. package/{skills/workflow → library/skills}/investigating-bugs/condition-based-waiting.md +8 -8
  414. package/library/skills/investigating-bugs/resource.yaml +24 -0
  415. package/{skills/workflow → library/skills}/investigating-bugs/root-cause-tracing.md +1 -7
  416. package/library/skills/lumera-single-image-scene-reconstruction/SKILL.md +164 -0
  417. package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +35 -0
  418. package/{skills/scene-and-project → library/skills}/make-game/SKILL.md +22 -22
  419. package/library/skills/make-game/resource.yaml +35 -0
  420. package/library/skills/music-track/resource.yaml +28 -0
  421. package/library/skills/navigate-summer/SKILL.md +61 -0
  422. package/library/skills/navigate-summer/resource.yaml +35 -0
  423. package/{skills/scene-and-project → library/skills}/new-project/SKILL.md +10 -10
  424. package/library/skills/new-project/resource.yaml +28 -0
  425. package/{skills/3d-assets → library/skills}/organic-model/SKILL.md +16 -16
  426. package/library/skills/organic-model/resource.yaml +32 -0
  427. package/{skills/multiplayer-and-networking → library/skills}/peer-to-peer-multiplayer/SKILL.md +2 -2
  428. package/library/skills/peer-to-peer-multiplayer/resource.yaml +28 -0
  429. package/{skills/2d-assets → library/skills}/pixel-art/SKILL.md +13 -13
  430. package/library/skills/pixel-art/resource.yaml +31 -0
  431. package/library/skills/play/resource.yaml +26 -0
  432. package/{skills/workflow → library/skills}/playtesting-a-feature/SKILL.md +41 -22
  433. package/library/skills/playtesting-a-feature/resource.yaml +31 -0
  434. package/{skills/animation → library/skills}/procedural-animation/SKILL.md +25 -10
  435. package/library/skills/procedural-animation/resource.yaml +33 -0
  436. package/{skills/3d-assets → library/skills}/prop-model/SKILL.md +13 -13
  437. package/library/skills/prop-model/resource.yaml +33 -0
  438. package/library/skills/psx-retro-rendering/SKILL.md +416 -0
  439. package/library/skills/psx-retro-rendering/resource.yaml +36 -0
  440. package/library/skills/realtime-wet-surfaces/SKILL.md +189 -0
  441. package/library/skills/realtime-wet-surfaces/resource.yaml +31 -0
  442. package/{skills/deployment → library/skills}/remote-deploy/SKILL.md +3 -3
  443. package/library/skills/remote-deploy/resource.yaml +23 -0
  444. package/{skills/animation → library/skills}/retarget/SKILL.md +15 -14
  445. package/library/skills/retarget/resource.yaml +33 -0
  446. package/library/skills/running-in-the-cloud/SKILL.md +103 -0
  447. package/library/skills/running-in-the-cloud/resource.yaml +33 -0
  448. package/{skills/scene-and-project → library/skills}/scene-composition/SKILL.md +8 -0
  449. package/library/skills/scene-composition/resource.yaml +27 -0
  450. package/library/skills/scene-hierarchy-design/SKILL.md +102 -0
  451. package/library/skills/scene-hierarchy-design/resource.yaml +31 -0
  452. package/library/skills/scene-scripting/SKILL.md +764 -0
  453. package/library/skills/scene-scripting/resource.yaml +58 -0
  454. package/{skills/level-design → library/skills}/scene-to-level/SKILL.md +16 -17
  455. package/library/skills/scene-to-level/resource.yaml +33 -0
  456. package/library/skills/setup-multiplayer/resource.yaml +28 -0
  457. package/library/skills/skill-create/SKILL.md +138 -0
  458. package/library/skills/skill-create/resource.yaml +25 -0
  459. package/{skills/workflow → library/skills}/skill-improve/SKILL.md +2 -2
  460. package/library/skills/skill-improve/resource.yaml +25 -0
  461. package/{skills/workflow → library/skills}/skill-test/SKILL.md +4 -4
  462. package/library/skills/skill-test/resource.yaml +26 -0
  463. package/library/skills/skintokens-auto-rigging/SKILL.md +200 -0
  464. package/library/skills/skintokens-auto-rigging/resource.yaml +38 -0
  465. package/{skills/2d-assets → library/skills}/skybox-panorama/SKILL.md +8 -8
  466. package/library/skills/skybox-panorama/resource.yaml +28 -0
  467. package/{skills/audio → library/skills}/sound-effect/SKILL.md +2 -2
  468. package/library/skills/sound-effect/resource.yaml +27 -0
  469. package/library/skills/spatial-placement/SKILL.md +74 -0
  470. package/library/skills/spatial-placement/resource.yaml +42 -0
  471. package/library/skills/spatial-placement/tests/spec.md +65 -0
  472. package/{skills/2d-assets → library/skills}/sprite-sheet/SKILL.md +12 -12
  473. package/library/skills/sprite-sheet/resource.yaml +32 -0
  474. package/{skills/2d-assets → library/skills}/tileable-texture/SKILL.md +9 -9
  475. package/library/skills/tileable-texture/resource.yaml +31 -0
  476. package/{skills/video → library/skills}/trailer-shot/SKILL.md +1 -1
  477. package/library/skills/trailer-shot/resource.yaml +27 -0
  478. package/{skills/performance → library/skills}/tune-performance/SKILL.md +6 -6
  479. package/library/skills/tune-performance/resource.yaml +31 -0
  480. package/library/skills/ui-basics/resource.yaml +25 -0
  481. package/{skills/2d-assets → library/skills}/ui-graphics/SKILL.md +11 -11
  482. package/library/skills/ui-graphics/resource.yaml +29 -0
  483. package/{skills/2d-assets → library/skills}/use-widget-asset/SKILL.md +4 -4
  484. package/library/skills/use-widget-asset/resource.yaml +29 -0
  485. package/{skills/workflow → library/skills}/using-summer/SKILL.md +12 -9
  486. package/library/skills/using-summer/resource.yaml +41 -0
  487. package/{skills/3d-assets → library/skills}/vehicle-model/SKILL.md +18 -18
  488. package/library/skills/vehicle-model/resource.yaml +34 -0
  489. package/{skills/workflow → library/skills}/verification-before-completion/SKILL.md +10 -10
  490. package/library/skills/verification-before-completion/resource.yaml +23 -0
  491. package/library/skills/verifying-scenes/SKILL.md +98 -0
  492. package/library/skills/verifying-scenes/resource.yaml +42 -0
  493. package/{skills/visual-effects/recipes/dissolve → library/skills/vfx-dissolve}/SKILL.md +31 -11
  494. package/library/skills/vfx-dissolve/resource.yaml +33 -0
  495. package/{skills/visual-effects/recipes/fire → library/skills/vfx-fire}/SKILL.md +43 -12
  496. package/library/skills/vfx-fire/_building-blocks/noise-3d-fbm.gdshaderinc +45 -0
  497. package/library/skills/vfx-fire/resource.yaml +35 -0
  498. package/{skills/visual-effects/recipes/hit-spark → library/skills/vfx-hit-spark}/SKILL.md +16 -10
  499. package/library/skills/vfx-hit-spark/_building-blocks/additive-billboard-particles.md +37 -0
  500. package/library/skills/vfx-hit-spark/resource.yaml +34 -0
  501. package/{skills/visual-effects/recipes/lightning → library/skills/vfx-lightning}/SKILL.md +24 -11
  502. package/library/skills/vfx-lightning/_building-blocks/additive-billboard-particles.md +37 -0
  503. package/library/skills/vfx-lightning/resource.yaml +33 -0
  504. package/{skills/visual-effects/recipes/magic-glow → library/skills/vfx-magic-glow}/SKILL.md +31 -11
  505. package/library/skills/vfx-magic-glow/_building-blocks/additive-billboard-particles.md +37 -0
  506. package/library/skills/vfx-magic-glow/resource.yaml +34 -0
  507. package/{skills/visual-effects/recipes/muzzle-flash → library/skills/vfx-muzzle-flash}/SKILL.md +29 -9
  508. package/library/skills/vfx-muzzle-flash/_building-blocks/additive-billboard-particles.md +37 -0
  509. package/library/skills/vfx-muzzle-flash/_building-blocks/trauma-shake-snippet.md +53 -0
  510. package/library/skills/vfx-muzzle-flash/resource.yaml +35 -0
  511. package/{skills/visual-effects/recipes/smoke → library/skills/vfx-smoke}/SKILL.md +35 -9
  512. package/library/skills/vfx-smoke/_building-blocks/noise-3d-fbm.gdshaderinc +45 -0
  513. package/library/skills/vfx-smoke/resource.yaml +32 -0
  514. package/{skills/visual-effects/recipes/water-ripple → library/skills/vfx-water-ripple}/SKILL.md +31 -9
  515. package/library/skills/vfx-water-ripple/_building-blocks/additive-billboard-particles.md +37 -0
  516. package/library/skills/vfx-water-ripple/resource.yaml +31 -0
  517. package/library/skills/voice-line/resource.yaml +27 -0
  518. package/library/skills/world-building-3d/SKILL.md +105 -0
  519. package/library/skills/world-building-3d/references/spatial-tools.md +50 -0
  520. package/library/skills/world-building-3d/resource.yaml +44 -0
  521. package/library/skills/world-building-3d/tests/spec.md +48 -0
  522. package/{skills/workflow → library/skills}/writing-plans/SKILL.md +19 -14
  523. package/library/skills/writing-plans/resource.yaml +23 -0
  524. package/{skills/workflow → library/skills}/writing-skills/SKILL.md +38 -44
  525. package/library/skills/writing-skills/resource.yaml +29 -0
  526. package/{skills/workflow → library/skills}/writing-skills/testing-skills-with-subagents.md +13 -14
  527. package/library/templates/2d-brario-platformer/resource.yaml +21 -0
  528. package/library/templates/2d-dungeon-roguelike/resource.yaml +23 -0
  529. package/library/templates/2d-grid-puzzle/resource.yaml +21 -0
  530. package/library/templates/2d-plants-and-zombies-tower-defense/resource.yaml +21 -0
  531. package/library/templates/2d-platformer/resource.yaml +24 -0
  532. package/library/templates/2d-rpg/resource.yaml +21 -0
  533. package/library/templates/2d-vampire-survivor-roguelike/resource.yaml +21 -0
  534. package/library/templates/3d-basic/resource.yaml +16 -0
  535. package/library/templates/3d-city-kit/resource.yaml +24 -0
  536. package/library/templates/3d-fps-old-school/resource.yaml +21 -0
  537. package/library/templates/3d-fps-simple-animated-npc/resource.yaml +21 -0
  538. package/library/templates/3d-lan-multiplayer-starter/resource.yaml +22 -0
  539. package/library/templates/3d-open-world-explore-tps/resource.yaml +21 -0
  540. package/library/templates/3d-procedural-road-world/resource.yaml +21 -0
  541. package/library/templates/3d-racing-game/resource.yaml +21 -0
  542. package/library/templates/3d-royale-clash-type/resource.yaml +21 -0
  543. package/library/templates/3d-third-person-controller/resource.yaml +21 -0
  544. package/library/templates/3d-voxel-sandbox/resource.yaml +24 -0
  545. package/library/templates/README.md +94 -0
  546. package/library/templates/empty/resource.yaml +16 -0
  547. package/library/tools/add-node/resource.yaml +60 -0
  548. package/library/tools/align-distribute-3d/resource.yaml +87 -0
  549. package/library/tools/api-docs/resource.yaml +57 -0
  550. package/library/tools/batch/resource.yaml +52 -0
  551. package/library/tools/camera-bookmark/resource.yaml +73 -0
  552. package/library/tools/check-job/resource.yaml +45 -0
  553. package/library/tools/clear-console/resource.yaml +40 -0
  554. package/library/tools/connect-signal/resource.yaml +63 -0
  555. package/library/tools/create-debug-report/resource.yaml +67 -0
  556. package/library/tools/create-scene/resource.yaml +59 -0
  557. package/library/tools/creator-config/resource.yaml +63 -0
  558. package/library/tools/creator-publish/resource.yaml +73 -0
  559. package/library/tools/creator-releases/resource.yaml +53 -0
  560. package/library/tools/fabricate-3d/resource.yaml +108 -0
  561. package/library/tools/game-control/resource.yaml +84 -0
  562. package/library/tools/game-input/resource.yaml +159 -0
  563. package/library/tools/game-probe/resource.yaml +90 -0
  564. package/library/tools/generate-3d/resource.yaml +112 -0
  565. package/library/tools/generate-audio/resource.yaml +80 -0
  566. package/library/tools/generate-image/resource.yaml +62 -0
  567. package/library/tools/generate-motion/resource.yaml +66 -0
  568. package/library/tools/generate-video/resource.yaml +66 -0
  569. package/library/tools/get-agent-playbook/resource.yaml +40 -0
  570. package/library/tools/get-asset/resource.yaml +42 -0
  571. package/library/tools/get-asset-download-url/resource.yaml +52 -0
  572. package/library/tools/get-console/resource.yaml +69 -0
  573. package/library/tools/get-debugger-errors/resource.yaml +56 -0
  574. package/library/tools/get-debugger-warnings/resource.yaml +52 -0
  575. package/library/tools/get-diagnostics/resource.yaml +42 -0
  576. package/library/tools/get-project-context/resource.yaml +45 -0
  577. package/library/tools/get-runtime-tree/resource.yaml +62 -0
  578. package/library/tools/get-scene-tree/resource.yaml +52 -0
  579. package/library/tools/get-script-errors/resource.yaml +45 -0
  580. package/library/tools/get-studio-workflow/resource.yaml +43 -0
  581. package/library/tools/import-asset/resource.yaml +73 -0
  582. package/library/tools/import-asset-by-id/resource.yaml +56 -0
  583. package/library/tools/import-from-url/resource.yaml +51 -0
  584. package/library/tools/import-from-url-batch/resource.yaml +60 -0
  585. package/library/tools/import-hdri/resource.yaml +69 -0
  586. package/library/tools/input-map-bind/resource.yaml +52 -0
  587. package/library/tools/inspect-node/resource.yaml +46 -0
  588. package/library/tools/inspect-resource/resource.yaml +45 -0
  589. package/library/tools/inspect-runtime-node/resource.yaml +54 -0
  590. package/library/tools/instantiate-scene/resource.yaml +62 -0
  591. package/library/tools/is-running/resource.yaml +40 -0
  592. package/library/tools/library-feedback/resource.yaml +89 -0
  593. package/library/tools/list-my-assets/resource.yaml +56 -0
  594. package/library/tools/navigation-probe/resource.yaml +85 -0
  595. package/library/tools/open/resource.yaml +80 -0
  596. package/library/tools/open-main-scene/resource.yaml +40 -0
  597. package/library/tools/open-scene/resource.yaml +46 -0
  598. package/library/tools/play/resource.yaml +91 -0
  599. package/library/tools/project-setting/resource.yaml +53 -0
  600. package/library/tools/read-file/resource.yaml +47 -0
  601. package/library/tools/read-library/resource.yaml +67 -0
  602. package/library/tools/recent-events/resource.yaml +71 -0
  603. package/library/tools/remove-node/resource.yaml +51 -0
  604. package/library/tools/replace-node/resource.yaml +57 -0
  605. package/library/tools/replace-text/resource.yaml +61 -0
  606. package/library/tools/run-editor-script/resource.yaml +61 -0
  607. package/library/tools/run-script/resource.yaml +73 -0
  608. package/library/tools/runtime-animate/resource.yaml +140 -0
  609. package/library/tools/runtime-call/resource.yaml +74 -0
  610. package/library/tools/runtime-set/resource.yaml +80 -0
  611. package/library/tools/runtime-spawn/resource.yaml +95 -0
  612. package/library/tools/save-scene/resource.yaml +50 -0
  613. package/library/tools/screenshot/resource.yaml +112 -0
  614. package/library/tools/search-assets/resource.yaml +67 -0
  615. package/library/tools/search-library/resource.yaml +81 -0
  616. package/library/tools/select-node/resource.yaml +48 -0
  617. package/library/tools/set-prop/resource.yaml +64 -0
  618. package/library/tools/set-resource-property/resource.yaml +66 -0
  619. package/library/tools/slice-asset-sheet/resource.yaml +47 -0
  620. package/library/tools/snap-to-surface/resource.yaml +90 -0
  621. package/library/tools/snapshot-diff/resource.yaml +58 -0
  622. package/library/tools/starcast/resource.yaml +120 -0
  623. package/library/tools/start-game-task/resource.yaml +91 -0
  624. package/library/tools/stop/resource.yaml +51 -0
  625. package/library/tools/test-placement/resource.yaml +109 -0
  626. package/library/tools/ui-actions/resource.yaml +77 -0
  627. package/library/tools/ui-activate/resource.yaml +88 -0
  628. package/library/tools/ui-screenshot/resource.yaml +63 -0
  629. package/library/tools/ui-tree/resource.yaml +69 -0
  630. package/library/tools/wait-for-event/resource.yaml +84 -0
  631. package/library/tools/world-snapshot/resource.yaml +60 -0
  632. package/library/tools/write-file/resource.yaml +54 -0
  633. package/package.json +21 -15
  634. package/registry/generated/aliases.json +207 -0
  635. package/registry/generated/counts.json +12 -0
  636. package/registry/generated/gemini-extension.json +122 -0
  637. package/registry/generated/index.json +7709 -0
  638. package/registry/generated/marketplace.claude.json +44 -0
  639. package/registry/generated/mcp.json +13 -0
  640. package/registry/generated/plugin.claude.json +135 -0
  641. package/registry/generated/plugin.codex.json +144 -0
  642. package/registry/generated/plugin.cursor.json +134 -0
  643. package/registry/generated/plugin.factory.json +117 -0
  644. package/registry/generated/skills-index.md +242 -0
  645. package/registry/generated/skills-registry.json +1249 -0
  646. package/registry/generated/templates-registry.json +455 -0
  647. package/registry/schemas/allowed-hosts.json +19 -0
  648. package/registry/schemas/collection.schema.json +68 -0
  649. package/registry/schemas/domains.json +96 -0
  650. package/registry/schemas/example.schema.json +11 -0
  651. package/registry/schemas/reference.schema.json +10 -0
  652. package/registry/schemas/resource.schema.json +154 -0
  653. package/registry/schemas/skill.schema.json +14 -0
  654. package/registry/schemas/template.schema.json +46 -0
  655. package/registry/schemas/tool.schema.json +61 -0
  656. package/_persona/summer/SKILL.md +0 -113
  657. package/dist/bin/postinstall.d.ts +0 -2
  658. package/dist/bin/postinstall.js +0 -3
  659. package/dist/commands/cloud.d.ts +0 -2
  660. package/dist/commands/cloud.js +0 -80
  661. package/dist/commands/create.d.ts +0 -3
  662. package/dist/commands/create.js +0 -171
  663. package/dist/commands/install.d.ts +0 -19
  664. package/dist/commands/install.js +0 -194
  665. package/dist/commands/list.js +0 -67
  666. package/dist/commands/logout.js +0 -13
  667. package/dist/commands/logs.d.ts +0 -2
  668. package/dist/commands/logs.js +0 -19
  669. package/dist/commands/open.d.ts +0 -2
  670. package/dist/commands/open.js +0 -32
  671. package/dist/commands/orchestrator.d.ts +0 -8
  672. package/dist/commands/orchestrator.js +0 -143
  673. package/dist/commands/run.d.ts +0 -2
  674. package/dist/commands/run.js +0 -167
  675. package/dist/commands/setup.js +0 -217
  676. package/dist/commands/status.js +0 -46
  677. package/dist/lib/agent-config.d.ts +0 -39
  678. package/dist/lib/agent-config.js +0 -626
  679. package/dist/lib/banner.d.ts +0 -4
  680. package/dist/lib/banner.js +0 -122
  681. package/dist/lib/cloud/api.d.ts +0 -79
  682. package/dist/lib/cloud/api.js +0 -107
  683. package/dist/lib/cloud/apply.d.ts +0 -32
  684. package/dist/lib/cloud/apply.js +0 -294
  685. package/dist/lib/cloud/checkpoint.d.ts +0 -26
  686. package/dist/lib/cloud/checkpoint.js +0 -142
  687. package/dist/lib/cloud/conflicts.d.ts +0 -55
  688. package/dist/lib/cloud/conflicts.js +0 -131
  689. package/dist/lib/cloud/containment.d.ts +0 -8
  690. package/dist/lib/cloud/containment.js +0 -52
  691. package/dist/lib/cloud/diff.d.ts +0 -39
  692. package/dist/lib/cloud/diff.js +0 -138
  693. package/dist/lib/cloud/engine-bridge.d.ts +0 -34
  694. package/dist/lib/cloud/engine-bridge.js +0 -139
  695. package/dist/lib/cloud/hash-cache.d.ts +0 -23
  696. package/dist/lib/cloud/hash-cache.js +0 -44
  697. package/dist/lib/cloud/hash.d.ts +0 -10
  698. package/dist/lib/cloud/hash.js +0 -111
  699. package/dist/lib/cloud/http.d.ts +0 -17
  700. package/dist/lib/cloud/http.js +0 -47
  701. package/dist/lib/cloud/lock-path.d.ts +0 -1
  702. package/dist/lib/cloud/lock-path.js +0 -5
  703. package/dist/lib/cloud/lock.d.ts +0 -14
  704. package/dist/lib/cloud/lock.js +0 -143
  705. package/dist/lib/cloud/manifest.d.ts +0 -6
  706. package/dist/lib/cloud/manifest.js +0 -41
  707. package/dist/lib/cloud/paths.d.ts +0 -20
  708. package/dist/lib/cloud/paths.js +0 -90
  709. package/dist/lib/cloud/project-godot-merge.d.ts +0 -32
  710. package/dist/lib/cloud/project-godot-merge.js +0 -185
  711. package/dist/lib/cloud/rules.d.ts +0 -39
  712. package/dist/lib/cloud/rules.js +0 -159
  713. package/dist/lib/cloud/sync.d.ts +0 -21
  714. package/dist/lib/cloud/sync.js +0 -518
  715. package/dist/lib/cloud/transfer.d.ts +0 -23
  716. package/dist/lib/cloud/transfer.js +0 -184
  717. package/dist/lib/cloud/types.d.ts +0 -62
  718. package/dist/lib/cloud/types.js +0 -1
  719. package/dist/lib/cloud/validate-path.d.ts +0 -23
  720. package/dist/lib/cloud/validate-path.js +0 -103
  721. package/dist/lib/engine.d.ts +0 -51
  722. package/dist/lib/game-task-plan.d.ts +0 -42
  723. package/dist/lib/project-memory.d.ts +0 -33
  724. package/dist/lib/public-surface-paths.d.ts +0 -13
  725. package/dist/lib/public-surface-paths.js +0 -42
  726. package/dist/lib/remote-templates.d.ts +0 -25
  727. package/dist/lib/remote-templates.js +0 -86
  728. package/dist/lib/skills-registry.d.ts +0 -572
  729. package/dist/lib/skills-registry.js +0 -1061
  730. package/dist/lib/version-check.d.ts +0 -106
  731. package/dist/lib/version-check.js +0 -338
  732. package/dist/mcp/tools/cloud-tools.js +0 -42
  733. package/references/mcp-tools-reference.md +0 -199
  734. package/references/template-registry.md +0 -73
  735. package/skills/README.md +0 -103
  736. package/skills/scene-and-project/summer-cloud/SKILL.md +0 -92
  737. package/skills/workflow/brainstorming/scripts/frame-template.html +0 -214
  738. package/skills/workflow/brainstorming/scripts/helper.js +0 -88
  739. package/skills/workflow/brainstorming/scripts/server.cjs +0 -354
  740. package/skills/workflow/brainstorming/scripts/start-server.sh +0 -148
  741. package/skills/workflow/brainstorming/scripts/stop-server.sh +0 -56
  742. package/skills/workflow/brainstorming/visual-companion.md +0 -287
  743. package/skills/workflow/gameskill/SKILL.md +0 -120
  744. package/skills/workflow/investigating-bugs/CREATION-LOG.md +0 -119
  745. package/skills/workflow/investigating-bugs/condition-based-waiting-example.ts +0 -158
  746. package/skills/workflow/investigating-bugs/find-polluter.sh +0 -63
  747. package/skills/workflow/investigating-bugs/test-academic.md +0 -14
  748. package/skills/workflow/investigating-bugs/test-pressure-1.md +0 -58
  749. package/skills/workflow/investigating-bugs/test-pressure-2.md +0 -68
  750. package/skills/workflow/investigating-bugs/test-pressure-3.md +0 -69
  751. package/skills/workflow/mcpupdate/SKILL.md +0 -134
  752. package/skills/workflow/skill-create/SKILL.md +0 -153
  753. package/skills/workflow/writing-skills/anthropic-best-practices.md +0 -1150
  754. package/skills/workflow/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
  755. package/skills/workflow/writing-skills/graphviz-conventions.dot +0 -172
  756. package/skills/workflow/writing-skills/persuasion-principles.md +0 -187
  757. package/skills/workflow/writing-skills/render-graphs.js +0 -168
  758. /package/dist/{commands → cli/commands}/config.d.ts +0 -0
  759. /package/dist/{commands → cli/commands}/debug.d.ts +0 -0
  760. /package/dist/{commands → cli/commands}/list.d.ts +0 -0
  761. /package/dist/{commands → cli/commands}/login.d.ts +0 -0
  762. /package/dist/{commands → cli/commands}/plan.d.ts +0 -0
  763. /package/dist/{commands → cli/commands}/publish.d.ts +0 -0
  764. /package/dist/{commands → cli/commands}/releases.d.ts +0 -0
  765. /package/dist/{commands → cli/commands}/setup.d.ts +0 -0
  766. /package/dist/{commands → cli/commands}/skills.d.ts +0 -0
  767. /package/dist/{lib → core}/log-filters.d.ts +0 -0
  768. /package/dist/{lib → core}/mcp-log.d.ts +0 -0
  769. /package/dist/{lib → core}/store.d.ts +0 -0
  770. /package/dist/{lib → core}/summer-compatibility.d.ts +0 -0
  771. /package/dist/{lib → core}/telemetry.d.ts +0 -0
  772. /package/dist/{lib/mcp-boot-notice.js → mcp/boot-notice.js} +0 -0
  773. /package/dist/{commands/mcp.d.ts → mcp/command.d.ts} +0 -0
  774. /package/{references → library/references/collaborative-protocol}/collaborative-protocol.md +0 -0
  775. /package/{references → library/references/gd-style}/gd-style.md +0 -0
  776. /package/{skills/audio → library/skills}/ambient-bed/SKILL.md +0 -0
  777. /package/{skills/gameplay-mechanics → library/skills}/auto-fire-targeting/SKILL.md +0 -0
  778. /package/{skills/scripting-patterns → library/skills}/gdscript-patterns/SKILL.md +0 -0
  779. /package/{skills/scripting-patterns → library/skills}/gdscript-patterns/reference.md +0 -0
  780. /package/{skills/multiplayer-and-networking → library/skills}/host-authoritative-state/SKILL.md +0 -0
  781. /package/{skills/workflow → library/skills}/investigating-bugs/defense-in-depth.md +0 -0
  782. /package/{skills/audio → library/skills}/music-track/SKILL.md +0 -0
  783. /package/{skills/scene-and-project → library/skills}/play/SKILL.md +0 -0
  784. /package/{skills/multiplayer-and-networking → library/skills}/setup-multiplayer/SKILL.md +0 -0
  785. /package/{skills/ui-and-ux → library/skills}/ui-basics/SKILL.md +0 -0
  786. /package/{skills/visual-effects → library/skills/vfx-dissolve}/_building-blocks/noise-3d-fbm.gdshaderinc +0 -0
  787. /package/{skills/visual-effects → library/skills/vfx-fire}/_building-blocks/additive-billboard-particles.md +0 -0
  788. /package/{skills/visual-effects → library/skills/vfx-lightning}/_building-blocks/trauma-shake-snippet.md +0 -0
  789. /package/{skills/audio → library/skills}/voice-line/SKILL.md +0 -0
  790. /package/{skills/workflow → library/skills}/writing-plans/plan-document-reviewer-prompt.md +0 -0
@@ -1,112 +1,14 @@
1
- You are capturing what we just learned in this game-development session into Summer Engine's skill library, so the next agent (and every Summer user) gets to start where we ended.
1
+ ---
2
+ description: Capture what this game-development session taught as a reusable skill (project, user or Summer library) so the next agent starts where you ended.
3
+ allowed-tools: Read Write Edit Glob Grep Bash Skill
4
+ ---
2
5
 
3
- This is the meta-skill: the loop that turns ad-hoc fixes into durable, reusable expertise.
6
+ # /gameskill — capture session learnings
4
7
 
5
- ## What "Summer Engine" is, so you're grounded
8
+ Activate the library skill `summer:gameskill` and follow it exactly; this command is only the entry point. If the `Skill` tool cannot find it, read `library/skills/gameskill/SKILL.md` from the Summer package (the plugin root, or `node_modules/summer-engine/`) and follow that file.
6
9
 
7
- Three repos, one ecosystem:
10
+ Ground rules the skill enforces, so you do not drift while it loads:
8
11
 
9
- 1. **`~/development/SummerEngine`** — the Summer Engine desktop source and the
10
- canonical CLI. The C++ engine is maintained against the upstream Godot
11
- Engine codebase; the Summer-owned module lives at `modules/1summer_engine/`.
12
- The Summer CLI lives at `tools/summer-cli/` and is normally invoked with
13
- `npx -y summer-engine@latest`. It installs, signs in, creates, and runs Summer
14
- projects and can install the current Summer skill bundle for supported
15
- agents.
16
- 2. **`~/development/PublicSummerEngine`** — the web app at summerengine.com. Has its own AI skill stores at `src/lib/ai/skills/bundled/` and `public/knowledge/summer/skills/` for the in-browser chat agent. ALSO has its own MCP-style consumers of the engine API (`src/lib/bridge/direct-executor.ts`, `src/lib/ai/tools/run-and-verify.ts`) which call the same engine endpoints the CLI does.
17
- 3. **The active Summer game project** — usually
18
- `~/development/<game-name>` or whatever game we were just working on. The
19
- live compatibility line comes from Summer Engine, not this prompt. Real
20
- working code in this repo is the gold standard for examples.
21
-
22
- The skill system is the value flywheel: every game we ship teaches lessons → the lessons become skills → the next user (or AI) starts smarter. Your job here is to close that loop for what we just did.
23
-
24
- ## Cross-repo change awareness — read this before any non-trivial fix
25
-
26
- When the lesson is "the engine should expose more / behave differently," the change usually crosses repo boundaries. Map the layers before you edit:
27
-
28
- ```
29
- [active game] → calls MCP / web app
30
- ↓
31
- [summer-cli MCP server (TypeScript)] → calls /api/ops + /api/state/* on the engine
32
- ↓
33
- [Summer Engine binary (C++ in SummerEngine repo)] — source of truth for what the API can return
34
-
35
- [PublicSummerEngine web app (TypeScript)] → also calls the same engine endpoints via direct-executor or Redis bridge
36
- ```
37
-
38
- Implications:
39
-
40
- - **A C++ change in `SummerEngine/modules/1summer_engine/` or `SummerEngine/editor/` reaches everyone** (CLI MCP, web app, future tools). Most powerful, also highest blast radius.
41
- - **A TypeScript change in `tools/summer-cli/src/mcp/`** only changes what the CLI exposes. The web app has its own TypeScript layer in `PublicSummerEngine/src/lib/bridge/` — same engine endpoints, different glue. Don't assume your CLI tool change is web-app-aware.
42
- - **A skill update in `tools/summer-cli/skills/`** affects every agent that runs `summer skills install`. The web app's skill store is separate (`PublicSummerEngine/src/lib/ai/skills/bundled/`) and currently uses a different format (template wizards, not Markdown discipline guides). Don't try to mirror skills there blindly.
43
-
44
- When you change an engine endpoint's response shape (add fields, rename fields, change semantics):
45
-
46
- 1. Grep both `tools/summer-cli/src/` and `PublicSummerEngine/src/lib/` for consumers of that endpoint.
47
- 2. Confirm the change is **additive** (new fields, no removed/renamed) so existing consumers still work without modification.
48
- 3. If the change is breaking, update both consumers in the same logical commit set.
49
- 4. Note in TOOLING-TODO.md what's now possible that wasn't before.
50
-
51
- Engine binary changes ship via a rebuild + new release. The user has to pull the new engine for the change to take effect. CLI/web TypeScript changes ship via npm publish or web deploy. State this delivery cost in your report so the user knows what they're getting today vs after a release.
52
-
53
- ## The four skill stores (probe each before doing anything)
54
-
55
- 1. **Canonical source** — `~/development/SummerEngine/tools/summer-cli/skills/`
56
- - Single source of truth. Domains: `ui-and-ux`, `gameplay-mechanics`, `character-controllers`, `scripting-patterns`, `visual-effects`, `debugging`, `rendering-and-lighting`, `scene-and-project`, `level-design`, `audio`, `ai-and-npcs`, `asset-pipeline`, `performance`, `deployment`, `multiplayer-and-networking`, plus `workflow` for process skills.
57
- - The `skills:` array in `.claude-plugin/plugin.json` is the registry. Sibling shared docs live at top-level `references/`; test specs at top-level `tests/`.
58
- 2. **Claude auto-discovery** — `~/.claude/skills/` (currently 7 skills, written here by `summer skills install --as-claude-skill`).
59
- 3. **Web-app stores** — `~/development/PublicSummerEngine/src/lib/ai/skills/` and `public/knowledge/summer/skills/`. Mirror only if the learning applies to the web chat agent too — check what's there before assuming.
60
- 4. **The active game** — read it as ground truth. Working code from the real project beats invented examples.
61
-
62
- ## What to do, in order
63
-
64
- 1. **One short sentence to the user.** "Capturing learnings from this session into the skill library." That's it. No plan dump.
65
-
66
- 2. **Probe the stores.** Glob each path above. Note what exists and what's empty. Print a tight summary (one line per domain with skill count).
67
-
68
- 3. **Recap the session.** Look back over the conversation. Pull out the learnings that are non-obvious AND general — things a future agent or user would benefit from but couldn't derive from reading the codebase. Examples that count:
69
- - A working shader (the actual code) → `visual-effects`
70
- - A GDScript idiom that beat the obvious approach → `scripting-patterns`
71
- - A UI layout that survived the design pass → `ui-and-ux`
72
- - A bug + root cause + fix that wasn't in any docs → `debugging`
73
- - A Godot 4.6 quirk (type inference, `.keys()` weirdness, signal gotchas) → `scripting-patterns`
74
- - A spawning/AI/enemy pattern that worked → `ai-and-npcs` or `gameplay-mechanics`
75
- - A perf fix with measured before/after → `performance`
76
- - An asset-creation workflow that beat alternatives → `asset-pipeline`
77
-
78
- Examples that DON'T count:
79
- - One-off code with no general lesson
80
- - Stuff already documented in `CLAUDE.md` or an existing skill
81
- - Personal preference with no reasoning behind it
82
- - Anything you have to manufacture to fill space
83
-
84
- 4. **Decide placement.** For each learning:
85
- - **Update existing skill** — name the file, quote the section, draft the addition.
86
- - **Create new skill** — pick the domain, name the file, draft the full skill markdown.
87
- Match the format of existing skills in the same domain exactly. Read one if you're unsure.
88
-
89
- 5. **One tight pause for the user.** Five-to-ten lines max: what files you'll touch, what each one captures, what gets left out. Wait for OK or redirect. Don't ask multiple questions.
90
-
91
- 6. **Apply.**
92
- - Write/edit `.md` files under `tools/summer-cli/skills/<domain>/`.
93
- - Register a new skill in `.claude-plugin/plugin.json` (plus `.codex-plugin/`, `.cursor-plugin/`) AND in `src/lib/skills-registry.ts` `SKILL_REGISTRY`. Both are required.
94
- - If the skill belongs in the curated Claude set, also write it to `~/.claude/skills/<name>/` so it's live in the current session — and tell the user to consider adding it to the CLI's default install set.
95
- - If the learning applies to the web chat agent, mirror to `PublicSummerEngine` skill stores too.
96
- - Run `git status` in `~/development/SummerEngine` (and `PublicSummerEngine` if touched) so the diff is visible.
97
-
98
- 7. **Report.** One short message. Files changed, the future-agent payoff in one sentence per skill, and what (if anything) is still uncaptured.
99
-
100
- ## Style rules — non-negotiable
101
-
102
- - **Tight. No slop. No glazing.** Mathias hates filler.
103
- - **Capture the why, not just the what.** "Use X" rots. "Use X because Y breaks under Z (we hit this in PRUT chest reveal, 2026-05)" survives. Always lead skill updates with the reason.
104
- - **Real working code from the active project beats invented examples.** Lift from PRUT or whatever we were in.
105
- - **VFX is code** — shaders + GDScript + node setup. Never image-generation pipelines or Meshy prompts.
106
- - **No em dashes** (—) in any user-facing copy you write into skills. Use periods or restructure the sentence.
107
- - **`[SUMMER]` markers on core Godot engine file edits** — but skill `.md` files don't need them.
108
- - **Verify before claiming.** If a skill says "Summer Engine does X" or "Stripe is configured Y way", verify in the actual code/DB before writing it down.
109
-
110
- ## When there's nothing worth capturing
111
-
112
- It's totally fine to come back with "session was tactical, no durable learnings worth a skill update." Don't manufacture skills from thin air. Better to ship nothing into the skill library than ship noise.
12
+ - Default home is the game project's own skills directory for the agent you are in (`.claude/skills/<slug>/`, `.agents/skills/<slug>/`, `.cursor/rules/`). Only inside a checkout of the summer-engine agent repo do you add to `library/skills/<slug>/` (`resource.yaml` + `SKILL.md`, flat slugs); everything in `registry/generated/` and every plugin manifest is generated from it, so run `npm run generate:registry` after editing and never hand-edit those files. From anywhere else, send general lessons through `summer_library_feedback`.
13
+ - Capture only learnings that are non-obvious AND general. Lead with the why. Real working code from the active project beats invented examples. VFX is shader + GDScript + node setup, never an image-generation pipeline.
14
+ - It is fine to report "session was tactical, no durable learnings." Do not manufacture skills.
@@ -1,4 +1,12 @@
1
- You are the Summer Engine command router. The user invoked `/summer` because they want game-development help inside Summer Engine, not generic software advice.
1
+ ---
2
+ description: Summer Engine game-dev persona and command router. Use for "/summer <anything>" — routes the request to the right Summer skill and starts the game-dev workflow.
3
+ argument-hint: <what you want to build, fix, or ship>
4
+ allowed-tools: Read Glob Grep Edit Write Skill Bash summer_get_project_context summer_get_scene_tree summer_get_diagnostics summer_search_assets summer_create_debug_report
5
+ ---
6
+
7
+ # /summer — Summer Engine persona
8
+
9
+ You are now Summer's in-engine collaborator. The user typed `/summer` because they want game-dev-shaped help inside Summer Engine, not generic software advice. Drop the SaaS-PM voice. You ship games.
2
10
 
3
11
  Arguments:
4
12
 
@@ -6,8 +14,68 @@ Arguments:
6
14
  $ARGUMENTS
7
15
  ```
8
16
 
9
- First, route the request to the closest Summer skill. Use `summer:using-summer` if you need base context before choosing.
17
+ ## Voice
18
+
19
+ You know the engine cold. Scenes are `.tscn`, resources are `.tres`, scripts are GDScript unless the user said C#. The `summer-engine` MCP server drives the running editor. Read every file in the project freely with Read / Glob / Grep — code, scenes, resources, configs; that is how you understand the project. The one rule: do not hand-edit `.tscn` / `.tres` files with Write / Edit while the editor has that scene open — the editor's in-memory state overwrites you on save. Mutate scenes through `summer_*` MCP tools. Scripts, configs, and any closed scene are fine to edit directly.
20
+
21
+ You are opinionated about scope. When the user describes three features in one sentence, ask which one is the playable demo and defer the other two. "Wouldn't it be cool if" gets "yes, after the core loop runs." Get the core loop into the player's hands by the end of the session, then iterate. Polish happens after the game is playable, not before.
22
+
23
+ You speak game-dev shorthand (PCs, NPCs, juice, hit-stop, root motion, blendspace, navmesh, kinematic vs rigid) and assume the user knows it. You are confident about cost: every generation has a number, and you say the number before spending the user's money.
24
+
25
+ ## What to do
26
+
27
+ 1. Detect the request shape (new game / new feature / new asset / bug / discussion / build).
28
+ 2. Confirm Summer Engine context. Call `summer_get_project_context` if available. If it returns nothing, the user is not in a Summer project yet — route to `summer:brainstorm-game`.
29
+ 3. Invoke the right Summer skill with the `Skill` tool. Do not paraphrase the skill; let the specialist run and follow it exactly.
30
+ 4. State the estimated cost (dollars and seconds) before any generation call.
31
+
32
+ ## Routing
33
+
34
+ Skills are flat slugs under the `summer:` namespace (`summer:<slug>`); there are no category paths.
35
+
36
+ | Request shape | First skill |
37
+ |---|---|
38
+ | brainstorm a [genre] game / let's make a [genre] / I'm stuck / what should I work on | `summer:brainstorm-game` |
39
+ | start a new project | `summer:new-project` |
40
+ | make me a game from scratch | `summer:make-game` |
41
+ | add a [character / enemy / NPC / prop / vehicle] | `summer:asset-strategy` |
42
+ | add a sound for [event] | `summer:sound-effect` |
43
+ | add ambient music | `summer:music-track` |
44
+ | make me fire / smoke / lightning / muzzle flash / magic glow / hit spark / dissolve / water ripple | `summer:vfx-fire`, `summer:vfx-smoke`, `summer:vfx-lightning`, `summer:vfx-muzzle-flash`, `summer:vfx-magic-glow`, `summer:vfx-hit-spark`, `summer:vfx-dissolve`, `summer:vfx-water-ripple` |
45
+ | build the FPS controller | `summer:fps-controller` |
46
+ | debug / the game crashes when [X] / broken behavior / cloud or Codex failure / send this to support | `summer:debug` (support-report mode first: call `summer_create_debug_report` when available and tell the user where the Markdown report was written; keep fixing only if they also asked for a fix) |
47
+ | add an animation to [character] | `summer:generate-motion` |
48
+ | wire up a state machine for [character] | `summer:animation-tree` |
49
+ | the game feels mushy / add juice | `summer:game-feel` |
50
+ | ship a trailer | `summer:trailer-shot` |
51
+ | cutscene for [X] | `summer:cinematic-cutscene` |
52
+ | let me play it | `summer:play` |
53
+
54
+ If nothing fits, activate `summer:using-summer` and call `summer_search_library` (then `summer_read_library`) to find the closest skill. Never invent a skill name; verify it exists first.
55
+
56
+ ## Tone rules
57
+
58
+ - No corporate hedging. "I'd recommend" becomes "do this." "It might be worth considering" becomes "next step is."
59
+ - Cost-aware: "Generating with kling. 5s, ~$0.50. OK?" — never "I'll generate a video now."
60
+ - Scope-aware: the cut list goes in `.summer/GameSoul.md`, not in V1.
61
+ - Confirm before destructive moves: replacing nodes, deleting assets, regenerating expensive outputs.
62
+ - Do not redirect users to external docs; solve it in-conversation.
63
+
64
+ ## Engine awareness
65
+
66
+ - If any MCP call returns "Summer Engine is not running": tell the user `summer run` (or open the Summer Engine app and load the project). Meanwhile do non-MCP work: read code, plan, draft GDScript. The MCP server reconnects on the next call.
67
+ - If `.summer/GameSoul.md` exists, read it before any creative work. It is the source of truth for art direction, audio direction, and the cut list.
68
+
69
+ ## Examples
10
70
 
11
- If the arguments start with `debug`, or the user is reporting a crash, error, broken behavior, cloud/Codex failure, or anything they want to send to Summer support, use `summer:debugging/debug`. In that support-report mode, call `summer_create_debug_report` when available and tell the user where the Markdown report was written. Continue fixing the issue only if the user also asked for a fix.
71
+ > User: /summer make a knight
72
+ >
73
+ > Summer: Knight character. asset-strategy first to lock the look (concept image), then character-model for the rigged mesh. ~$0.10 for the concept, ~$0.40 for the 3D pass. OK?
74
+ >
75
+ > [invokes `summer:asset-strategy`]
12
76
 
13
- For all other requests, follow the `/summer` persona routing table from the Summer skill family and start the appropriate game-dev workflow.
77
+ > User: /summer the game crashes when I pick up the sword
78
+ >
79
+ > Summer: Going to debug. Writing the support report first, then the fix.
80
+ >
81
+ > [invokes `summer:debug`]
@@ -1,88 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { createRequire } from "node:module";
3
- import { Command } from "commander";
4
- import { mcpCommand } from "../commands/mcp.js";
5
- import { loginCommand } from "../commands/login.js";
6
- import { logoutCommand } from "../commands/logout.js";
7
- import { statusCommand } from "../commands/status.js";
8
- import { runCommand } from "../commands/run.js";
9
- import { openCommand } from "../commands/open.js";
10
- import { installCommand } from "../commands/install.js";
11
- import { createCommand } from "../commands/create.js";
12
- import { listCommand } from "../commands/list.js";
13
- import { memoryCommand } from "../commands/memory.js";
14
- import { skillsCommand } from "../commands/skills.js";
15
- import { orchestratorCommand } from "../commands/orchestrator.js";
16
- import { setupCommand } from "../commands/setup.js";
17
- import { doctorCommand } from "../commands/doctor.js";
18
- import { planCommand } from "../commands/plan.js";
19
- import { cloudCommand } from "../commands/cloud.js";
20
- import { debugCommand } from "../commands/debug.js";
21
- import { configCommand } from "../commands/config.js";
22
- import { publishCommand } from "../commands/publish.js";
23
- import { releasesCommand } from "../commands/releases.js";
24
- import { logsCommand } from "../commands/logs.js";
25
- import { getBanner } from "../lib/banner.js";
26
- import { c, sym } from "../lib/format.js";
27
- const require = createRequire(import.meta.url);
28
- const { version } = require("../../package.json");
29
- const program = new Command();
30
- program
31
- .name("summer")
32
- .description("CLI and MCP tools for Summer Engine — the AI-native game engine")
33
- .version(version)
34
- .action(() => {
35
- printIntro(version);
36
- });
37
- program.addCommand(installCommand);
38
- program.addCommand(loginCommand);
39
- program.addCommand(logoutCommand);
40
- program.addCommand(statusCommand);
41
- program.addCommand(runCommand);
42
- program.addCommand(openCommand);
43
- program.addCommand(createCommand);
44
- program.addCommand(listCommand);
45
- program.addCommand(memoryCommand);
46
- program.addCommand(skillsCommand);
47
- program.addCommand(mcpCommand);
48
- program.addCommand(setupCommand);
49
- program.addCommand(doctorCommand);
50
- program.addCommand(debugCommand);
51
- program.addCommand(planCommand);
52
- program.addCommand(orchestratorCommand);
53
- program.addCommand(cloudCommand);
54
- program.addCommand(configCommand);
55
- program.addCommand(publishCommand);
56
- program.addCommand(releasesCommand);
57
- program.addCommand(logsCommand);
58
- program.parseAsync().catch((err) => {
59
- console.error(err instanceof Error ? err.message : String(err));
60
- process.exit(1);
61
- });
62
- function printIntro(version) {
63
- console.log("");
64
- console.log(getBanner());
65
- console.log("");
66
- console.log(` ${sym.arrow()} ${c.bold("Summer Engine")} ${c.dim("v" + version)} ${c.dim("·")} AI-native game engine`);
67
- console.log("");
68
- console.log(` ${c.bold("Setup wizard")}`);
69
- console.log(` Open Claude Code, Cursor, Codex, Copilot, Devin Desktop (formerly Windsurf), or another supported agent and paste:`);
70
- console.log(` ${c.brand("\"Install Summer Engine and let's make a game.\"")}`);
71
- console.log("");
72
- console.log(` ${c.bold("Manual commands")}`);
73
- console.log(` ${c.dim("$")} npx -y summer-engine@latest setup claude-code --yes`);
74
- console.log(` ${c.dim("$")} npx -y summer-engine@latest create 3d-basic my-game`);
75
- console.log(` ${c.dim("$")} npx -y summer-engine@latest plan make a small arena shooter`);
76
- console.log(` ${c.dim("$")} npx -y summer-engine@latest debug "player crashes on pickup"`);
77
- console.log(` ${c.dim("$")} npx -y summer-engine@latest memory`);
78
- console.log(` ${c.dim("$")} npx -y summer-engine@latest doctor`);
79
- console.log("");
80
- console.log(` ${c.bold("Slash commands")} ${c.dim("(in your AI agent)")}`);
81
- console.log(` ${c.brand("/summer debug")} ${c.dim("Create a support-ready debug report")}`);
82
- console.log(` ${c.brand("/debug")} ${c.dim("Triage and fix a bug end-to-end")}`);
83
- console.log(` ${c.brand("/play")} ${c.dim("Run the game and report state")}`);
84
- console.log("");
85
- console.log(` ${c.dim("Docs:")} https://summerengine.com/docs`);
86
- console.log(` ${c.dim("Source:")} https://github.com/SummerEngine/summer-engine-agent`);
87
- console.log("");
88
- }
2
+ // Composition root: the only module allowed to import both the cli and mcp
3
+ // layers. All command wiring lives in src/cli; the MCP server and its
4
+ // `summer mcp` command live in src/mcp.
5
+ import { runCli } from "../cli/index.js";
6
+ import { mcpCommand } from "../mcp/command.js";
7
+ runCli(mcpCommand);
@@ -0,0 +1 @@
1
+ export declare function getBanner(version?: string): string;
@@ -0,0 +1,33 @@
1
+ export function getBanner(version) {
2
+ const reset = "\x1b[0m";
3
+ // Vertical gradient for SUMMER ENGINE
4
+ const colors = [
5
+ "\x1b[38;2;255;223;137m", // row 1
6
+ "\x1b[38;2;255;203;107m", // row 2
7
+ "\x1b[38;2;255;183;78m", // row 3
8
+ "\x1b[38;2;255;163;49m", // row 4
9
+ "\x1b[38;2;255;143;23m", // row 5
10
+ "\x1b[38;2;255;123;0m", // row 6
11
+ "\x1b[38;2;242;104;0m", // row 7
12
+ "\x1b[38;2;229;85;0m", // row 8
13
+ "\x1b[38;2;215;67;0m", // row 9
14
+ "\x1b[38;2;201;50;0m", // row 10
15
+ "\x1b[38;2;187;34;0m", // row 11
16
+ "\x1b[38;2;173;20;0m", // row 12
17
+ ];
18
+ const headerLines = [
19
+ " ██████╗ ██╗ ██╗███╗ ███╗███╗ ███╗███████╗██████╗ ",
20
+ " ██╔════╝ ██║ ██║████╗ ████║████╗ ████║██╔════╝██╔══██╗",
21
+ " ███████╗ ██║ ██║██╔████╔██║██╔████╔██║█████╗ ██████╔╝",
22
+ " ╚════██║ ██║ ██║██║╚██╔╝██║██║╚██╔╝██║██╔══╝ ██╔══██╗",
23
+ " ███████║ ╚██████╔╝██║ ╚═╝ ██║██║ ╚═╝ ██║███████╗██║ ██║",
24
+ " ╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝",
25
+ " ███████╗███╗ ██╗ ██████╗ ██╗███╗ ██╗███████╗ ",
26
+ " ██╔════╝████╗ ██║██╔════╝ ██║████╗ ██║██╔════╝ ",
27
+ " █████╗ ██╔██╗ ██║██║ ███╗██║██╔██╗ ██║█████╗ ",
28
+ " ██╔══╝ ██║╚██╗██║██║ ██║██║██║╚██╗██║██╔══╝ ",
29
+ " ███████╗██║ ╚████║╚██████╔╝██║██║ ╚████║███████╗ ",
30
+ " ╚══════╝╚═╝ ╚═══╝ ╚═════╝ ╚═╝╚═╝ ╚═══╝╚══════╝ ",
31
+ ];
32
+ return headerLines.map((line, i) => `${colors[i]}${line}${reset}`).join("\n");
33
+ }
@@ -1,5 +1,5 @@
1
1
  import { Command } from "commander";
2
- import { CONFIG_KEYS, getConfigValue, isConfigKey, readSummerConfig, setConfigValue, unsetConfigValue, } from "../lib/config.js";
2
+ import { CONFIG_KEYS, getConfigValue, isConfigKey, readSummerConfig, setConfigValue, unsetConfigValue, } from "../../core/config.js";
3
3
  function requireKey(value) {
4
4
  if (isConfigKey(value))
5
5
  return value;
@@ -0,0 +1,30 @@
1
+ import { Command } from "commander";
2
+ /**
3
+ * Built-in templates are generated in-process — no download, no pin. Their
4
+ * library manifests (`library/templates/<slug>/resource.yaml`) declare
5
+ * `builtin: true`; this map supplies the generator for each such slug.
6
+ */
7
+ type BuiltinGenerator = (dir: string, projectName: string) => void;
8
+ export declare const BUILTIN_GENERATORS: Readonly<Record<string, BuiltinGenerator>>;
9
+ /**
10
+ * Copy the autopilot verification scaffold into a fresh project.
11
+ *
12
+ * Every project gets a working example of how to prove its own gameplay: a probe
13
+ * that drives the player with real input, saves rendered frames, asserts, and
14
+ * exits. Without it every agent reinvents verification from scratch, and most
15
+ * settle for asking the user to play the game instead.
16
+ *
17
+ * Never overwrites — an existing tests/autopilot/ is the user's, not ours.
18
+ */
19
+ export declare function scaffoldAutopilot(projectDir: string): boolean;
20
+ /** What the scaffold's first run actually does — the "Next steps" line must not
21
+ * promise a verify when the first thing run.sh does is the one-off asset import. */
22
+ export declare const AUTOPILOT_NEXT_STEP_HINT = "first run imports assets once, then verifies the game boots; no editor needed";
23
+ export declare const createCommand: Command;
24
+ /**
25
+ * project.godot uses C-style double-quoted strings; a project name containing
26
+ * `"` or `\` must be escaped or the file does not parse.
27
+ */
28
+ export declare function escapeGodotString(value: string): string;
29
+ export declare function renderProjectSettings(name: string, mainScene: string): string;
30
+ export {};
@@ -0,0 +1,212 @@
1
+ import { Command } from "commander";
2
+ import { cpSync, existsSync, mkdirSync, writeFileSync } from "fs";
3
+ import { join, resolve } from "path";
4
+ import { checkEngineHealth, getApiPort } from "../../core/engine.js";
5
+ import { PACKAGE_ROOT } from "../../core/package-root.js";
6
+ import { SUMMER_ENGINE_COMPATIBILITY } from "../../core/summer-compatibility.js";
7
+ import { getTemplateRegistry, materializePinnedTemplate, resolveTemplate, TemplateDigestMismatchError, } from "../../core/templates.js";
8
+ import { PROJECT_MANIFEST_RELPATH, writeProjectManifest } from "../../project-memory/project-manifest.js";
9
+ import { TOOLKIT_VERSION as toolkitVersion } from "../../core/version.js";
10
+ /** Summer Engine's version when it is reachable right now, else undefined —
11
+ * the manifest then omits engine_version rather than guessing. */
12
+ async function detectEngineVersion() {
13
+ try {
14
+ return (await checkEngineHealth(await getApiPort()))?.version;
15
+ }
16
+ catch {
17
+ return undefined;
18
+ }
19
+ }
20
+ export const BUILTIN_GENERATORS = {
21
+ empty: (dir, name) => {
22
+ writeFileSync(join(dir, "project.godot"), renderProjectSettings(name, "res://main.tscn"));
23
+ writeFileSync(join(dir, "main.tscn"), emptyScene());
24
+ },
25
+ "3d-basic": (dir, name) => {
26
+ writeFileSync(join(dir, "project.godot"), renderProjectSettings(name, "res://main.tscn"));
27
+ writeFileSync(join(dir, "main.tscn"), basicScene3D());
28
+ },
29
+ };
30
+ /**
31
+ * Copy the autopilot verification scaffold into a fresh project.
32
+ *
33
+ * Every project gets a working example of how to prove its own gameplay: a probe
34
+ * that drives the player with real input, saves rendered frames, asserts, and
35
+ * exits. Without it every agent reinvents verification from scratch, and most
36
+ * settle for asking the user to play the game instead.
37
+ *
38
+ * Never overwrites — an existing tests/autopilot/ is the user's, not ours.
39
+ */
40
+ export function scaffoldAutopilot(projectDir) {
41
+ const source = join(PACKAGE_ROOT, "assets", "autopilot");
42
+ const target = join(projectDir, "tests", "autopilot");
43
+ if (!existsSync(source) || existsSync(target))
44
+ return false;
45
+ cpSync(source, target, { recursive: true });
46
+ return true;
47
+ }
48
+ /** What the scaffold's first run actually does — the "Next steps" line must not
49
+ * promise a verify when the first thing run.sh does is the one-off asset import. */
50
+ export const AUTOPILOT_NEXT_STEP_HINT = "first run imports assets once, then verifies the game boots; no editor needed";
51
+ function printNextSteps(fullPath, dirName, scaffolded) {
52
+ console.log(`\nProject created at ${fullPath}`);
53
+ console.log(`Recorded template pin in ${join(dirName, PROJECT_MANIFEST_RELPATH)}`);
54
+ console.log("\nNext steps:");
55
+ console.log(` summer run ${dirName}`);
56
+ if (scaffolded) {
57
+ const script = join(dirName, "tests", "autopilot", "run.sh");
58
+ const hint = process.platform === "win32" ? `bash ${script} (Git Bash or WSL;` : `bash ${script} (`;
59
+ console.log(` ${hint}${AUTOPILOT_NEXT_STEP_HINT})`);
60
+ }
61
+ console.log(" Ask your agent to use the brainstorm-game skill to create .summer/GameSoul.md");
62
+ }
63
+ function describeTemplates(entries, out) {
64
+ const builtins = entries.filter((e) => e.builtin);
65
+ const pinned = entries.filter((e) => !e.builtin && e.status !== "deprecated");
66
+ const pad = Math.max(16, ...entries.map((e) => e.slug.length));
67
+ out("Built-in templates (generated locally, no download):");
68
+ for (const t of builtins)
69
+ out(` ${t.slug.padEnd(pad)} ${t.summary}`);
70
+ out("\nPinned templates (exact commit, verified tree digest):");
71
+ for (const t of pinned) {
72
+ const flag = t.status === "preview" ? " [preview]" : "";
73
+ out(` ${t.slug.padEnd(pad)} ${t.summary}${flag}`);
74
+ }
75
+ out('\nRun "summer list templates" for details.');
76
+ }
77
+ export const createCommand = new Command("create")
78
+ .description("Create a new Summer Engine project from a library template. Built-in templates generate offline; pinned templates fetch exactly the reviewed commit and verify its tree digest.")
79
+ .argument("<template>", 'Template slug (or legacy alias / unambiguous prefix). See "summer list templates".')
80
+ .argument("[name]", "Project directory name (defaults to template slug)")
81
+ .option("--keep-git", "Keep the fetched .git directory, detached at the pinned commit (default: remove it so you start fresh)")
82
+ .action(async (templateName, projectName, options) => {
83
+ const entries = getTemplateRegistry();
84
+ const resolution = resolveTemplate(templateName, entries);
85
+ if (resolution.kind === "none") {
86
+ console.error(`No template matches '${templateName}'.\n`);
87
+ describeTemplates(entries, (l) => console.error(l));
88
+ process.exit(1);
89
+ }
90
+ if (resolution.kind === "ambiguous") {
91
+ console.error(`'${templateName}' is ambiguous. Did you mean one of:`);
92
+ for (const c of resolution.candidates)
93
+ console.error(` ${c.slug}`);
94
+ process.exit(1);
95
+ }
96
+ const entry = resolution.entry;
97
+ if (resolution.via === "alias" || resolution.via === "prefix") {
98
+ console.log(`Resolved '${templateName}' -> ${entry.slug}`);
99
+ }
100
+ const dirName = projectName || entry.slug;
101
+ const fullPath = resolve(dirName);
102
+ if (existsSync(fullPath)) {
103
+ console.error(`Directory already exists: ${fullPath}`);
104
+ process.exit(1);
105
+ }
106
+ if (entry.status !== "stable") {
107
+ console.error(`Warning: ${entry.slug} is marked '${entry.status}'.`);
108
+ for (const note of entry.do_not_use_when)
109
+ console.error(` ${note}`);
110
+ }
111
+ if (entry.builtin) {
112
+ const generate = BUILTIN_GENERATORS[entry.slug];
113
+ if (!generate) {
114
+ console.error(`${entry.id} is declared builtin but this CLI has no generator for it. Update the CLI.`);
115
+ process.exit(1);
116
+ }
117
+ console.log(`Creating project from built-in '${entry.slug}' template...`);
118
+ mkdirSync(fullPath, { recursive: true });
119
+ generate(fullPath, dirName);
120
+ const scaffolded = scaffoldAutopilot(fullPath);
121
+ writeProjectManifest(fullPath, {
122
+ template: { id: entry.id, version: entry.version, builtin: true },
123
+ toolkit_version: toolkitVersion,
124
+ engine_version: await detectEngineVersion(),
125
+ });
126
+ printNextSteps(fullPath, dirName, scaffolded);
127
+ return;
128
+ }
129
+ const pin = entry.pin;
130
+ let materialized;
131
+ try {
132
+ materialized = materializePinnedTemplate(entry, {
133
+ targetDir: fullPath,
134
+ keepGit: options.keepGit,
135
+ log: (line) => console.log(line),
136
+ });
137
+ }
138
+ catch (err) {
139
+ console.error(err instanceof TemplateDigestMismatchError ? err.message : err.message);
140
+ process.exit(1);
141
+ }
142
+ const scaffolded = scaffoldAutopilot(fullPath);
143
+ writeProjectManifest(fullPath, {
144
+ template: {
145
+ id: entry.id,
146
+ version: entry.version,
147
+ repo: pin.repo,
148
+ commit: materialized.commit,
149
+ tree_digest: materialized.tree_digest,
150
+ },
151
+ toolkit_version: toolkitVersion,
152
+ engine_version: await detectEngineVersion(),
153
+ });
154
+ console.log(`Source: ${pin.repo} @ ${materialized.commit.slice(0, 12)} (tree digest verified)`);
155
+ printNextSteps(fullPath, dirName, scaffolded);
156
+ });
157
+ /**
158
+ * project.godot uses C-style double-quoted strings; a project name containing
159
+ * `"` or `\` must be escaped or the file does not parse.
160
+ */
161
+ export function escapeGodotString(value) {
162
+ return value.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\r?\n/g, "\\n");
163
+ }
164
+ export function renderProjectSettings(name, mainScene) {
165
+ return `; Summer Engine Project
166
+ ; Generated by summer-engine CLI
167
+ ; Technical base ${SUMMER_ENGINE_COMPATIBILITY.currentTechnicalBaseVersion}; Summer follows upstream continuously
168
+
169
+ [application]
170
+
171
+ config/name="${escapeGodotString(name)}"
172
+ run/main_scene="${escapeGodotString(mainScene)}"
173
+ config/features=PackedStringArray("${SUMMER_ENGINE_COMPATIBILITY.projectFeatureTag}")
174
+
175
+ [rendering]
176
+
177
+ renderer/rendering_method="forward_plus"
178
+ `;
179
+ }
180
+ function emptyScene() {
181
+ return `[gd_scene format=3]
182
+
183
+ [node name="World" type="Node3D"]
184
+ `;
185
+ }
186
+ function basicScene3D() {
187
+ return `[gd_scene load_steps=4 format=3]
188
+
189
+ [sub_resource type="BoxMesh" id="BoxMesh_floor"]
190
+ size = Vector3(20, 0.2, 20)
191
+
192
+ [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_floor"]
193
+ albedo_color = Color(0.4, 0.45, 0.4, 1)
194
+
195
+ [sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_sky"]
196
+
197
+ [node name="World" type="Node3D"]
198
+
199
+ [node name="Camera3D" type="Camera3D" parent="."]
200
+ transform = Transform3D(1, 0, 0, 0, 0.939693, 0.34202, 0, -0.34202, 0.939693, 0, 5, 10)
201
+
202
+ [node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
203
+ transform = Transform3D(1, 0, 0, 0, 0.866025, 0.5, 0, -0.5, 0.866025, 0, 8, 0)
204
+ shadow_enabled = true
205
+
206
+ [node name="Floor" type="MeshInstance3D" parent="."]
207
+ mesh = SubResource("BoxMesh_floor")
208
+ surface_material_override/0 = SubResource("StandardMaterial3D_floor")
209
+
210
+ [node name="WorldEnvironment" type="WorldEnvironment" parent="."]
211
+ `;
212
+ }
@@ -1,6 +1,6 @@
1
1
  import { Command } from "commander";
2
- import { createDebugReportArtifact, redactDebugReport } from "../lib/debug-report.js";
3
- import { c, sym, tildeify } from "../lib/format.js";
2
+ import { createDebugReportArtifact, redactDebugReport } from "../../core/capabilities/debug-report.js";
3
+ import { c, sym, tildeify } from "../../core/format.js";
4
4
  function parsePositiveInt(value, fallback) {
5
5
  if (!value)
6
6
  return fallback;
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const doctorCommand: Command;
@@ -0,0 +1,18 @@
1
+ import { Command } from "commander";
2
+ import { runDoctor } from "../../core/capabilities/doctor.js";
3
+ import { brandLine } from "../../core/format.js";
4
+ import { TOOLKIT_VERSION as version } from "../../core/version.js";
5
+ export const doctorCommand = new Command("doctor")
6
+ .description("Diagnose Node, login, engine, project memory, local API, and MCP registration")
7
+ .option("--json", "Print diagnostics as JSON")
8
+ .action(async (opts) => {
9
+ if (!opts.json) {
10
+ console.log("");
11
+ console.log(brandLine(version));
12
+ console.log("");
13
+ }
14
+ const result = await runDoctor({ json: Boolean(opts.json) });
15
+ if (!result.ok) {
16
+ process.exit(1);
17
+ }
18
+ });