summer-engine 3.8.0 → 4.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 (527) hide show
  1. package/.claude-plugin/marketplace.json +2 -13
  2. package/.claude-plugin/plugin.json +24 -22
  3. package/.codex-plugin/plugin.json +18 -22
  4. package/.cursor-plugin/plugin.json +8 -14
  5. package/.factory-plugin/plugin.json +6 -13
  6. package/AGENTS.md +19 -12
  7. package/CHANGELOG.md +133 -0
  8. package/GEMINI.md +3 -3
  9. package/README.md +118 -37
  10. package/assets/icon.png +0 -0
  11. package/commands/start.md +71 -0
  12. package/commands/summer.md +3 -2
  13. package/dist/cli/banner.js +3 -0
  14. package/dist/cli/commands/config.js +3 -2
  15. package/dist/cli/commands/create.js +12 -3
  16. package/dist/cli/commands/list.d.ts +5 -0
  17. package/dist/cli/commands/list.js +30 -13
  18. package/dist/cli/commands/login.d.ts +27 -0
  19. package/dist/cli/commands/login.js +58 -12
  20. package/dist/cli/commands/memory.js +6 -2
  21. package/dist/cli/commands/ops.d.ts +64 -0
  22. package/dist/cli/commands/ops.js +329 -0
  23. package/dist/cli/commands/setup.d.ts +4 -0
  24. package/dist/cli/commands/setup.js +254 -26
  25. package/dist/cli/commands/skills.js +28 -11
  26. package/dist/cli/commands/status.d.ts +26 -0
  27. package/dist/cli/commands/status.js +36 -21
  28. package/dist/cli/index.js +7 -0
  29. package/dist/core/agent-host.d.ts +65 -0
  30. package/dist/core/agent-host.js +193 -0
  31. package/dist/core/capabilities/agent-playbook.d.ts +3 -0
  32. package/dist/core/capabilities/agent-playbook.js +54 -2
  33. package/dist/core/capabilities/apps.d.ts +33 -10
  34. package/dist/core/capabilities/apps.js +25 -12
  35. package/dist/core/capabilities/audit/args.d.ts +6 -6
  36. package/dist/core/capabilities/doctor.d.ts +3 -0
  37. package/dist/core/capabilities/doctor.js +20 -15
  38. package/dist/core/capabilities/fabricate-mesh.d.ts +4 -4
  39. package/dist/core/capabilities/game-task-plan.d.ts +12 -6
  40. package/dist/core/capabilities/game-task-plan.js +80 -5
  41. package/dist/core/capabilities/hdri-import.d.ts +2 -2
  42. package/dist/core/capabilities/motion-generation.d.ts +2 -2
  43. package/dist/core/capabilities/motion-generation.js +2 -2
  44. package/dist/core/capabilities/navigation/open.d.ts +6 -2
  45. package/dist/core/capabilities/navigation/open.js +3 -0
  46. package/dist/core/capabilities/placement.d.ts +23 -23
  47. package/dist/core/capabilities/publish-build.js +2 -0
  48. package/dist/core/capabilities/runtime-control.d.ts +42 -42
  49. package/dist/core/capabilities/scene-script-target.d.ts +17 -0
  50. package/dist/core/capabilities/scene-script-target.js +70 -0
  51. package/dist/core/capabilities/seeing/args.d.ts +16 -16
  52. package/dist/core/capabilities/sfx-choices.d.ts +4 -0
  53. package/dist/core/capabilities/sfx-choices.js +13 -6
  54. package/dist/core/capabilities/tool-dispatch.d.ts +12 -3
  55. package/dist/core/capabilities/tool-dispatch.js +81 -46
  56. package/dist/core/capabilities/ui-control.d.ts +2 -2
  57. package/dist/core/capabilities/world-snapshot.d.ts +4 -4
  58. package/dist/core/embeddings.d.ts +2 -0
  59. package/dist/core/embeddings.js +1 -1
  60. package/dist/core/error-codes.d.ts +62 -0
  61. package/dist/core/error-codes.js +97 -0
  62. package/dist/core/format.d.ts +2 -0
  63. package/dist/core/format.js +2 -1
  64. package/dist/core/hosted-mcp.d.ts +22 -0
  65. package/dist/core/hosted-mcp.js +56 -1
  66. package/dist/core/library-read.js +5 -0
  67. package/dist/core/library-search.d.ts +2 -2
  68. package/dist/core/library-search.js +2 -1
  69. package/dist/core/oauth.js +4 -0
  70. package/dist/core/ops/areas.d.ts +11 -0
  71. package/dist/core/ops/areas.js +24 -0
  72. package/dist/core/ops/catalog.d.ts +45 -0
  73. package/dist/core/ops/catalog.js +157 -0
  74. package/dist/core/ops/cloud.d.ts +64 -0
  75. package/dist/core/ops/cloud.js +198 -0
  76. package/dist/core/ops/contract.d.ts +120 -0
  77. package/dist/core/ops/contract.js +134 -0
  78. package/dist/core/ops/engine-answer.d.ts +25 -0
  79. package/dist/core/ops/engine-answer.js +117 -0
  80. package/dist/core/ops/engine.d.ts +55 -0
  81. package/dist/core/ops/engine.js +649 -0
  82. package/dist/core/ops/public-catalog.d.ts +48 -0
  83. package/dist/core/ops/public-catalog.js +56 -0
  84. package/dist/core/ops/save-files.d.ts +78 -0
  85. package/dist/core/ops/save-files.js +419 -0
  86. package/dist/core/ops/search.d.ts +8 -0
  87. package/dist/core/ops/search.js +187 -0
  88. package/dist/core/skills-registry.d.ts +16 -1
  89. package/dist/core/skills-registry.js +35 -2
  90. package/dist/core/telemetry.d.ts +32 -0
  91. package/dist/core/telemetry.js +38 -10
  92. package/dist/core/tool-profiles.d.ts +25 -0
  93. package/dist/core/tool-profiles.js +41 -0
  94. package/dist/installer/agent-config.d.ts +17 -4
  95. package/dist/installer/agent-config.js +27 -6
  96. package/dist/installer/agent-table.d.ts +12 -0
  97. package/dist/installer/agent-table.js +33 -9
  98. package/dist/installer/cli-permissions.d.ts +65 -0
  99. package/dist/installer/cli-permissions.js +182 -0
  100. package/dist/installer/setup.d.ts +4 -0
  101. package/dist/installer/setup.js +12 -4
  102. package/dist/installer/skills-refresh.d.ts +29 -0
  103. package/dist/installer/skills-refresh.js +261 -0
  104. package/dist/installer/version-check.d.ts +51 -11
  105. package/dist/installer/version-check.js +147 -37
  106. package/dist/mcp/command.js +7 -0
  107. package/dist/mcp/hosted-mount.d.ts +27 -2
  108. package/dist/mcp/hosted-mount.js +53 -23
  109. package/dist/mcp/legacy-toolset.d.ts +27 -0
  110. package/dist/mcp/legacy-toolset.js +43 -0
  111. package/dist/mcp/ops-surface.d.ts +59 -0
  112. package/dist/mcp/ops-surface.js +453 -0
  113. package/dist/mcp/server.d.ts +45 -11
  114. package/dist/mcp/server.js +263 -89
  115. package/dist/mcp/tool-results.d.ts +26 -0
  116. package/dist/mcp/tool-results.js +81 -0
  117. package/dist/mcp/tool-surface.d.ts +65 -0
  118. package/dist/mcp/tool-surface.js +317 -0
  119. package/dist/mcp/tools/app-tools.js +9 -2
  120. package/dist/mcp/tools/asset-tools.js +55 -53
  121. package/dist/mcp/tools/audit-tools.js +21 -21
  122. package/dist/mcp/tools/debug-tools.js +6 -6
  123. package/dist/mcp/tools/fabricate-tools.js +6 -6
  124. package/dist/mcp/tools/generate-tools.js +76 -70
  125. package/dist/mcp/tools/project-tools.d.ts +9 -4
  126. package/dist/mcp/tools/project-tools.js +16 -10
  127. package/dist/mcp/tools/scene-tools.js +12 -23
  128. package/dist/mcp/tools/script-tools.js +9 -5
  129. package/dist/mcp/tools/with-engine.d.ts +6 -0
  130. package/dist/mcp/tools/with-engine.js +19 -0
  131. package/dist/project-memory/agent-instructions.d.ts +47 -0
  132. package/dist/project-memory/agent-instructions.js +226 -0
  133. package/gemini-extension.json +6 -13
  134. package/hooks/pre-commit-doctor.sh +5 -4
  135. package/hooks/session-start.sh +24 -28
  136. package/integrations/README.md +1 -1
  137. package/integrations/claude/README.md +6 -0
  138. package/integrations/claude/manifest-target.json +4 -0
  139. package/integrations/claude-desktop/README.md +1 -1
  140. package/integrations/copilot-jetbrains/README.md +1 -1
  141. package/integrations/gemini/README.md +11 -0
  142. package/integrations/junie/README.md +1 -1
  143. package/integrations/lm-studio/README.md +1 -1
  144. package/integrations/trae/README.md +1 -1
  145. package/integrations/visual-studio/README.md +1 -1
  146. package/integrations/windsurf/README.md +1 -1
  147. package/library/references/mcp-tools-reference/mcp-tools-reference.md +79 -51
  148. package/library/references/mcp-tools-reference/resource.yaml +1 -1
  149. package/library/references/product-map/resource.yaml +2 -2
  150. package/library/skills/3d-lighting/SKILL.md +69 -28
  151. package/library/skills/3d-lighting/resource.yaml +1 -1
  152. package/library/skills/README.md +121 -118
  153. package/library/skills/adaptive-music/SKILL.md +40 -23
  154. package/library/skills/adaptive-music/resource.yaml +1 -1
  155. package/library/skills/agent-playtesting/SKILL.md +23 -1
  156. package/library/skills/agent-playtesting/resource.yaml +1 -1
  157. package/library/skills/ai-characters-in-games/SKILL.md +16 -1
  158. package/library/skills/ai-characters-in-games/resource.yaml +1 -1
  159. package/library/skills/ambient-bed/SKILL.md +38 -13
  160. package/library/skills/ambient-bed/resource.yaml +1 -1
  161. package/library/skills/animated-loop/SKILL.md +60 -32
  162. package/library/skills/animated-loop/resource.yaml +1 -1
  163. package/library/skills/animation-tree/SKILL.md +27 -1
  164. package/library/skills/animation-tree/resource.yaml +1 -1
  165. package/library/skills/art-direction/SKILL.md +17 -3
  166. package/library/skills/art-direction/resource.yaml +1 -1
  167. package/library/skills/asset-strategy/SKILL.md +51 -4
  168. package/library/skills/asset-strategy/resource.yaml +2 -1
  169. package/library/skills/audio-direction/SKILL.md +26 -10
  170. package/library/skills/audio-direction/resource.yaml +1 -1
  171. package/library/skills/auto-fire-targeting/SKILL.md +15 -1
  172. package/library/skills/auto-fire-targeting/resource.yaml +1 -1
  173. package/library/skills/bounded-engine-runs/SKILL.md +1 -1
  174. package/library/skills/bounded-engine-runs/resource.yaml +1 -1
  175. package/library/skills/brainstorm-game/SKILL.md +14 -1
  176. package/library/skills/brainstorm-game/resource.yaml +1 -1
  177. package/library/skills/brainstorming/SKILL.md +1 -1
  178. package/library/skills/brainstorming/resource.yaml +1 -1
  179. package/library/skills/browse-templates/SKILL.md +11 -1
  180. package/library/skills/browse-templates/resource.yaml +1 -1
  181. package/library/skills/camera-rigs/SKILL.md +22 -2
  182. package/library/skills/camera-rigs/resource.yaml +1 -1
  183. package/library/skills/celeste-momentum-platforming/resource.yaml +1 -0
  184. package/library/skills/character-animation-wiring/SKILL.md +28 -4
  185. package/library/skills/character-animation-wiring/resource.yaml +1 -1
  186. package/library/skills/character-model/SKILL.md +83 -47
  187. package/library/skills/character-model/resource.yaml +1 -1
  188. package/library/skills/character-movement/SKILL.md +27 -3
  189. package/library/skills/character-movement/resource.yaml +1 -1
  190. package/library/skills/character-portrait/SKILL.md +39 -19
  191. package/library/skills/character-portrait/resource.yaml +1 -1
  192. package/library/skills/cinematic-cutscene/SKILL.md +79 -46
  193. package/library/skills/cinematic-cutscene/resource.yaml +1 -1
  194. package/library/skills/combat-basics/SKILL.md +20 -1
  195. package/library/skills/combat-basics/resource.yaml +1 -1
  196. package/library/skills/compatibility-renderer-traps/SKILL.md +12 -1
  197. package/library/skills/compatibility-renderer-traps/resource.yaml +1 -1
  198. package/library/skills/concept-art/SKILL.md +29 -12
  199. package/library/skills/concept-art/resource.yaml +1 -1
  200. package/library/skills/concept-to-level/SKILL.md +258 -0
  201. package/library/skills/concept-to-level/references/technical-rules.md +150 -0
  202. package/library/skills/concept-to-level/resource.yaml +44 -0
  203. package/library/skills/create-asset-sheet/SKILL.md +37 -13
  204. package/library/skills/create-asset-sheet/resource.yaml +1 -1
  205. package/library/skills/debug/SKILL.md +34 -2
  206. package/library/skills/debug/resource.yaml +1 -1
  207. package/library/skills/debugging-game-feel/SKILL.md +13 -1
  208. package/library/skills/debugging-game-feel/resource.yaml +1 -1
  209. package/library/skills/design-level/SKILL.md +40 -35
  210. package/library/skills/design-level/resource.yaml +1 -1
  211. package/library/skills/design-mechanic/SKILL.md +18 -1
  212. package/library/skills/design-mechanic/resource.yaml +1 -1
  213. package/library/skills/design-npc/SKILL.md +43 -24
  214. package/library/skills/design-npc/resource.yaml +1 -1
  215. package/library/skills/diagnosing-perf-regressions/SKILL.md +13 -1
  216. package/library/skills/diagnosing-perf-regressions/resource.yaml +1 -1
  217. package/library/skills/driving-the-editor-ui/SKILL.md +24 -1
  218. package/library/skills/driving-the-editor-ui/resource.yaml +1 -1
  219. package/library/skills/environment-kit/SKILL.md +43 -16
  220. package/library/skills/environment-kit/resource.yaml +1 -1
  221. package/library/skills/export-and-ship/SKILL.md +29 -6
  222. package/library/skills/export-and-ship/resource.yaml +1 -1
  223. package/library/skills/fabricating-assets/SKILL.md +30 -7
  224. package/library/skills/fabricating-assets/resource.yaml +3 -3
  225. package/library/skills/facial-and-lipsync/SKILL.md +36 -15
  226. package/library/skills/facial-and-lipsync/resource.yaml +1 -1
  227. package/library/skills/fps-controller/SKILL.md +50 -41
  228. package/library/skills/fps-controller/resource.yaml +1 -1
  229. package/library/skills/game-feel/SKILL.md +34 -8
  230. package/library/skills/game-feel/resource.yaml +1 -1
  231. package/library/skills/gameskill/SKILL.md +15 -4
  232. package/library/skills/gameskill/resource.yaml +1 -1
  233. package/library/skills/gdscript-patterns/SKILL.md +16 -1
  234. package/library/skills/gdscript-patterns/resource.yaml +1 -1
  235. package/library/skills/generate-motion/SKILL.md +51 -21
  236. package/library/skills/generate-motion/resource.yaml +1 -1
  237. package/library/skills/godogen-visual-proof-game-generation/SKILL.md +18 -1
  238. package/library/skills/godogen-visual-proof-game-generation/resource.yaml +1 -0
  239. package/library/skills/grow-analytics/SKILL.md +13 -3
  240. package/library/skills/grow-analytics/resource.yaml +1 -1
  241. package/library/skills/headless-scripting/SKILL.md +14 -1
  242. package/library/skills/headless-scripting/resource.yaml +1 -1
  243. package/library/skills/in-game-purchases/SKILL.md +12 -1
  244. package/library/skills/in-game-purchases/resource.yaml +1 -1
  245. package/library/skills/instantiate-asset-pack/SKILL.md +19 -2
  246. package/library/skills/instantiate-asset-pack/resource.yaml +1 -1
  247. package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +1 -0
  248. package/library/skills/make-game/SKILL.md +33 -4
  249. package/library/skills/make-game/references/2d-platformer.md +1 -1
  250. package/library/skills/make-game/references/3d-fps.md +1 -1
  251. package/library/skills/make-game/references/3d-horror.md +1 -1
  252. package/library/skills/make-game/references/3d-third-person.md +2 -2
  253. package/library/skills/make-game/resource.yaml +1 -1
  254. package/library/skills/multiplayer/SKILL.md +13 -1
  255. package/library/skills/multiplayer/resource.yaml +1 -1
  256. package/library/skills/multiplayer-movement/SKILL.md +19 -1
  257. package/library/skills/multiplayer-movement/resource.yaml +1 -1
  258. package/library/skills/multiplayer-project/SKILL.md +18 -1
  259. package/library/skills/multiplayer-project/resource.yaml +1 -1
  260. package/library/skills/multiplayer-publish/SKILL.md +25 -7
  261. package/library/skills/multiplayer-publish/resource.yaml +3 -3
  262. package/library/skills/multiplayer-state/SKILL.md +17 -1
  263. package/library/skills/multiplayer-state/resource.yaml +1 -1
  264. package/library/skills/multiplayer-testing/SKILL.md +16 -1
  265. package/library/skills/multiplayer-testing/resource.yaml +1 -1
  266. package/library/skills/music-track/SKILL.md +38 -13
  267. package/library/skills/music-track/resource.yaml +1 -1
  268. package/library/skills/navigate-summer/SKILL.md +26 -9
  269. package/library/skills/navigate-summer/resource.yaml +1 -1
  270. package/library/skills/new-project/SKILL.md +12 -1
  271. package/library/skills/new-project/resource.yaml +1 -1
  272. package/library/skills/organic-model/SKILL.md +48 -18
  273. package/library/skills/organic-model/resource.yaml +1 -1
  274. package/library/skills/pixel-art/SKILL.md +42 -23
  275. package/library/skills/pixel-art/resource.yaml +1 -1
  276. package/library/skills/play/SKILL.md +19 -1
  277. package/library/skills/play/resource.yaml +1 -1
  278. package/library/skills/playtesting-a-feature/SKILL.md +24 -1
  279. package/library/skills/playtesting-a-feature/resource.yaml +1 -1
  280. package/library/skills/procedural-animation/SKILL.md +38 -16
  281. package/library/skills/procedural-animation/resource.yaml +1 -1
  282. package/library/skills/prop-model/SKILL.md +48 -19
  283. package/library/skills/prop-model/resource.yaml +1 -1
  284. package/library/skills/psx-retro-rendering/resource.yaml +1 -0
  285. package/library/skills/publish-your-game/SKILL.md +43 -6
  286. package/library/skills/publish-your-game/resource.yaml +3 -3
  287. package/library/skills/realtime-wet-surfaces/resource.yaml +1 -0
  288. package/library/skills/release-readiness/SKILL.md +13 -1
  289. package/library/skills/release-readiness/resource.yaml +1 -1
  290. package/library/skills/remote-deploy/SKILL.md +15 -1
  291. package/library/skills/remote-deploy/resource.yaml +1 -1
  292. package/library/skills/retarget/SKILL.md +43 -20
  293. package/library/skills/retarget/resource.yaml +1 -1
  294. package/library/skills/running-in-the-cloud/SKILL.md +11 -1
  295. package/library/skills/running-in-the-cloud/resource.yaml +1 -1
  296. package/library/skills/save-load/SKILL.md +16 -1
  297. package/library/skills/save-load/resource.yaml +1 -1
  298. package/library/skills/scene-composition/SKILL.md +18 -1
  299. package/library/skills/scene-composition/resource.yaml +1 -1
  300. package/library/skills/scene-hierarchy-design/SKILL.md +26 -2
  301. package/library/skills/scene-hierarchy-design/resource.yaml +1 -1
  302. package/library/skills/scene-scripting/SKILL.md +96 -636
  303. package/library/skills/scene-scripting/references/ctx-api.md +184 -0
  304. package/library/skills/scene-scripting/references/recipes-2d-ui.md +193 -0
  305. package/library/skills/scene-scripting/references/recipes-3d.md +280 -0
  306. package/library/skills/scene-scripting/resource.yaml +4 -4
  307. package/library/skills/scene-to-level/SKILL.md +24 -2
  308. package/library/skills/scene-to-level/resource.yaml +1 -1
  309. package/library/skills/skill-create/resource.yaml +1 -0
  310. package/library/skills/skill-improve/resource.yaml +1 -0
  311. package/library/skills/skill-test/SKILL.md +12 -2
  312. package/library/skills/skill-test/resource.yaml +1 -0
  313. package/library/skills/skintokens-auto-rigging/resource.yaml +1 -0
  314. package/library/skills/skybox-panorama/SKILL.md +47 -21
  315. package/library/skills/skybox-panorama/resource.yaml +1 -1
  316. package/library/skills/sound-effect/SKILL.md +52 -20
  317. package/library/skills/sound-effect/resource.yaml +1 -1
  318. package/library/skills/spatial-placement/SKILL.md +44 -9
  319. package/library/skills/spatial-placement/resource.yaml +1 -1
  320. package/library/skills/sprite-sheet/SKILL.md +55 -27
  321. package/library/skills/sprite-sheet/resource.yaml +1 -1
  322. package/library/skills/store-art/SKILL.md +14 -3
  323. package/library/skills/store-art/resource.yaml +2 -2
  324. package/library/skills/store-listing/SKILL.md +13 -3
  325. package/library/skills/store-listing/resource.yaml +2 -2
  326. package/library/skills/summer-analytics/SKILL.md +22 -5
  327. package/library/skills/summer-analytics/resource.yaml +2 -2
  328. package/library/skills/summer-apps/SKILL.md +77 -32
  329. package/library/skills/summer-apps/manifest.md +1 -1
  330. package/library/skills/summer-apps/minimal-app.md +7 -7
  331. package/library/skills/summer-apps/resource.yaml +1 -1
  332. package/library/skills/summer-apps/sdk-reference.md +5 -5
  333. package/library/skills/summer-apps-design/SKILL.md +1 -1
  334. package/library/skills/summer-apps-design/resource.yaml +1 -1
  335. package/library/skills/summer-assets/SKILL.md +86 -0
  336. package/library/skills/summer-assets/resource.yaml +34 -0
  337. package/library/skills/summer-cli/SKILL.md +133 -0
  338. package/library/skills/summer-cli/resource.yaml +31 -0
  339. package/library/skills/summer-friends/SKILL.md +14 -0
  340. package/library/skills/summer-leaderboards/SKILL.md +16 -0
  341. package/library/skills/summer-match-results/SKILL.md +17 -0
  342. package/library/skills/summer-matchmaking/SKILL.md +17 -0
  343. package/library/skills/summer-parties/SKILL.md +14 -0
  344. package/library/skills/summer-player-data/SKILL.md +14 -0
  345. package/library/skills/summer-store/SKILL.md +16 -1
  346. package/library/skills/summer-world-chat/SKILL.md +14 -0
  347. package/library/skills/summer-world-saves/SKILL.md +14 -0
  348. package/library/skills/text-to-motion/SKILL.md +45 -23
  349. package/library/skills/text-to-motion/prompts-and-controls.md +5 -5
  350. package/library/skills/text-to-motion/resource.yaml +1 -1
  351. package/library/skills/text-to-motion/rigging-for-text-motion.md +2 -2
  352. package/library/skills/tileable-texture/SKILL.md +37 -15
  353. package/library/skills/tileable-texture/resource.yaml +1 -1
  354. package/library/skills/trailer-shot/SKILL.md +46 -24
  355. package/library/skills/trailer-shot/resource.yaml +1 -1
  356. package/library/skills/tune-performance/SKILL.md +32 -6
  357. package/library/skills/tune-performance/resource.yaml +1 -1
  358. package/library/skills/ui-basics/SKILL.md +55 -36
  359. package/library/skills/ui-basics/resource.yaml +1 -1
  360. package/library/skills/ui-graphics/SKILL.md +64 -38
  361. package/library/skills/ui-graphics/resource.yaml +1 -1
  362. package/library/skills/use-widget-asset/SKILL.md +15 -1
  363. package/library/skills/use-widget-asset/resource.yaml +1 -1
  364. package/library/skills/using-summer/SKILL.md +32 -5
  365. package/library/skills/using-summer/resource.yaml +3 -2
  366. package/library/skills/vehicle-model/SKILL.md +92 -57
  367. package/library/skills/vehicle-model/resource.yaml +1 -1
  368. package/library/skills/verification-before-completion/SKILL.md +1 -1
  369. package/library/skills/verification-before-completion/resource.yaml +1 -1
  370. package/library/skills/verifying-scenes/SKILL.md +31 -2
  371. package/library/skills/verifying-scenes/resource.yaml +1 -1
  372. package/library/skills/vfx-dissolve/SKILL.md +21 -2
  373. package/library/skills/vfx-dissolve/resource.yaml +1 -1
  374. package/library/skills/vfx-fire/SKILL.md +41 -41
  375. package/library/skills/vfx-fire/resource.yaml +1 -1
  376. package/library/skills/vfx-hit-spark/SKILL.md +24 -1
  377. package/library/skills/vfx-hit-spark/resource.yaml +1 -1
  378. package/library/skills/vfx-lightning/SKILL.md +30 -16
  379. package/library/skills/vfx-lightning/resource.yaml +1 -1
  380. package/library/skills/vfx-magic-glow/SKILL.md +46 -32
  381. package/library/skills/vfx-magic-glow/resource.yaml +1 -1
  382. package/library/skills/vfx-muzzle-flash/SKILL.md +43 -35
  383. package/library/skills/vfx-muzzle-flash/resource.yaml +1 -1
  384. package/library/skills/vfx-smoke/SKILL.md +39 -31
  385. package/library/skills/vfx-smoke/resource.yaml +1 -1
  386. package/library/skills/vfx-water-ripple/SKILL.md +35 -31
  387. package/library/skills/vfx-water-ripple/resource.yaml +1 -1
  388. package/library/skills/voice-line/SKILL.md +87 -40
  389. package/library/skills/voice-line/resource.yaml +1 -1
  390. package/library/skills/web-and-touch-input/SKILL.md +20 -1
  391. package/library/skills/web-and-touch-input/resource.yaml +1 -1
  392. package/library/skills/web-compatibility-look/SKILL.md +21 -1
  393. package/library/skills/web-compatibility-look/resource.yaml +1 -1
  394. package/library/skills/world-building-3d/SKILL.md +29 -1
  395. package/library/skills/world-building-3d/resource.yaml +1 -1
  396. package/library/skills/writing-skills/resource.yaml +1 -0
  397. package/library/tools/add-node/GUIDE.md +14 -0
  398. package/library/tools/align-distribute-3d/GUIDE.md +7 -0
  399. package/library/tools/app-call/resource.yaml +1 -1
  400. package/library/tools/app-guide/resource.yaml +2 -2
  401. package/library/tools/app-page/resource.yaml +1 -1
  402. package/library/tools/app-screenshot/resource.yaml +19 -1
  403. package/library/tools/app-tools/resource.yaml +1 -1
  404. package/library/tools/attach-to-surface/GUIDE.md +15 -0
  405. package/library/tools/batch/GUIDE.md +27 -0
  406. package/library/tools/camera-bookmark/GUIDE.md +12 -0
  407. package/library/tools/capture-gameplay/GUIDE.md +3 -0
  408. package/library/tools/capture-gameplay/resource.yaml +3 -3
  409. package/library/tools/check-job/resource.yaml +1 -1
  410. package/library/tools/clear-console/GUIDE.md +3 -0
  411. package/library/tools/connect-ports/GUIDE.md +9 -0
  412. package/library/tools/connect-signal/GUIDE.md +14 -0
  413. package/library/tools/create-debug-report/GUIDE.md +10 -0
  414. package/library/tools/create-scene/GUIDE.md +10 -0
  415. package/library/tools/debug-views/GUIDE.md +7 -0
  416. package/library/tools/enable-plugin/GUIDE.md +3 -0
  417. package/library/tools/export-game/GUIDE.md +3 -0
  418. package/library/tools/export-game/resource.yaml +3 -3
  419. package/library/tools/export-templates/GUIDE.md +3 -0
  420. package/library/tools/fabricate-3d/GUIDE.md +19 -0
  421. package/library/tools/frame-nodes/GUIDE.md +9 -0
  422. package/library/tools/frame-shot/GUIDE.md +9 -0
  423. package/library/tools/game-control/GUIDE.md +9 -0
  424. package/library/tools/game-input/GUIDE.md +9 -0
  425. package/library/tools/game-probe/GUIDE.md +9 -0
  426. package/library/tools/generate-3d/resource.yaml +3 -3
  427. package/library/tools/generate-motion/resource.yaml +2 -2
  428. package/library/tools/get-console/GUIDE.md +9 -0
  429. package/library/tools/get-console/resource.yaml +5 -0
  430. package/library/tools/get-debugger-errors/GUIDE.md +7 -0
  431. package/library/tools/get-debugger-errors/resource.yaml +5 -0
  432. package/library/tools/get-debugger-warnings/GUIDE.md +7 -0
  433. package/library/tools/get-debugger-warnings/resource.yaml +5 -0
  434. package/library/tools/get-diagnostics/GUIDE.md +13 -0
  435. package/library/tools/get-project-context/GUIDE.md +25 -0
  436. package/library/tools/get-runtime-tree/GUIDE.md +7 -0
  437. package/library/tools/get-runtime-tree/resource.yaml +5 -0
  438. package/library/tools/get-scene-tree/GUIDE.md +11 -0
  439. package/library/tools/get-scene-tree/resource.yaml +5 -0
  440. package/library/tools/get-script-errors/GUIDE.md +5 -0
  441. package/library/tools/grep/GUIDE.md +11 -0
  442. package/library/tools/import-asset/GUIDE.md +8 -0
  443. package/library/tools/import-asset-by-id/GUIDE.md +12 -0
  444. package/library/tools/import-from-url/GUIDE.md +10 -0
  445. package/library/tools/import-from-url-batch/GUIDE.md +3 -0
  446. package/library/tools/import-hdri/GUIDE.md +16 -0
  447. package/library/tools/input-map-bind/GUIDE.md +11 -0
  448. package/library/tools/inspect-asset/GUIDE.md +14 -0
  449. package/library/tools/inspect-asset/resource.yaml +5 -0
  450. package/library/tools/inspect-node/GUIDE.md +11 -0
  451. package/library/tools/inspect-node/resource.yaml +5 -0
  452. package/library/tools/inspect-resource/GUIDE.md +7 -0
  453. package/library/tools/inspect-resource/resource.yaml +5 -0
  454. package/library/tools/inspect-runtime-node/GUIDE.md +7 -0
  455. package/library/tools/inspect-runtime-node/resource.yaml +5 -0
  456. package/library/tools/instantiate-scene/GUIDE.md +12 -0
  457. package/library/tools/is-running/GUIDE.md +3 -0
  458. package/library/tools/measure/GUIDE.md +8 -0
  459. package/library/tools/navigation-probe/GUIDE.md +9 -0
  460. package/library/tools/open/resource.yaml +2 -2
  461. package/library/tools/open-main-scene/GUIDE.md +6 -0
  462. package/library/tools/open-scene/GUIDE.md +8 -0
  463. package/library/tools/place-adjacent/GUIDE.md +7 -0
  464. package/library/tools/play/GUIDE.md +13 -0
  465. package/library/tools/project-setting/GUIDE.md +9 -0
  466. package/library/tools/publish-build/resource.yaml +6 -6
  467. package/library/tools/raycast/GUIDE.md +7 -0
  468. package/library/tools/read-file/GUIDE.md +10 -0
  469. package/library/tools/read-library/resource.yaml +5 -0
  470. package/library/tools/recent-events/GUIDE.md +7 -0
  471. package/library/tools/remove-node/GUIDE.md +3 -0
  472. package/library/tools/repeat-along/GUIDE.md +5 -0
  473. package/library/tools/replace-node/GUIDE.md +9 -0
  474. package/library/tools/replace-text/GUIDE.md +5 -0
  475. package/library/tools/run-editor-script/GUIDE.md +16 -0
  476. package/library/tools/run-script/GUIDE.md +30 -0
  477. package/library/tools/run-script/resource.yaml +6 -3
  478. package/library/tools/runtime-animate/GUIDE.md +7 -0
  479. package/library/tools/runtime-call/GUIDE.md +7 -0
  480. package/library/tools/runtime-set/GUIDE.md +9 -0
  481. package/library/tools/runtime-spawn/GUIDE.md +9 -0
  482. package/library/tools/save-scene/GUIDE.md +3 -0
  483. package/library/tools/scene-audit/GUIDE.md +29 -0
  484. package/library/tools/screenshot/GUIDE.md +17 -0
  485. package/library/tools/select-node/GUIDE.md +3 -0
  486. package/library/tools/set-prop/GUIDE.md +23 -0
  487. package/library/tools/set-resource-property/GUIDE.md +8 -0
  488. package/library/tools/shot-sheet/GUIDE.md +7 -0
  489. package/library/tools/snap-to-surface/GUIDE.md +17 -0
  490. package/library/tools/snapshot-diff/GUIDE.md +7 -0
  491. package/library/tools/starcast/GUIDE.md +12 -0
  492. package/library/tools/stop/GUIDE.md +3 -0
  493. package/library/tools/test-placement/GUIDE.md +7 -0
  494. package/library/tools/ui-actions/GUIDE.md +12 -0
  495. package/library/tools/ui-activate/GUIDE.md +11 -0
  496. package/library/tools/ui-screenshot/GUIDE.md +9 -0
  497. package/library/tools/ui-tree/GUIDE.md +10 -0
  498. package/library/tools/wait-for-event/GUIDE.md +11 -0
  499. package/library/tools/world-snapshot/GUIDE.md +9 -0
  500. package/library/tools/write-file/GUIDE.md +5 -0
  501. package/library/tools/zoom/GUIDE.md +5 -0
  502. package/package.json +8 -5
  503. package/registry/generated/counts.json +2 -2
  504. package/registry/generated/gemini-extension.json +6 -13
  505. package/registry/generated/index.json +482 -349
  506. package/registry/generated/marketplace.claude.json +2 -13
  507. package/registry/generated/plugin.claude-directory.json +168 -0
  508. package/registry/generated/plugin.claude.json +24 -22
  509. package/registry/generated/plugin.codex.json +18 -22
  510. package/registry/generated/plugin.cursor.json +8 -14
  511. package/registry/generated/plugin.factory.json +6 -13
  512. package/registry/generated/server.json +43 -0
  513. package/registry/generated/skills-index.md +121 -118
  514. package/registry/generated/skills-registry.json +167 -115
  515. package/registry/operations/fixtures/invalid-deprecated-without-replacement.json +60 -0
  516. package/registry/operations/fixtures/invalid-name.json +60 -0
  517. package/registry/operations/fixtures/invalid-publish-without-owner.json +82 -0
  518. package/registry/operations/fixtures/invalid-spend-without-estimate.json +42 -0
  519. package/registry/operations/fixtures/invalid-unknown-field.json +61 -0
  520. package/registry/operations/fixtures/valid-player-facing.json +82 -0
  521. package/registry/operations/fixtures/valid-read.json +60 -0
  522. package/registry/operations/fixtures/valid-spend.json +43 -0
  523. package/registry/operations/legacy-names.json +1241 -0
  524. package/registry/operations/public-catalog.json +33160 -0
  525. package/registry/schemas/operation.schema.json +318 -0
  526. package/registry/schemas/skill.schema.json +4 -0
  527. package/CLAUDE.md +0 -7
package/CHANGELOG.md CHANGED
@@ -2,6 +2,139 @@
2
2
 
3
3
  All notable changes to summer-engine will be documented here. Following [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and [Semantic Versioning](https://semver.org/).
4
4
 
5
+ ## [4.2.0] - 2026-10-16
6
+
7
+ 4.1.0 was not published to npm. 4.2.0 is the first release with everything in it (the [4.1.0] section below), plus these changes.
8
+
9
+ Upgrades keep agents current: the installed Summer skills refresh themselves after an upgrade, every Summer project gets an AGENTS.md, the CLI path can let Claude Code and Codex run read-only commands without asking, and Gemini CLI installs come with the skills.
10
+
11
+ - **The CLI path can ask less.** `summer setup claude-code --cli --allow-rules --yes` lets Claude Code run read-only and dry-run `summer` commands without asking: a reviewed list of reads (`summer ops search`, `summer jobs wait`, `summer engine screenshot`, ...; `jobs wait` and `assets get` also save the files they name) and every spend only as a dry run (`summer assets generate-image --dry-run ...`, the flag right after the action). It is opt-in: the flag is in the command the person approves, setup prints every rule, and without `--yes` it writes nothing. The rules, for both `summer` and `npx -y summer-engine@latest`, go into `permissions.allow` in `~/.claude/settings.json` (`.claude/settings.local.json` with `--scope project`); nothing else in the file changes. `summer setup codex --cli --allow-rules --yes` writes the same as Summer's own Codex rules file, `~/.codex/rules/summer.rules`. `--remove-allow-rules` takes exactly these rules out again. Changes, publishing, prices, deletes, messages and `engine capture-gameplay` (it runs the project's own code) still ask. A call with `--dry-run` is now a dry run whatever its input says (`--no-dry-run` or `"dryRun": false` in `--input` no longer undo it).
12
+ - **Devin Desktop (formerly Windsurf): the MCP config moved** to `~/.config/devin/mcp_config.json` (`$XDG_CONFIG_HOME/devin`, Windows `%APPDATA%\devin`), per Devin's docs. `summer setup windsurf` writes it there and says when an earlier setup's entry is still in `~/.codeium/windsurf/mcp_config.json` (left as it is for older builds).
13
+ - **Gemini CLI extensions get the skills.** `gemini extensions install https://github.com/SummerEngine/summer` and the Gemini CLI gallery install a release's only asset, and each GitHub Release now carries one: `summer-gemini-extension.tar.gz`, the extension with `skills/<slug>/` for every bundled skill (Gemini reads skills only from that folder; the repository keeps them in `library/skills/`). A clone of the repository gave no skills.
14
+ - **A Claude plugin for Anthropic's plugin directory** in `plugins/claude/`: the same plugin from a folder of its own (292 files, under the directory's 512), with the server and every `summer-engine@latest` pinned to this version. `npm run generate:registry` writes it, `--check` fails when it drifts, and `claude plugin validate --strict plugins/claude` passes.
15
+ - **Every Summer project has an AGENTS.md.** `summer create` writes a short AGENTS.md, the one file Codex, Cursor, Copilot, Amp and other agents read in every session: this is a Summer Engine game in GDScript, how to work on it with the MCP tools or the `summer` CLI, where Summer's skills are, the five most useful commands, and that publishing needs the owner's approval. It also writes a CLAUDE.md that only holds `@AGENTS.md`, for Claude Code. `summer setup --yes` run inside a project adds both when they are missing (without `--yes` it says what it would add; `--no-project-files` and `--assets-only` leave the project alone). The project is the nearest folder with `project.godot` at or above the working directory, no higher than the git top level and never the home folder. An existing AGENTS.md or CLAUDE.md is never overwritten: setup adds one marked Summer block once and later updates only that block, in the file's own line endings. A CLAUDE.md that already imports AGENTS.md stays as it is, a CLAUDE.md that is a link to AGENTS.md (or the reverse) gets the AGENTS.md block once, a link to a missing file or out of the project is left alone, and a file setup cannot write is reported with the reason. The five commands come from the `summer-cli` skill, and a test runs every command both teach.
16
+ - **Upgrades refresh the installed skills.** The first `summer mcp` start (v4 surface) after an upgrade brings the Summer skills already installed on the computer to the new version, then says so once: in the session's instructions, so the agent can tell the person, and on stderr. Before, skills from 3.x stayed until someone ran `summer setup --force`. While they stayed, the local server kept the legacy toolset on, and agents kept calling 3.x tools; that undid about half of 4.0's smaller tool list. Now the legacy toolset is off from that first start; 3.x tool names still run through `summer_call`, and `--toolsets legacy` or `SUMMER_LEGACY_TOOLS=on` lists them again.
17
+ - Only Summer's own copies are replaced: real folders (not links) whose `resource.yaml` names that skill, in a skills folder with Summer's version marker. A skill from another pack with the same name, and a Summer skill someone changed after install, stay as they are, at this and every later release until `summer setup --force` (the version marker lists them); the notice names them. A pre-release never takes a release's skills back. Nothing is removed. New library skills are added only to a folder that holds nearly the whole library, so an assets-only install stays one.
18
+ - Each skill is copied beside the old one and swapped in with renames, under a lock per folder, and the version marker is written last. A killed start or a copy error leaves the old skill, and the next start finishes. A refresh error never stops `summer mcp`; it goes to the MCP log.
19
+ - Rule-file installs (Cline, Roo Code, old Cursor rules) are not refreshed; `summer doctor` still prints the command for them.
20
+ - **`summer_call` on the local server takes `name` as well as `op`.** Agents copied the `name` field that `summer_search` answers with and got an input error. When both are given and differ, it answers `invalid_input`.
21
+
22
+ ## [4.1.0] - 2026-10-16
23
+
24
+ Not published to npm: these changes ship in 4.2.0.
25
+
26
+ Summer without MCP: any agent runs Summer from its shell with the `summer` CLI and the `summer-cli` skill. Every operation is found without a sign-in, search understands plain English, and Summer installs with Homebrew.
27
+
28
+ - **`--json` on every read command.** `summer ops describe <op> --json` failed with "unknown option '--json'"; it now prints the same answer as the other operation commands (`{ok, status, result: {operation}}`, warnings inside). `summer status`, `summer list templates|projects`, `summer skills list`, `summer skills info`, `summer memory show`, `summer memory path` and `summer config get` take `--json` too. A test lists every CLI command and fails when a read command has no `--json`. `summer tool` keeps printing JSON; its `--json` is still the old alias of `--args`.
29
+ - **`summer setup <agent> --cli`: Summer without MCP.** Installs the skills for the agent and writes no MCP entry and no Summer Games entry. The agent runs Summer as `summer <area> <action>` commands in its shell. `--no-mcp` is the same. With `--assets-only` it installs only the asset skills. Claude Code gets no slash commands (`/summer`, `/gameskill`, `/start` start work through the MCP tools; `summer skills install --no-commands` leaves them out too). An existing `summer-engine` entry from an earlier setup stays, and setup says so: a stdio or URL entry, and Claude Code's per-project ones. `--print`, `--profile`, `--local-dev` and `--channel` shape only the MCP entry, so `--cli` refuses them. It also refuses agents without a skills folder, Gemini CLI (its skills load only through its extension, which runs the MCP server) and Roo Code (its skills are rule files that tell it to use the MCP tools). When an agent's config lists no `summer-engine` and `--cli` can set the agent up, the skills refresh `summer doctor` recommends adds `--cli`, so it adds no MCP server.
30
+ - **New skill `summer-cli`** (preview): sign in, find an operation (`summer ops search`, `summer ops describe`), run it (`--input`, `--dry-run`, `--json`, `--idempotency-key`), long jobs (`--wait`, `summer jobs wait`), approvals, saving files (`--out`), the engine, and the next step for each error code. It checks `summer --version` first and uses `npx -y summer-engine@latest` when `summer` is missing or older than 4.0. A test dry-runs every command it teaches, offline. `using-summer` sends sessions without `summer_*` tools to it.
31
+ - **Each skill shows the command for every tool it names.** A skill that names an MCP tool or an operation ends with a generated "From a shell" table: `summer_play` is `summer engine play`, `assets.generate_image` is `summer assets generate-image`, a split 3.x tool lists each operation, a merged one keeps the input it fixes (`summer_list_my_assets` is `summer assets search --scope mine`), and a merged one that runs here runs as itself (`summer_get_agent_playbook` is `summer tool get-agent-playbook`). `npm run generate:registry` writes it from the operation catalog. `validate:library` fails when it is stale, and when a skill names a 4.0 tool whose operation the catalog does not have. Tests check that every command names an operation this package runs or the catalog knows, and run the rows with a fixed input that run here, offline. `.gitattributes` keeps Markdown LF, so the check also holds on Windows checkouts. MCP tool names do not change.
32
+ - **README: CLI only** (summer-engine 4.1.0 or newer), next to the hosted MCP block.
33
+ - `summer <area> <action> --max-characters <n>` on a local read (`summer docs read`, the engine reads) no longer fails with an unknown key: the CLI prints the whole answer and says so.
34
+ - Shorter descriptions for `summer-cli`, `summer-assets` and `concept-to-level`, so the installed skill descriptions leave room under the 12,000-character budget.
35
+ - **Every operation is found without a sign-in.** `summer ops search`, `summer ops describe` and `summer_search` list every cloud operation (`store.publish`, `pricing.set_base`, ...) signed out, from the hosted server's public catalog shipped in the package (`registry/operations/public-catalog.json`). A cloud operation found signed out says `(needs sign-in)` (`needsSignIn: true` in JSON) and runs after `summer login`. Signed in, the server's live rows replace the shipped ones. `ops describe` of a cloud operation answers from the shipped catalog when the server cannot. `npm run sync:catalog` refreshes the copy; `npm run sync:catalog -- --check` runs before each release, and a test fails when the copy and `legacy-names.json` disagree.
36
+ - **Search understands plain English.** "publish my game" finds `store.publish` first, "how did my game do" `analytics.summary`, "lower my price" `pricing.set_base`, "invite a teammate" `team.invite`, "take a screenshot" `engine.screenshot`, and "add multiplayer" the library search (the CLI prints the `summer docs search` command for it). Rare words weigh more and everyday verbs less, an operation whose title or tag the query says nearly word for word wins, and plain words reach the catalog's words (picture is image, music is audio). Local and cloud operations rank in one list, the same signed in or out. A test holds 35 real phrases.
37
+ - **Install with Homebrew:** `brew install summerengine/tap/summer` (the SummerEngine/homebrew-tap formula follows npm `latest` by itself, checked every hour). The README starts with the three ways to install: the hosted URL for chat apps, Homebrew and npm.
38
+ - `npm publish` no longer fails on a busy machine when it runs the tests again (`prepublishOnly`). Every test has a 20 s limit instead of 5 s, and the slow ones have their own: the first import of the built package (60 s), the template fetch timeout and the trajectory log rotation (30 s each), the `setup --cli` installs (120 s) and the app bundle export (60 s).
39
+ - **`content` is an area.** `summer content <action>` runs the content operations Summer's hosted server serves (`content.list_games`, `content.get_kit`, `content.list_references`, `content.search_library`, `content.save_piece`, `content.add_feedback`, ...). The 4.0.0 `marketing.*` content operations are renamed to them (`marketing.content_feed` is `content.list_references`, `marketing.get_brand_pack` is `content.get_kit`); `registry/operations/legacy-names.json` maps each old name to its new one.
40
+ - **Directory listings lead with "The game engine built for AI."** The MCP Registry entry (`server.json`) gets the Summer sun icon. The Codex plugin is named Summer Engine, with the short description "Make games with AI" (OpenAI allows 30 characters), a logo, a composer icon and a support link. The Cursor plugin is named Summer Engine and gets a logo. The Claude, Cursor, Codex, Factory and Gemini descriptions open with the product line. `glama.json` lets the maintainers claim the Glama listing. The README links support, privacy and terms.
41
+
42
+ ## [4.0.0] - 2026-10-15
43
+
44
+ 3.9.0 and 3.9.1 were not published to npm. 4.0.0 is the first release with everything in them (the [3.9.1] and [3.9.0] sections below), plus these changes.
45
+
46
+ Summer 4.0: every Summer capability is one operation, named `area.action` (`assets.generate_image`, `store.publish`), with one answer shape, and `summer mcp` serves them by default. Engine tools keep their 3.x names. For everything else, `summer_search` finds the operation and its exact input, and `summer_call` runs it. The `summer` CLI runs the same operations.
47
+
48
+ **To get the 3.x tools back:** start the server with `summer mcp --surface v3`, or add `SUMMER_SURFACE=v3` to the `env` of your agent's Summer MCP entry. That serves the 3.x tools as before. `SUMMER_SURFACE=v3` in your shell also leaves out the new `summer <area> <action>` commands.
49
+
50
+ **If you signed in with 3.8.0 or earlier,** run `npx -y summer-engine@latest login` once. Generation and the other cloud operations now run on Summer's hosted server, which needs the store sign-in that `summer login` adds since 3.9.0.
51
+
52
+ ### What changes when you update
53
+
54
+ - **3.x tool names keep working.** `summer_call` runs any 3.x tool by its old name, on the local server and on Summer's hosted server. While the Summer skills `summer setup` installed for your user are older than 4.0, `summer mcp` also lists every 3.x name again (the legacy toolset, local and hosted), each saying which operation replaces it and running as in 3.x. `--toolsets legacy` or `SUMMER_LEGACY_TOOLS=on` keeps them listed; `SUMMER_LEGACY_TOOLS=off` hides them. `npx -y summer-engine@latest setup <agent> --yes` installs the 4.0 skills. With skills from a plugin or a project folder, update them, or set `SUMMER_LEGACY_TOOLS=on` to keep the 3.x names listed.
55
+ - **`summer mcp` serves the v4 surface by default** (`--surface v3` or `SUMMER_SURFACE=v3` brings back the 3.x tools). It lists the engine tools under their 3.x names, `summer_docs_search` and `summer_docs_read`, and two new tools: `summer_search` finds any operation, local or cloud, with its exact input, and `summer_call` runs it. Engine operations run here. Cloud operations run on Summer's hosted server, with the same approvals. Every 3.x tool can still be called through `summer_call`, by its old name too.
56
+ - **One answer shape.** Every 4.0 tool answers `{ok, status, result}`: `done`, `running` with a job (`jobs.wait` waits up to 50 seconds per call), `needs_approval` with a link for the person, or `dry_run` with a preview. An error has a `code` (`engine_not_running`, `not_signed_in`, `no_credits`, `invalid_input`, ...), a message and exactly one `next` step. Every change takes `dryRun: true` (it changes and spends nothing) and an `idempotencyKey`, so a retry never runs twice.
57
+ - **A failed cloud call says what happened.** `not_signed_in` only for a sign-in problem (a revoked or expired store sign-in says `npx -y summer-engine login --store --force`); `forbidden` when Summer refuses the account (for example an unconfirmed email). `unavailable` when nothing reached Summer's hosted server (no connection, the sign-in server down, a 503), or when a read or a dry run was cut off: it is safe to try again. `outcome_unknown` when a change was cut off after it was sent, because it may have run: call it again only with the same `idempotencyKey`, or check first. `--wait` keeps the job id when a wait does not get through. This holds for `summer_call`, the hosted direct tools and `summer <area> <action>`.
58
+ - **Approvals.** A change that needs a person answers `needs_approval` with a link (`https://www.summerengine.com/studio/approvals/<id>`) and changes nothing until they approve; `jobs.wait` follows it to the end. Today that covers publishing a game (Summer Games asks the game's owner), price, sale and A/B test changes, member changes, deletes and anything that contacts people. Studio > Settings > Agent permissions lists the defaults; you can change them soon.
59
+ - **`summer <area> <action> --field value`** (left out with `SUMMER_SURFACE=v3`). The CLI view of the same catalog, with `--dry-run`, `--wait` (follows a job or an approval to the end) and `--json`. It also adds `summer whoami`, `summer ops search <words>` and `summer ops describe <op>`.
60
+ - **Generated files land on this machine again.** On the v4 surface and in the v4 CLI, `assets.generate_image`, `generate_audio`, `generate_3d`, `generate_video`, `generate_motion`, `assets.get` and `jobs.wait` take `out`: a folder or a file path (`res://` in a Godot project). The package keeps it (Summer's server never sees it), downloads each file the answer names and adds `localPath` beside its URL. 3D, video and animation save when `jobs.wait` sees the job finish, also after an approval. Without `out`, a generation in the assets profile or the CLI saves into the project's asset folder: Godot `assets/`, Unity `Assets/Summer`, Unreal `Content/Summer`, three.js `public/assets`. `assets.get` saves only with `out`, and sessions with engine tools save only with `out`, because `summer_import_asset_by_id` already puts the file in the project. A save never overwrites a file (it takes the next free name and says so), writes only media and model file types (never `.cs` or `.dll`), keeps `res://` inside the project, downloads only from public https hosts, up to 500 MB. Whatever is not saved is a warning; the answer stays as it was.
61
+ - **The assets profile on 4.0.** `summer mcp --profile assets` (what `summer setup <agent> --assets-only` writes) lists Summer's hosted asset reads and generators, jobs and `whoami` as direct tools, plus `summer_search`, `summer_call` and the docs tools, and its instructions name only tools it lists. Generators run on Summer's hosted server by their 4.0 names; a 3.x generator name called through `summer_call` still runs the local 3.x tool.
62
+ - **Skills use the 4.0 names.** The asset, publishing, plans, Summer Apps and Studio skills name the operations (`assets.generate_image`, `store.publish`, `plans.create`, `apps.call`, `studio.open`), every skill and reference names the docs tools `summer_docs_search` and `summer_docs_read`, and the asset skills save files with `out`. `validate:library` fails when a skill or reference names a 3.x docs tool. Engine tools keep their names.
63
+ - **The docs describe 4.0.** README, AGENTS.md and `docs/` now say how to connect (one hosted URL and one sign-in for cloud work, the local server for engine work), how agents call Summer (operations, `summer_search` and `summer_call`, one answer shape and its error codes, 3.x names that keep working), what an agent may do on its own (Agent permissions, approvals, Agent activity), how credits and auto top-up work, the two store versions for ChatGPT and Claude's connector directory, and the `summer <area> <action>` CLI.
64
+ - **`summer_run_script` takes `scenePath` and is stable.** The script runs against the scene you name: Summer opens it first (on its own, never in a batch with an edit), runs the script, then opens the scene you were looking at again. If the scene cannot be opened, the script does not run. The result says what happened in `scene_target`. Without `scenePath` it runs against the open scene, as before.
65
+ - **Engine operations in the 4.0 catalog.** Every engine tool keeps its 3.x name and is now an operation with a title, a summary of 300 characters or fewer, its effect and an example (`src/core/ops/engine.ts`). On the v4 surface each engine tool lists that summary plus a pointer to its full guide, its hints come from its effect, and it answers in the one answer shape: `{ok, status, result}`, or one error code with one next step (`engine_not_running` says to open the project, instead of plain text). The v4 engine tools list takes about half the tokens of the 3.x one.
66
+ - **Each engine tool has a guide.** `summer_docs_read` with id `tool/<slug>` now also returns the tool's full how-to (`library/tools/<slug>/GUIDE.md`, the text the 3.x MCP description carries). `npm run generate:tool-guides` keeps the two the same.
67
+ - **Reads split from changes.** `summer_camera_bookmark` becomes `engine.list_camera_bookmarks` (read), `engine.save_camera_bookmark` and `engine.delete_camera_bookmark`; `summer_ui_actions` becomes `engine.list_ui_actions` (read) and `engine.invoke_ui_action`. On the v4 surface each is its own tool; the 3.x tools stay as they are.
68
+ - **`summer_call` for engine operations**: a dry run checks the input without the engine, `ops.describe` answers for local operations here, and a bad input points at the tool's guide.
69
+ - **Skills teach one script for multi-step scene work.** 28 code blocks in 23 skills chained 4 to 15 single scene edits (`summer_add_node`, `summer_set_prop`, ...), 197 calls in all; each is now one `summer_run_script` call with `scenePath` (the kit-placement example is one `summer_batch`). `scene-scripting` is stable and under 200 lines, with the extended ctx API and the recipes in its `references/`. AGENTS.md, `/summer`, `using-summer`, `make-game` and the agent playbook say it once each: 3 or more scene edits are one `summer_run_script` with `scenePath`. 46 script lines in 10 skills that wrote `var x := ctx.…` (which does not compile: `ctx` is untyped) now write `var x = ctx.…`. `validate:library` fails on a code block with 4 or more single scene edits (unless the line before it says why with `<!-- single-edits-ok: … -->`) and on `:= ctx.`.
70
+ - **The operation contract.** `registry/schemas/operation.schema.json` describes an operation (name, effect, approval, input, output), and `registry/operations/legacy-names.json` maps every 3.x tool name to its operation (`summer_set_prop` is `engine.set_prop`, `summer_store_submit` is `store.publish`). Conformance fixtures sit next to it.
71
+ - **Official MCP Registry.** `package.json` names the server `io.github.SummerEngine/summer` (`mcpName`), and the generated `server.json` lists the npm package and the hosted server. The name keeps the GitHub org's own case, because the registry matches it exactly against the org.
72
+ - **The hosted 3.x tools ask for 3.x.** The local server mounts Summer's hosted 3.x tools (the 3.x surface and the legacy toolset), and `summer tool` and `summer doctor` call them, with `?surface=v3`, so they keep their 3.x names when Summer's hosted server serves 4.0 by default.
73
+ - `summer doctor` checks for the tools of the surface `summer mcp` will serve (`summer_search` and `summer_call` on v4).
74
+ - The per-call usage line also says which operation the call ran, the surface (`v3` or `v4`) and the profile. It never sends arguments or results.
75
+
76
+ ### Also in this release
77
+
78
+ - **Setup never pins an older release.** When the CLI that runs `summer setup` was newer than npm `latest`, setup wrote `summer-engine@next` into the agent's MCP entry. `next` had stayed on 3.1.0, so the agent ran a release from September and silently lost `--assets-only`, `--profile` and every newer option. Setup now writes `next` only when `next` is this exact version; otherwise it pins this exact version (for example `summer-engine@4.0.0`), and a build that is not on npm keeps `latest` and says to use `--local-dev`. `--channel` (and `SUMMER_CHANNEL`) accepts an exact version, and the refresh command `summer doctor` prints follows the same rule.
79
+ - The release steps (`docs/NPM_PUBLISH_QUICK_COMMANDS.md`) now point `next` at every new `latest` release and create the `v<version>` tag and GitHub Release from the CHANGELOG.
80
+ - The `summer` banner no longer prints colour codes when `NO_COLOR` is set or the output is not a terminal (a log, a pipe, an agent's shell).
81
+ - `summer setup notanagent` now says the agent name is unknown and lists the supported ones.
82
+ - `summer setup codex` writes the MCP entry to `$CODEX_HOME/config.toml` when `CODEX_HOME` is set, where Codex reads it.
83
+ - `summer setup <agent>` without `--yes` says to run it again with `--yes` to install the skills, instead of printing an internal command.
84
+ - `summer setup` prints the first few installed skill names and how many more, not every name; `--json` still lists them all.
85
+ - `summer_open` is marked as reaching outside the machine (`openWorldHint`), because it opens summerengine.com pages in the browser.
86
+ - **The README starts with Connect.** Summer's hosted server, `https://mcp.summerengine.com/mcp`, comes first, with one install line for Claude Code, Codex, Cursor, VS Code, Devin Desktop and Claude Desktop (plus one-click buttons for Cursor and VS Code), then the local `npx -y summer-engine@latest mcp` server. The assets-only path offers the hosted server too, names the file formats (GLB, PNG, JPG, WebP, MP3, WAV, MP4) and says how to download a file for any engine or web app. The long agent install playbook is folded away on GitHub; agents still read all of it.
87
+ - **The docs describe the shipped product.** Publishing to summer.games and Grow are listed as available, not "preview" and "planned", and the "not promised" note is gone. `tool/export-game`, `tool/publish-build`, `tool/capture-gameplay`, `skill/multiplayer-publish` and `skill/summer-analytics` are stable, and the tool reference lists the hosted store, publishing and Grow tools. (This carries over #97.)
88
+ - **Fixed wrong statements:** `summer login` waits up to 15 minutes, not 120 seconds; AGENTS.md says publishing is `summer_publish_build` and then the owner's approval through `summer_store_submit` (the old creator command is gone); generation tools spend credits when they are called, so the README no longer says Summer never spends without a confirmation; the development guide no longer lists the removed `summer publish` and `summer releases`; the store sign-in files (`oauth-token`, `oauth-client`) are in the `~/.summer/` lists; GEMINI.md uses bare skill names. Every setup guide uses the same paste prompt and installs every skill (`--recommended` is the smaller opt-in set).
89
+ - **`summer doctor` needs Node 20,** the same as the package's `engines` field. It accepted Node 18 before.
90
+ - **Community files:** CONTRIBUTING.md, SECURITY.md (report privately through GitHub), CODE_OF_CONDUCT.md, issue forms for bugs and library entries, and a pull request template.
91
+ - **CI** also builds and runs the CLI on macOS and Windows (Node 22) and on Node 20, runs with read-only permissions, and drops the old `v3-foundation` branch and the example-eval step that only printed SKIP.
92
+ - **Fewer skills in every session.** The library-author skills (`skill-create`, `skill-improve`, `skill-test`, `writing-skills`) and the six research digests (`celeste-momentum-platforming`, `godogen-visual-proof-game-generation`, `lumera-single-image-scene-reconstruction`, `realtime-wet-surfaces`, `psx-retro-rendering`, `skintokens-auto-rigging`) no longer install with `summer setup` or the plugins. They stay in the library: `summer_docs_search` finds them, `summer_docs_read` reads them, and `summer skills install <name>` still installs one. Copies from an earlier setup stay until you delete them. A new `bundled: false` field in a skill's `resource.yaml` does this.
93
+ - **Skill descriptions fit the hosts again.** Hosts put every installed skill's description into every session and cut what does not fit. The installed descriptions now total about 11,500 characters, down from about 17,300, and `npm run validate:library` fails when they pass 12,000. Library search ranks the same on the routing eval.
94
+ - **Skill links work after install.** `summer setup` copies each skill folder alone, so 40 links like `../../references/mcp-tools-reference/mcp-tools-reference.md` (and 4 links into other skills' folders) were dead in the default install. They now name the library id to read (`summer_docs_read` id `reference/mcp-tools-reference`), and `validate:library` rejects any path that climbs out of a skill folder.
95
+ - **Call examples are complete.** 65 call examples in ui-basics, 3d-lighting, design-level, design-npc, game-feel, art-direction and summer-apps left out a required argument, mostly `scenePath`, which the tool rejects. Each now passes it. `validate:library` checks every `summer_*` call example in the skills against the tool's `input_schema` (required arguments present, no unknown ones) and prints how many it checked.
96
+ - **Errors carry a stable code.** When the engine is not running, the person is not signed in, the account has no credits or a Summer service cannot be reached, every tool now answers `{ok: false, code, error, recovery}`: `code` is `engine_not_running`, `not_signed_in`, `no_credits` or `unavailable`, the same codes the 4.0 tools use, and `recovery` is the one next step. The fields each tool sent before (`message`, `hint`, `status`) are still there. Generation, job, asset and Summer Apps tools used five different sign-in answers; they now use this one. The store sign-in keeps its own code, `store_login_required`.
97
+ - **The engine-down answer works.** It told agents to run `npx -y summer-engine@latest run`, which fails without a project path. It now says to open the project in Summer Engine or run `summer run <project-path>`, and no longer shows token-file details. `summer tool` prints the same fields as JSON (exit 1) instead of saying "not running" twice.
98
+ - **Network errors keep their cause.** "fetch failed" now says why, for example `connect ECONNREFUSED 127.0.0.1:443`, in the message and in `details.cause`.
99
+ - `summer_list_my_assets` no longer says "Asset search requires an account" when you are not signed in.
100
+ - **3D and motion generation return a job id at once.** `summer_generate_3d` and `summer_generate_motion` used to hold the agent for up to 10 minutes while the job ran. They now return the `jobId` within seconds, the same as Summer's hosted server, with a `next` line that says to poll `summer_check_job` until the status is `completed`. `wait: true` still blocks for scripts that cannot poll. `summer tool generate-3d` and `summer tool generate-motion` work the same way.
101
+ - **The assets profile no longer points at engine tools.** With `--profile assets` (and `summer setup --assets-only`), `summer_get_agent_playbook`, the `summer_agent_playbook` prompt and `summer_start_game_task` told the agent to call `summer_get_project_context`, add nodes, play and take screenshots, none of which that profile has. They now answer with a no-engine version: ask what the asset is for, reuse before generating, confirm the spend, wait for the job, check the preview, and hand the file over with `summer_get_asset_download_url` (or `out` on `summer_generate_image`). The plan only names tools and skills the profile has, and says when a task needs the full setup instead.
102
+ - **A session skill for the assets path.** The new `summer-assets` skill replaces `using-summer` in the assets-only install: what the session has, the loop, the file formats, and when an asset is done. `store-art` (Summer Games store art) left that install too.
103
+ - **Every asset skill says what to do without Summer Engine.** The 23 skills in the assets-only install each have a short "Without Summer Engine" section: which steps to keep, which import and scene steps to skip, and how to hand the file over. A test fails when an asset skill has none.
104
+ - `summer skills install --assets` (and `setup --assets-only`) no longer copies the Claude Code commands `/start`, `/summer` and `/gameskill`, which start and route engine work.
105
+ - `summer_store_tools` names the tools it loads in the current profile (the Tool Factory and asset editing tools in `assets`, the store and publishing tools in `engine`) and carries its own tool hints and title.
106
+ - `generate-motion` and `text-to-motion` no longer say `wait: true` is the default.
107
+
108
+ ## [3.9.1] - 2026-10-15
109
+
110
+ Not published to npm: these changes ship in 4.0.0.
111
+
112
+ 3.9.0 was not published to npm; 3.9.1 is the first release with everything in 3.9.0 below, plus these changes.
113
+
114
+ The Claude Code plugin gets a first-run guide and Summer's hosted server, and passes `claude plugin validate --strict`.
115
+
116
+ - **`/summer:start`.** A new command for the first run: it checks what is on the machine, signs the user in, and gets a first game playing in about five minutes, from a template that already plays or from a board of concept art Summer draws in the chat (the hosted `summer_make_game`), built in the Summer Engine desktop app.
117
+ - **Two MCP servers in the plugin.** `summer-engine` (the desktop bridge, as before) and the new `summer-cloud`, Summer's hosted server at `https://mcp.summerengine.com/mcp`, for people without the desktop app or Node. Sign in once with `/mcp`. Codex, Cursor and Factory keep the one local server.
118
+ - **The session-start hook never waits.** It no longer runs `summer doctor` (npm registry, engine probe, MCP boot); it reads local files only and returns in well under a second. On a machine without Summer it tells the agent to suggest `/summer:start`.
119
+ - **Clean manifests.** The Claude plugin and marketplace manifests carry only documented fields (no `_generated` banner, no Codex-only fields), plus the directory listing fields (icon, documentation, support, privacy and terms links). The plugin no longer names `hooks/hooks.json` (its default location) or declares the pre-commit doctor option, which opened a settings dialog on enable; `SUMMER_PRE_COMMIT_DOCTOR=1` still turns that hook on. The repo's own `CLAUDE.md` moved to `.claude/CLAUDE.md`, because a `CLAUDE.md` at the plugin root fails the strict check.
120
+ - README and `docs/CLAUDE_CODE.md` show the one-line plugin install: `/plugin install summer --marketplace summerengine/summer`.
121
+ - The once-per-session usage line now names your agent app (the name it sent in the MCP handshake) and goes out on the first tool call of any kind, not only the first engine tool. `SUMMER_NO_TELEMETRY=1` or `DO_NOT_TRACK=1` still turns it off.
122
+
123
+ ## [3.9.0] - 2026-10-14
124
+
125
+ One sign-in for every Summer tool, tool profiles that fit every agent, shorter tool results, and Summer sees which agent app made each request.
126
+
127
+ - **Summer sees which agent app made each request.** Every request to Summer's servers (generation, jobs, assets, Summer Apps, the store upload, the hosted Summer Engine MCP, library search and the usage line) now carries the agent app's id (`X-Summer-Agent-Host`, for example `claude-code`), the name and version the app sent in the MCP handshake, and the tool that made the request (`X-Summer-MCP-Tool`). Before, the app was never sent. Outside an MCP session (`summer tool`, `summer login`) the id comes from the agent's environment; `SUMMER_AGENT_HOST` overrides it. `SUMMER_NO_TELEMETRY=1` or `DO_NOT_TRACK=1` removes these headers and keeps only the CLI's own name and version.
128
+ - **One sign-in.** `summer login` now signs you in to your Summer account and then, in the same browser, to the store, publishing and Grow tools: one Allow click, or none if this machine was approved before. Before, that took a second `summer login --store`. If the store step does not finish within 3 minutes, your account sign-in is kept and `summer login --store` adds the store later. `summer login --no-store` skips the store step; `summer login --store` still runs it alone.
129
+ - **Every tool says what it does.** Each local MCP tool now carries `readOnlyHint`, `destructiveHint`, `idempotentHint` and `openWorldHint`, mapped from its `authority` in the library. Agents and apps that ask before a change can let reads run and still ask before an edit, a generation that costs credits, or a publish. A test fails when a tool has no hints.
130
+ - **Agents script runs of scene edits.** The MCP instructions now say: more than 3 scene edits, write one `summer_run_script` (snapshot, script, diff, screenshot). After the 4th single edit in a row (`summer_set_prop`, `summer_add_node`, `summer_remove_node`, ...), the result adds one line that points to `summer_run_script`, then again every 6th.
131
+ - **Tool profiles.** `summer mcp --profile` (env `SUMMER_PROFILE`): `full` is every tool and stays the default, so existing setups do not change. `engine` has the engine, generation and store tools and stays under 128 tools; `summer setup vscode-copilot` now writes it, because VS Code Copilot takes at most 128 tools per request (`--profile full` keeps every tool). `assets` has generation, the asset library, account and library search, and no engine tools. `--toolsets` (env `SUMMER_TOOLSETS`) adds toolsets by name. Engine tools load at start in every profile that has them, and no tool is renamed.
132
+ - **Assets-only setup.** `summer setup <agent> --assets-only` writes the `assets` profile, installs only the asset skills instead of the whole library, and leaves out Summer Games. The README's assets-only path now uses it. `summer skills install --assets` installs the same skills.
133
+ - **Shorter results.** Tool results are compact JSON instead of pretty-printed JSON. Results that can be long (scene and runtime trees, console and debugger reads, inspect reads, library reads) stop at a default size and say so: 4,000 characters, 8,000 for `summer_get_scene_tree`, 24,000 for `summer_read_library`. Pass `maxCharacters` for more. Writes, job ids and file reads are never cut.
134
+ - **Usage reports.** When you are signed in, the MCP server now reports each tool call to Summer: the tool name, whether it worked, how long it took and your agent app's name. Nothing else: no arguments, results, code or file names. `SUMMER_NO_TELEMETRY=1` or `DO_NOT_TRACK=1` turns it off, and now also turns off the once-per-session report.
135
+ - `summer_app_guide` starts with section `overview` by default and answers Markdown text instead of one long JSON line; `all` still returns every section.
136
+ - `summer_app_screenshot` takes `steps` (click a selector, press a declared action, wait) to show a dialog or a second state before the capture, and waits until the app's calls settle.
137
+
5
138
  ## [3.8.0] - 2026-10-13
6
139
 
7
140
  Agents build Summer Apps, team tools inside Summer Studio, and asset-only requests skip the engine.
package/GEMINI.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Summer — Gemini Context
2
2
 
3
- You have the Summer extension installed: the `summer-engine` MCP server plus Summer skills under the `summer:` namespace.
3
+ You have the Summer extension installed: the `summer-engine` MCP server plus the Summer skills, each under its bare slug (`using-summer`, `fps-controller`).
4
4
 
5
5
  The full agent guide lives in `AGENTS.md`, next to this file — trust, the six library kinds, how to search the registry index, the critical engine rules, and the verification ladder. Read it before working.
6
6
 
@@ -8,5 +8,5 @@ The full agent guide lives in `AGENTS.md`, next to this file — trust, the six
8
8
 
9
9
  Gemini-specific notes:
10
10
 
11
- - Activate skills via `activate_skill`. Start every Summer Engine session with `summer:using-summer`.
12
- - If skills aren't loading or the MCP server fails: `npx -y summer-engine@latest setup gemini --yes --force`, then `npx -y summer-engine@latest doctor`.
11
+ - Activate skills via `activate_skill`. Start every Summer Engine session with `using-summer`.
12
+ - If skills aren't loading or the MCP server fails: `npx -y summer-engine@latest setup antigravity --yes --force` (Antigravity), or `npx -y summer-engine@latest setup gemini --yes --force` for this Gemini CLI extension (a legacy target that still works), then `npx -y summer-engine@latest doctor`.
package/README.md CHANGED
@@ -1,15 +1,15 @@
1
- # Summer: MCP server, CLI and skills for Summer Engine
1
+ # Summer Engine: MCP server, CLI and skills
2
2
 
3
3
  <div align="center">
4
4
 
5
5
  <img src="docs/brand/sun.png" alt="" width="128">
6
6
 
7
- ### Let any AI coding agent build games in Summer Engine.
7
+ ### The game engine built for AI.
8
8
 
9
- **MCP server · game-dev skills · `summer` CLI. One npm package: `summer-engine`.**
9
+ **Any agent builds, tests and publishes a full multiplayer game. MCP server · game-dev skills · `summer` CLI, in one npm package: `summer-engine`.**
10
10
 
11
11
  [![npm](https://img.shields.io/npm/v/summer-engine?label=npm&color=f7b731)](https://www.npmjs.com/package/summer-engine)
12
- [![downloads](https://img.shields.io/npm/dm/summer-engine?label=installs&color=f7b731)](https://www.npmjs.com/package/summer-engine)
12
+ [![downloads](https://img.shields.io/npm/dm/summer-engine?label=downloads&color=f7b731)](https://www.npmjs.com/package/summer-engine)
13
13
  [![license](https://img.shields.io/badge/license-MIT-1a1a1a)](LICENSE)
14
14
 
15
15
  [**Website**](https://www.summerengine.com) · [**Docs**](https://docs.summerengine.com) · [**CLI setup**](https://www.summerengine.com/cli) · [**MCP setup**](https://www.summerengine.com/mcp)
@@ -18,13 +18,40 @@
18
18
 
19
19
  ---
20
20
 
21
+ ## Install
22
+
23
+ - **Chat apps** (Claude, ChatGPT, Cursor...): add `https://mcp.summerengine.com/mcp`. Nothing to install.
24
+ - **Homebrew:** `brew install summerengine/tap/summer`
25
+ - **npm** (Node 20+): `npm install -g summer-engine`
26
+
27
+ **CLI only** (summer-engine 4.2.0 or newer), no MCP server: `summer setup --cli`. `summer ops search "publish my game"` finds any operation, signed in or not.
28
+
29
+ ## Connect
30
+
31
+ **Cloud work: `https://mcp.summerengine.com/mcp`.** Nothing to install. Add the URL to your agent and sign in to your Summer account once. Your agent then makes assets (images, 3D models, motion, sound effects, music, voices, video), searches and downloads your Summer asset library, plans games, and runs your projects, the store, publishing, prices, analytics, A/B tests, your team and Studio. It has no engine tools: for those, use the local server below.
32
+
33
+ | Agent | Add the hosted server |
34
+ |---|---|
35
+ | Claude Code | `claude mcp add --transport http summer-cloud https://mcp.summerengine.com/mcp`, then `/mcp` to sign in |
36
+ | Codex | `codex mcp add summer-cloud --url https://mcp.summerengine.com/mcp`, then `codex mcp login summer-cloud` |
37
+ | Cursor | [Add to Cursor](https://cursor.com/install-mcp?name=summer-cloud&config=eyJ1cmwiOiJodHRwczovL21jcC5zdW1tZXJlbmdpbmUuY29tL21jcCJ9), or add `"summer-cloud": {"url": "https://mcp.summerengine.com/mcp"}` under `mcpServers` in `~/.cursor/mcp.json` |
38
+ | VS Code | [Add to VS Code](https://vscode.dev/redirect/mcp/install?name=summer-cloud&config=%7B%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Fmcp.summerengine.com%2Fmcp%22%7D), or `code --add-mcp '{"name":"summer-cloud","type":"http","url":"https://mcp.summerengine.com/mcp"}'` |
39
+ | Devin Desktop (formerly Windsurf) | add `"summer-cloud": {"serverUrl": "https://mcp.summerengine.com/mcp"}` under `mcpServers` in `~/.config/devin/mcp_config.json` (Windows `%APPDATA%\devin\mcp_config.json`) |
40
+ | Claude Desktop, claude.ai | Settings > Connectors > Add custom connector, then paste the URL |
41
+
42
+ **Engine work: `npx -y summer-engine@latest setup <agent> --yes`** (needs Node 20+). It writes the local server (`summer mcp`) into your agent's config with the skills. The local server drives the Summer Engine app on your machine: build scenes, write scripts, play the game, take screenshots, read errors. After `summer login` it also runs every cloud operation, so your agent needs one server. Or paste the prompt in [Get started](#get-started-one-prompt) and your agent does every step.
43
+
44
+ **CLI only (summer-engine 4.2.0 or newer): `npx -y summer-engine@latest setup <agent> --cli --yes`.** No MCP server: your agent runs Summer as commands in its shell. Setup installs the skills for your agent, with `summer-cli`, the guide to the commands, and writes no MCP entry. Your agent signs you in with `summer login`, finds an operation with `summer ops search "<what you want>"` and runs it as `summer <area> <action> --<field> <value>`, with `--dry-run`, `--wait` and `--json`. Engine commands (`summer engine …`) drive the Summer Engine app on your machine. Each skill ends with a table of the command for every tool it names. Add `--assets-only` for only the asset skills. `--no-mcp` is the same as `--cli`.
45
+
46
+ **ChatGPT and Claude's connector directory** use two reviewed store versions with a fixed tool list: `https://mcp.summerengine.com/chatgpt` (games, assets and generation; no publishing, no billing links) and `https://mcp.summerengine.com/directory` (the store, publishing and Grow reads; no image, 3D, audio or video generation). They keep their 3.x tool names and have no `summer_search` or `summer_call`. For everything else, use `/mcp`.
47
+
21
48
  ## What this is
22
49
 
23
- [Summer Engine](https://www.summerengine.com) is a desktop game engine. This repo connects your AI coding agent (Claude Code, Cursor, Codex, Copilot and many more) to it, the way an MCP server for Blender connects an agent to Blender, but for making whole games.
50
+ [Summer Engine](https://www.summerengine.com) is the game engine built for AI. This repo connects your AI coding agent (Claude Code, Cursor, Codex, Copilot and many more) to it: the agent builds a whole game in the engine, tests it, publishes it to [summer.games](https://summer.games) and reads how players play it.
24
51
 
25
52
  | Part | What it does |
26
53
  |---|---|
27
- | **MCP server** (`summer mcp`) | Tools your agent calls to drive the running editor: build scenes, write scripts, play the game, take screenshots, read errors. |
54
+ | **MCP server** (`summer mcp`) | Tools your agent calls to drive the running editor: build scenes, write scripts, play the game, take screenshots, read errors. After `summer login` it also runs the cloud operations: assets, plans, the store, publishing, prices and analytics. |
28
55
  | **Skills** | Game-dev know-how your agent loads: movement, combat, multiplayer, VFX, audio, UI, level design and more. |
29
56
  | **CLI** (`summer`) | Installs the engine, signs you in, sets up your agent, creates projects from templates and publishes games. |
30
57
 
@@ -34,13 +61,30 @@ With Summer installed, your agent can:
34
61
 
35
62
  - **Build real games**: scenes, scripts, physics and UI, through live MCP tools.
36
63
  - **Build multiplayer games** on Summer's own networking: matchmaking, parties, leaderboards, player data and world saves.
37
- - **Add analytics** to see how players play.
38
- - **Publish games** to the [summer.games](https://summer.games) store.
64
+ - **Add analytics** to the game and read it back: store page views, launches, play sessions, play time and your own events.
65
+ - **Publish games** to the [summer.games](https://summer.games) store: the store page, art, the build, a private preview link and the release. Summer's store review runs before anything goes live.
39
66
  - **Use proven recipes**: skills, templates and references, all searchable through one index.
40
67
  - **Check its own work**: play the game, take screenshots, read the debugger, press real keys.
41
68
  - **Resume any project**: `.summer/` project memory lets a fresh agent pick up where the last one stopped.
42
69
 
43
- You stay in control of every change and release. Summer never publishes, installs, or spends without your explicit confirmation, and library entries are structurally prevented (by a capability lint in CI) from instructing agents to touch the network, credentials, or package managers.
70
+ ### You decide what your agent may do
71
+
72
+ Studio > Settings > Agent permissions has six switches. They apply to every app you connect, like Claude or ChatGPT. These defaults apply now. You can change them soon. Until then, Summer Games still asks the game's owner before an agent publishes, and price, A/B test and member changes ask you first.
73
+
74
+ | Switch | Default | What the agent may do without asking |
75
+ |---|---|---|
76
+ | Make and build | on | Edit drafts, scenes, plans and uploads, and start builds. |
77
+ | Spend credits | on | Generate assets and run paid builds, within your credits and your auto top-up limit. |
78
+ | Publish | on | Publish store pages, versions and releases. Summer's store review still runs first. |
79
+ | Prices and live changes | on | Change prices and sales, start or stop A/B tests, change member roles. |
80
+ | Delete for good | off: asks | Delete games, assets, pages and releases. |
81
+ | Contact people | off: asks | Send invites and other emails to real people. |
82
+
83
+ When a switch is off, the agent asks you first. It gives you a link (`https://www.summerengine.com/studio/approvals/<id>`), and an open Studio tab shows the request with Approve and Decline. Nothing changes until you approve. The agent always asks before it changes agent permissions or auto top-up, enters a jam, or changes the analytics event limit. Studio > Settings > Agent activity lists what agents changed or asked for, newest first, with Undo for prices, sales, country prices, member roles, team names and the event limit.
84
+
85
+ Generation and paid builds spend your Summer credits. Turn on auto top-up in Studio Billing: when your credits fall below an amount you pick, Summer adds the amount you choose, up to a monthly limit you set. Agents can never change auto top-up on their own. When credits run out, your agent gets the error `no_credits` with one link: https://www.summerengine.com/studio/credits.
86
+
87
+ Summer never installs software without your explicit confirmation. Library entries are structurally prevented (by a capability lint in CI) from instructing agents to touch the network, credentials, or package managers.
44
88
 
45
89
  ## Get started: one prompt
46
90
 
@@ -61,21 +105,34 @@ In most agents (Claude Code, Codex, Cursor, GitHub Copilot (VS Code, CLI, JetBra
61
105
 
62
106
  Then ask the agent to build something.
63
107
 
108
+ ### Claude Code: the Summer plugin
109
+
110
+ In Claude Code, type:
111
+
112
+ ```text
113
+ /plugin install summer --marketplace summerengine/summer
114
+ ```
115
+
116
+ Then type `/summer:start`. It signs you in and gets a first game playing in about five minutes: from a template that already plays, or from a plan of concept art Summer draws for your idea right in the chat, built in the Summer Engine desktop app. The plugin brings Summer's skills and two MCP servers: `summer-engine` drives the desktop app (needs Node), and `summer-cloud` is Summer's hosted server (sign in once with `/mcp`). Use the plugin or `summer setup claude-code`, not both: they install the same skills.
117
+
64
118
  ### Only want assets?
65
119
 
66
- Sound effects, music, voices, images, 3D models and video are made on Summer's servers, so you do not need the Summer Engine app for them. Paste this instead:
120
+ Sound effects, music, voices, images, 3D models, motion and video are made on Summer's servers, so you do not need the Summer Engine app for them. The quickest way is the hosted server in [Connect](#connect): no Node, no install. To get the asset skills too, paste this instead:
67
121
 
68
122
  > Connect Summer to this agent so I can make game assets. Read github.com/summerengine/summer, connect yourself to Summer and log me in. Skip the Summer Engine app and the starter project, I only want assets.
69
123
 
70
- The agent installs the skills and the MCP config and signs you in. It does not download the engine. Each asset lands in your Summer library, so a game project (in Summer Engine or anywhere else) can use it later.
124
+ The agent installs the asset skills and the MCP config (summer-engine 4.0.0 or newer) and signs you in. It does not download the engine. Each asset lands in your Summer library as a normal file: GLB for 3D models, PNG, JPG or WebP for images, MP3 or WAV for audio, MP4 for video. The agent saves each file into your project (your engine's asset folder, or the folder you name), so any engine or web app can use it.
71
125
 
72
126
  ---
73
127
 
74
128
  ## AGENTS READING THIS: install playbook
75
129
 
130
+ <details>
131
+ <summary>The step-by-step install playbook your agent runs (humans can skip it)</summary>
132
+
76
133
  You are an AI coding agent. The user told you to install Summer Engine. **Run this playbook via your shell**: Bash on macOS/Linux or PowerShell on Windows. Detection first, then only install what's missing. (Once installed, your working guide is [`AGENTS.md`](AGENTS.md).)
77
134
 
78
- **Assets only.** If the user only wants assets (sound effects, music, voices, images, 3D models, video), not a game built in Summer Engine, or tells you to skip the engine: run Step -1, Step 0, Step 1 with `--no-games` added (Summer Games is for playing with friends, and leaving it out saves a second sign-in), and Step 3, then stop installing. Skip Step 2 (the engine download), Step 5 and Step 6. On this path the doctor warnings for `engine-install` and `local-api` are expected; leave them. The asset tools (`summer_generate_audio`, `summer_generate_sfx_choices`, `summer_generate_image`, `summer_generate_3d`, `summer_generate_video`, `summer_search_assets`) run on Summer's servers and need only the login. Most agents load a new MCP server only after a restart. Until then, call the same tool from the shell: `npx -y summer-engine@latest tool <slug> --args '<json>'` (`summer tool --list` prints the slugs). For example, three versions of one sound for the user to pick from: `npx -y summer-engine@latest tool generate-sfx-choices --args '{"text":"sword clash"}'`. Each asset lands in the user's Summer library.
135
+ **Assets only.** If the user only wants assets (sound effects, music, voices, images, 3D models, video), not a game built in Summer Engine, or tells you to skip the engine: run Step -1, Step 0, Step 1 with `--assets-only` added, and Step 3, then stop installing. `--assets-only` writes the `assets` tool profile (generation and asset tools, no engine tools), installs only the asset skills, and leaves out Summer Games (it is for playing with friends, and leaving it out saves a sign-in). Skip Step 2 (the engine download), Step 5 and Step 6. On this path the doctor warnings for `engine-install` and `local-api` are expected; leave them. The asset operations (`assets.generate_audio`, `assets.generate_sfx_choices`, `assets.generate_image`, `assets.generate_3d`, `assets.generate_video`, `assets.search`) run on Summer's servers and need only the login. Most agents load a new MCP server only after a restart. Until then, run the same operation from the shell: `npx -y summer-engine@latest <area> <action> --<field> <value>` (`summer ops search <words>` finds one and its input). For example, three versions of one sound for the user to pick from: `npx -y summer-engine@latest assets generate-sfx-choices --text "sword clash"`. Each asset lands in the user's Summer library; `out` (a folder or a file path) on the call saves it on this machine and the answer gives `localPath`, and `assets.get` returns a `downloadUrl` for use outside Summer Engine.
79
136
 
80
137
  **Windows PowerShell: type `npx.cmd` wherever this playbook says `npx`.** Plain `npx` in PowerShell runs `npx.ps1`, which Windows blocks by default ("running scripts is disabled on this system"). `npx.cmd` is the same command without that block. Never change the execution policy or turn off Windows Defender to work around it. Bash (including Git Bash on Windows) can use plain `npx`.
81
138
 
@@ -139,7 +196,7 @@ Replace `claude-code` with the user's actual agent: `claude-desktop`, `codex`, `
139
196
 
140
197
  **First-install detection:** if `~/.claude/skills/` didn't exist before this command, Claude Code wasn't watching it and won't auto-detect the new files this session. Tell the user **once**: "Skills installed - restart your agent so they load." On subsequent installs (directory already existed), skills auto-detect mid-session and no restart is needed. **You can detect first-install vs upgrade by checking if `~/.claude/skills/` existed before Step 1; record the result before running setup.**
141
198
 
142
- **Do NOT run `/plugin install` or any slash command.** The CLI is the supported install path; the plugin marketplace is only for users who ask for it.
199
+ **Do NOT run `/plugin install` or any other slash command.** An agent cannot type them; this playbook installs through the CLI. The Claude Code plugin (above) is the user's own one-step choice. If the user already installed it, skip Step 1: the plugin and `summer setup` install the same skills.
143
200
 
144
201
  ### Step 2: Install the engine app (only if `engine-install` needs attention)
145
202
 
@@ -159,7 +216,7 @@ npx -y summer-engine@latest install
159
216
  npx -y summer-engine@latest login
160
217
  ```
161
218
 
162
- This opens the user's default browser. **Tell the user**: "Your browser is opening now. Click sign-in once and come back to this terminal." The CLI waits up to 120 seconds for the sign-in, checks the returned identity, and stores the session in `~/.summer/`, which the engine shares. **If the user takes longer than 120 seconds, re-run `npx -y summer-engine@latest login` once and tell them to come back to the terminal quickly.** Don't loop.
219
+ This opens the user's default browser for one sign-in that covers every Summer tool: first the Summer account ("Yes, Sign In"), then, in the same browser, a "Welcome to Summer CLI" page for the store, publishing and Grow tools (one Allow click; none if this machine was approved before). **Tell the user**: "Your browser is opening now. Sign in, click Yes, Sign In, then Allow on the next page, and come back to this terminal." The CLI checks the returned identity and stores the session in `~/.summer/`, which the engine shares. If the store step does not finish within 3 minutes, the account sign-in is still saved; `summer login --store` adds the store later. Don't loop.
163
220
 
164
221
  ### Step 4: Re-run doctor to confirm
165
222
 
@@ -206,7 +263,7 @@ Once `local-api` is `ok`, MCP tools are safe to call.
206
263
 
207
264
  ### Step 6: Brainstorm the game, then build
208
265
 
209
- Now you have skills + MCP. **Don't jump into `summer create` content from a vague prompt**. Call `summer_start_game_task` with the user's goal, then invoke the recommended skill. For vague "make a game" requests, that should usually be the `brainstorm-game` skill (installed skills are invoked by their bare slug — there is no `summer:` prefix). It scopes mechanics, art direction, and the V1 cut list, and writes the result to `.summer/GameSoul.md`. Every other Summer skill reads from that file.
266
+ Now you have skills + MCP. **Don't jump into `summer create` content from a vague prompt**. Plan the task first: `summer_call` with `{"op": "docs.plan", "input": {"goal": "<the user's goal>"}}` (from a shell: `summer plan <goal>`), then invoke the recommended skill. For vague "make a game" requests, that should usually be the `brainstorm-game` skill (installed skills are invoked by their bare slug — there is no `summer:` prefix). It scopes mechanics, art direction, and the V1 cut list, and writes the result to `.summer/GameSoul.md`. Every other Summer skill reads from that file.
210
267
 
211
268
  Project memory lives in `.summer/` as readable Markdown. Use `.summer/memory/` for locked facts that should not drift across sessions, such as character voice IDs, world canon, and provider bindings. Users can inspect it with `summer memory`; agents should read relevant memory surfaced by `summer_get_project_context` before changing creative/audio/dialogue/level/character work.
212
269
 
@@ -225,13 +282,15 @@ Only skip brainstorm if the user explicitly said "skip brainstorm" or "just buil
225
282
  - **Don't drop `@latest` from the npx commands.** `npx -y summer-engine` (no version pin) serves whatever's in npx's local cache, which can be a stale older version. The `@latest` tag forces npm to re-resolve from the registry. If a user reports "unknown command 'doctor'" or sees a much smaller skill list than expected, they got cache-served. Tell them to run `npx clear-npx-cache` then retry with `@latest`.
226
283
  - **Don't call MCP tools (`summer_get_scene_tree`, etc.) until `local-api` is `ok`.** The engine takes a few seconds to boot after `summer run`. Use Step 5b's wait-loop.
227
284
  - **Don't `summer create` without `cd`'ing to a stable parent directory first.** It writes into CWD; agents that start in a temp dir will leave the project there.
228
- - **Don't loop `summer login` if it times out at 120s.** Re-run it once and tell the user to be quicker; loop forever and the user is stuck.
285
+ - **Don't loop `summer login` if it times out.** It waits up to 15 minutes for the account sign-in. Re-run it once and tell the user to finish "Yes, Sign In" in the browser tab it opens; loop forever and the user is stuck.
229
286
  - **Don't jump straight into `summer create` from a vague prompt.** Invoke the `brainstorm-game` skill first (Step 6). The build skills assume `.summer/GameSoul.md` exists.
230
287
 
231
288
  **Using a different agent?** Use its id from Step 1 (aliases such as `devin`, `agy` and `droid` also work; see the [CLI reference](#cli-reference)). Skill folders vary per agent; the CLI handles the difference, and [`integrations/README.md`](integrations/README.md) documents exactly what gets written where for every client. After install, **Cline users should restart VS Code** so the extension reloads its MCP config. **VS Code Copilot users** should start the `summer-engine` MCP server from Agent mode if VS Code does not autostart it.
232
289
 
233
290
  If the user wants `summer` on their `PATH` for everyday terminal use, a global npm install works too. The agent flow doesn't need it.
234
291
 
292
+ </details>
293
+
235
294
  ---
236
295
 
237
296
  ## The lifecycle: create → test → publish → grow
@@ -240,8 +299,23 @@ If the user wants `summer` on their `PATH` for everyday terminal use, a global n
240
299
  |---|---|---|
241
300
  | **Create** | Available | Scaffold from a pinned template, build scenes and scripts through MCP, generate 2D/3D/audio/video assets, guided by the library. |
242
301
  | **Test** | Available | The verification ladder: compile checks, screenshots, live play with debugger reads, and input-driven probes (`RunVerification`) that press real keys and assert on real frames. |
243
- | **Publish** | Preview | `summer_export_game` exports the game with the installed engine (headless); `summer_publish_build` uploads it to your game's summer.games store listing after you confirm the exact game, file and version (sign in once with `summer login --store`). Nothing is submitted silently. |
244
- | **Grow** | Planned | Analytics, retention and live-ops tooling will arrive as new library entries. Not part of this package yet. |
302
+ | **Publish** | Available | `summer_export_game` builds the store file with the installed engine; `store.upload_file` uploads it after you confirm the exact game, file and version. `store.update_listing`, `store.set_art` and `store.set_trailer` write the store page (text, tags, long description, support contact, release date, art, trailer); `store.preview_link` makes a private preview link; `store.publish` sends the game to Summer's store review; `store.status` shows the review and the releases; `store.release` ships an approved build. With the Publish switch off, the agent asks you first. |
303
+ | **Grow** | Available | `analytics.overview` and `analytics.summary` read store page views, launches, play sessions, play time and your game's own events (see the `summer-analytics` skill). `pricing.*` sets prices, country prices and sales; `experiments.*` runs store page A/B tests; `games.members` and the member operations manage who works on a game; `marketing.*` applies for Summer's growth services. |
304
+
305
+ These are operations on the hosted Summer server; the local server runs them too after `summer login`.
306
+
307
+ ## How agents call Summer
308
+
309
+ Every capability is an operation named `<area>.<action>`: `assets.generate_image`, `store.publish`, `pricing.set_base`.
310
+
311
+ - **Direct tools** cover the common jobs: `summer_` plus the operation name, with `_` for `.` (`games.list` is `summer_games_list`). Engine tools keep their 3.x names (`summer_add_node`, `summer_run_script`, `summer_play`, `summer_screenshot`), and makers keep `summer_tool_<slug>`.
312
+ - **Everything else**: `summer_search` finds the operation for a job you describe in words and returns its exact input. `summer_call` runs it: `{op, input, dryRun?, idempotencyKey?}`.
313
+ - **One answer shape**: `done` with a `result`, `running` with a job (`summer_jobs_wait` waits up to 50 seconds per call), `needs_approval` with a link for you, `dry_run` with a preview, or an error with a `code`, a `message` and exactly one `next` step.
314
+ - **Safe to try**: every change takes `dryRun: true` (it changes nothing and spends nothing; a spend shows your own credit estimate) and an `idempotencyKey`, so a retry never runs twice.
315
+ - **Error codes**: `invalid_input`, `not_signed_in`, `forbidden`, `not_found`, `conflict`, `idempotency_conflict`, `in_progress`, `rate_limited`, `no_credits`, `over_limit`, `engine_not_running`, `engine_lacks_op`, `unsupported`, `not_in_profile`, `moved`, `outcome_unknown`, `unavailable`, `internal`.
316
+ - **3.x names keep working** for all of 4.x: `summer_call` accepts them on every server, `summer mcp --toolsets legacy` lists them on the local server, and the local server lists them by itself while your installed skills are older than 4.0. Its first start after an upgrade refreshes the Summer skills you installed, so after an upgrade the legacy list stays off unless you ask for it. The map from old names to operations is [`registry/operations/legacy-names.json`](registry/operations/legacy-names.json).
317
+
318
+ The same operations run from a shell: `summer <area> <action> --<field> <value>` (for example `summer assets generate-image --prompt "a cozy pixel-art tavern" --aspect-ratio 16:9`), with `--dry-run`, `--wait` (follows a job or an approval to the end) and `--json` (prints the answer only; exit code 0 for any `ok` answer, 1 for an error). `summer whoami` shows who is signed in. `summer ops search <words>` and `summer ops describe <op>` find an operation and its input. Every command that reads something takes `--json`.
245
319
 
246
320
  ## What's in this repo
247
321
 
@@ -259,8 +333,13 @@ summer/
259
333
  ├── registry/ # schemas + generated/ (the compiled index everything reads; never hand-edited)
260
334
  ├── evals/ # evidence the library works: routing, skills, examples, templates, tools, end-to-end
261
335
  ├── integrations/ # one folder per supported agent: what gets installed where
336
+ ├── commands/ # the shipped slash commands (/summer, /gameskill, the plugin's /summer:start)
337
+ ├── hooks/ # lifecycle hooks: session-start orientation, opt-in pre-commit doctor
338
+ ├── assets/ # files the tools ship with: offline API docs, engine-side probe and audit scripts
262
339
  ├── scripts/ # generate-registry (the compiler), validate-library (schema + capability lint)
263
- └── docs/ # development guide, migration notes, design contract
340
+ ├── tests/ # v2 prose behaviour specs (the code tests sit next to the code in src/)
341
+ ├── docs/ # development guide, migration notes, design contract
342
+ └── .claude-plugin/ … # plugin manifests for Claude Code, Codex, Cursor and Factory (generated)
264
343
  ```
265
344
 
266
345
  One rule ties it together: **every entry is described once** (a `resource.yaml` in `library/`), and the registry compiler generates everything else — the searchable index, every agent plugin manifest, the skill installer data, counts, and legacy aliases. CI fails on any drift. See [`docs/design/CONTRACT.md`](docs/design/CONTRACT.md).
@@ -276,7 +355,7 @@ Six kinds of entry, all searchable through the same generated index:
276
355
  - **References** — facts: engine version compatibility, GDScript style, tool references.
277
356
  - **Tools** — the executable capabilities themselves, described in the same registry so agents can discover what they can do.
278
357
 
279
- Agents don't browse folders; they search the compiled index (`registry/generated/index.json`) through `summer_search_library` (or `summer tool search-library`) by summary, use-cases, and facets, then load the hit with `summer_read_library`. IDs are permanent, so feedback and evidence follow an entry across any reorganization.
358
+ Agents don't browse folders; they search the compiled index (`registry/generated/index.json`) through `summer_docs_search` (or `summer tool search-library`) by summary, use-cases, and facets, then load the hit with `summer_docs_read`. IDs are permanent, so feedback and evidence follow an entry across any reorganization.
280
359
 
281
360
  ## The ecosystem
282
361
 
@@ -320,7 +399,7 @@ Official entries land in this repo by PR, gated by schema validation and the cap
320
399
 
321
400
  ## Library feedback
322
401
 
323
- - Agents can report how an entry worked (`summer_library_feedback`): worked / worked with fixes / wrong / outdated / incomplete / did not apply / misrouted. What is sent, in full: the entry ids, one outcome word each, an optional note and deviation (280 characters max, about the entry), the engine version, the agent's self-reported model id, this CLI's version, the host app name/version, a random per-process session id, and — only when logged out — a random install uuid (when logged in, the account token is sent instead). **The schema cannot carry your code, files, or chat.** The very first call on a machine sends nothing and returns a notice; `SUMMER_NO_TELEMETRY=1` or `DO_NOT_TRACK=1` turns it off entirely.
402
+ - Agents can report how an entry worked (`summer_call` with `docs.feedback`): worked / worked with fixes / wrong / outdated / incomplete / did not apply / misrouted. What is sent, in full: the entry ids, one outcome word each, an optional note and deviation (280 characters max, about the entry), the engine version, the agent's self-reported model id, this CLI's version, the host app name/version, a random per-process session id, and — only when logged out — a random install uuid (when logged in, the account token is sent instead). **The schema cannot carry your code, files, or chat.** The very first call on a machine sends nothing and returns a notice; `SUMMER_NO_TELEMETRY=1` or `DO_NOT_TRACK=1` turns it off entirely.
324
403
  - Today those reports land in a write-only mailbox that maintainers read. Only verified outcomes count; popularity never ranks an entry.
325
404
 
326
405
  ## What gets downloaded
@@ -332,13 +411,13 @@ We tell you before we touch your disk.
332
411
  | `summer-engine` npm package (CLI + MCP + library) | ~2 MB download, ~6 MB unpacked | first `npx -y summer-engine@latest ...` call | [npmjs.com/package/summer-engine](https://www.npmjs.com/package/summer-engine) |
333
412
  | Summer Engine app | ~1 GB (engine + bundled Git/runtime tools) | `npx -y summer-engine@latest install` | Summer's signed releases |
334
413
  | Auth token | ~1 KB | `npx -y summer-engine@latest login` | Browser to `~/.summer/auth-token` |
335
- | Store sign-in | ~2 KB | only when you run `summer login --store` | Browser OAuth (PKCE, loopback port 47615-47617) to `~/.summer/oauth-token` with its refresh token, plus this machine's public client id in `~/.summer/oauth-client`; never replaces the auth token |
414
+ | Store sign-in | ~2 KB | `summer login` (right after the account sign-in), or `summer login --store` alone | Browser OAuth (PKCE, loopback port 47615-47617) to `~/.summer/oauth-token` with its refresh token, plus this machine's public client id in `~/.summer/oauth-client`; never replaces the auth token |
336
415
  | Skill files | small, bundled | in the npm package | no extra network call |
337
- | Generated assets (3D / image / audio / video) | varies | only on explicit `summer_generate_*` calls when that provider route is enabled for the account | Summer Engine Studio |
416
+ | Generated assets (3D / image / audio / video) | varies | only on explicit `assets.generate_*` calls | Summer Engine Studio |
338
417
  | URL imports | varies | only on explicit `summer_import_from_url` calls | the URL you provide |
339
418
 
340
419
  Not downloaded, not collected:
341
- - No background telemetry. Diagnostics stay local. The only network report is the opt-out library feedback mailbox described above.
420
+ - No background telemetry. Diagnostics stay local. Two network reports exist, both off with `SUMMER_NO_TELEMETRY=1` or `DO_NOT_TRACK=1`: the library feedback mailbox described above, and, only when you are signed in, a usage line when an MCP session starts and one per tool call (the tool name, success, duration and your agent app's name; never arguments, results, code or file names) with your account token, so Summer can see which tools work in which agents. Requests to Summer's servers (generation, assets, the store) also name your agent app, its version and the tool in headers; the same two variables remove them.
342
421
  - No silent engine updates. `summer install` checks the installed version and asks before replacing it (or needs `--yes`); nothing updates the engine behind your back.
343
422
  - No model weights. AI generation runs in Summer Engine Studio (cloud), never on your machine.
344
423
 
@@ -348,39 +427,40 @@ Not downloaded, not collected:
348
427
  |---|---|---|
349
428
  | **Summer** (this repo: CLI, MCP server, library, integrations) | **MIT** | [summerengine/summer](https://github.com/summerengine/summer) |
350
429
  | **Summer Engine app** (the desktop editor and runtime) | free to download, closed source for now | [summerengine.com/download](https://summerengine.com/download) |
351
- | **Hosted Summer integrations** | availability and terms vary by rollout; preview features are labeled in the CLI | [summerengine.com/pricing](https://summerengine.com/pricing) |
430
+ | **Hosted Summer services** (store, publishing, Grow, multiplayer hosting, AI generation) | run under your Summer account | [summerengine.com/pricing](https://summerengine.com/pricing) |
352
431
 
353
- A command, tool contract, or roadmap entry does not by itself mean a hosted
354
- service is production-ready. Managed publishing, hosting, store submission, and
355
- matchmaking are not promised by this package.
432
+ Publishing to summer.games, multiplayer hosting, matchmaking and Grow are live.
356
433
 
357
434
  ## CLI reference
358
435
 
359
436
  | Command | What it does |
360
437
  |---|---|
361
438
  | `summer install [--yes]` | Download Summer Engine. Prints URL and size first; never replaces an installed engine without confirmation. |
362
- | `summer login` | Browser-based core Summer sign-in. |
363
- | `summer login --store` | Browser sign-in to the Summer store so agents can upload builds (`summer_publish_build`). |
439
+ | `summer login` | One browser sign-in for every Summer tool: your Summer account, then the store, publishing and Grow operations in the same browser. `--no-store` skips the store step. |
440
+ | `summer login --store` | Only the store sign-in (`store.upload_file` and the cloud operations: plans, the store, publishing and Grow). |
441
+ | `summer whoami` | The signed-in account, its plan and credits. |
442
+ | `summer <area> <action> [--<field> <value> …] [--input '<json>'] [--dry-run] [--idempotency-key <k>] [--wait] [--json]` | Run any operation from the shell, for example `summer assets generate-image --prompt "…"` or `summer store status --game-id <id>`. |
443
+ | `summer ops search <words…>` / `summer ops describe <op>` | Find the operation for a job, or print one operation's input, effect and approval. Works signed out: a cloud operation shows `(needs sign-in)`. |
364
444
  | `summer logout` | Clear auth tokens. |
365
445
  | `summer config [get\|set\|unset]` | Read or update the shared non-secret `~/.summer/config.json`. |
366
- | `summer status` | Engine state, port, auth. |
446
+ | `summer status [--json]` | Engine state, port, auth. |
367
447
  | `summer doctor` | Diagnose Node, login, engine, project memory, MCP. |
368
448
  | `summer plan <goal>` | Route a game-building goal into skills, MCP tools, gates, and verification. |
369
449
  | `summer memory` | Inspect project memory in `.summer`. |
370
450
  | `summer memory show <file>` | Print a project memory Markdown file. |
371
451
  | `summer run [path] [--background\|--focus] [--bin <executable>]` | Launch the engine. Agents (no TTY) launch in the background by default so the window never steals focus; `--focus` brings it to the front. `--bin` (env `SUMMER_BIN`) launches a build that is not installed. |
372
452
  | `summer open <path \| target> [--print] [--list]` | A project directory opens in the running engine. Anything else is a navigation target — `billing`, `my-games`, `mcp-guide`, `scene`, `inspector`, an intent phrase, a `res://` path — opened in the browser or sent to the editor; `--print` resolves without opening. |
373
- | `summer create <template> [name]` | Scaffold a project from a pinned template. |
374
- | `summer list templates` / `projects` | Browse. |
453
+ | `summer create <template> [name]` | Scaffold a project from a pinned template, with an AGENTS.md for your agent (and a CLAUDE.md that imports it). |
454
+ | `summer list templates` / `projects` | Browse. `--json` for scripts. |
375
455
  | `summer events [--follow] [--kinds <csv>] [--since <seq>] [--json]` | The engine events channel (engine 0.5.66+): newest events, or stream them live. |
376
456
  | `summer debug [issue…]` | Support-ready Markdown debug report. |
377
457
  | `summer skills list` | Show all skills (`--by-domain` groups them; the same grouping is in [`library/skills/README.md`](library/skills/README.md)). |
378
458
  | `summer skills install <name>` | Install one. |
379
- | `summer skills install --all --agent <agent>` / `--recommended` [`--stable-only`] | Install every skill (preview included and labelled), or only the recommended subset; `--stable-only` skips preview skills. |
459
+ | `summer skills install --all --agent <agent>` / `--recommended` / `--assets` [`--stable-only`] | Install every skill (preview included and labelled), only the recommended subset, or only the asset skills; `--stable-only` skips preview skills. |
380
460
  | `summer tool <name> --args '<json>'` | Run any Summer tool from the shell — the same implementation the MCP tool uses. `summer tool --list` prints them all. |
381
- | `summer mcp [--project <path> \| --instance <id>]` | Start MCP; normally auto-binds from the agent's project directory. |
461
+ | `summer mcp [--project <path> \| --instance <id>] [--profile <p>] [--toolsets <list>] [--surface v4\|v3]` | Start MCP; normally auto-binds from the agent's project directory. `--surface` (env `SUMMER_SURFACE`): `v4` (the default: engine tools, `summer_docs_search`, `summer_docs_read`, `summer_search` and `summer_call`) or `v3` (the 3.x tools). `--profile` (env `SUMMER_PROFILE`): `full` (every tool, the default), `engine` (engine, generation and store tools; fits the per-request tool cap of clients such as VS Code Copilot, which is 128), `assets` (generation and asset tools, no engine tools). `--toolsets` (env `SUMMER_TOOLSETS`) adds toolsets by name: `core`, `assets`, `tools`, `engine`, `ui`, `ship`, `uploads`, `apps`, `board`, `grow`, `studio`, `cloud`, `other`, or `all`. `--toolsets legacy` also lists every 3.x tool name. |
382
462
  | `summer mcp setup <agent>` | Deprecated alias of `summer setup <agent>`. |
383
- | `summer setup <agent> [--yes] [--force] [--recommended] [--stable-only] [--no-games]` | One shot: MCP config + all skills, preview included (`--recommended` for the subset, `--stable-only` to skip preview) + doctor. Idempotent. For most agents (not Claude Desktop, Visual Studio, Qoder, Rovo Dev, LM Studio or the legacy targets) it also adds `summer-games` (`https://mcp.summer.games/mcp`: friends, parties and messages as you) unless the same URL is already listed; you sign in once through summer.games. `--no-games` skips it. |
463
+ | `summer setup <agent> [--yes] [--force] [--recommended] [--stable-only] [--no-games] [--profile <p>] [--assets-only] [--cli]` | One shot: MCP config + all skills, preview included (`--recommended` for the subset, `--stable-only` to skip preview) + doctor. Idempotent. `--cli` (or `--no-mcp`, 4.2.0 or newer) installs the skills and no MCP server: the agent runs `summer` commands in its shell. Inside a Summer project it also adds the Summer instructions to the project's AGENTS.md and CLAUDE.md; `--no-project-files` skips that. `--profile` writes a tool profile into the agent's MCP entry (`SUMMER_PROFILE`); `vscode-copilot` gets `engine` unless you pass `--profile full`, every other agent gets every tool. `--assets-only` is the assets path: the `assets` profile, only the asset skills, no Summer Games. For most agents (not Claude Desktop, Visual Studio, Qoder, Rovo Dev, LM Studio or the legacy targets) it also adds `summer-games` (`https://mcp.summer.games/mcp`: friends, parties and messages as you) unless the same URL is already listed; you sign in once through summer.games. `--no-games` skips it. |
384
464
 
385
465
  Agents: `claude-code`, `claude-desktop`, `codex`, `cursor`, `windsurf`, `antigravity`, `cline`, `cline-cli`, `kilo-code`, `github-copilot`, `vscode-copilot`, `visual-studio`, `copilot-jetbrains`, `opencode`, `zed`, `kiro`, `goose`, `hermes`, `trae`, `qwen-code`, `kimi-code`, `crush`, `amp`, `factory`, `junie`, `warp`, `rovo-dev`, `qoder`, `grok-build`, `mistral-vibe`, `lm-studio`. Legacy (still accepted, warn on use): `gemini`, `roo-code`. Aliases: `devin`/`devin-desktop` → `windsurf`, `agy` → `antigravity`, `droid` → `factory`, `copilot` → `github-copilot`, `vscode` → `vscode-copilot`, `kilo` → `kilo-code`, `qwen` → `qwen-code`, `kimi` → `kimi-code`. Scopes: `--scope user` (default), `--scope project`.
386
466
 
@@ -388,7 +468,7 @@ Agents: `claude-code`, `claude-desktop`, `codex`, `cursor`, `windsurf`, `antigra
388
468
 
389
469
  The library grows by PR, and CI holds the line:
390
470
 
391
- 1. **Report a bad entry.** Open an issue quoting the prompt and the response — or, if you're an agent, file `summer_library_feedback` after a verified failure.
471
+ 1. **Report a bad entry.** Open an issue quoting the prompt and the response — or, if you're an agent, file `docs.feedback` through `summer_call` after a verified failure.
392
472
  2. **Improve or add an entry.** Add `library/<kind>/<slug>/` with a `resource.yaml` (plus `SKILL.md` for skills). Run `npm run validate:library`, regenerate with `node scripts/generate-registry/cli.ts`, and commit both. Schema, capability lint, and registry parity are enforced in CI.
393
473
 
394
474
  [`docs/DEVELOPMENT.md`](./docs/DEVELOPMENT.md) is the contributor guide; [`docs/design/CONTRACT.md`](./docs/design/CONTRACT.md) is the rulebook.
@@ -414,3 +494,4 @@ Some process skills (brainstorming, writing-plans, writing-skills, investigating
414
494
  - [Download Summer Engine](https://summerengine.com/download)
415
495
  - [Documentation](https://docs.summerengine.com)
416
496
  - [Issues](https://github.com/summerengine/summer/issues)
497
+ - [Support](https://summer.games/support) · [Privacy policy](https://www.summerengine.com/privacy) · [Terms](https://www.summerengine.com/terms)
Binary file