summer-engine 2.8.2 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (790) hide show
  1. package/.claude-plugin/marketplace.json +27 -7
  2. package/.claude-plugin/plugin.json +99 -83
  3. package/.codex-plugin/plugin.json +112 -82
  4. package/.cursor-plugin/plugin.json +119 -83
  5. package/.factory-plugin/plugin.json +100 -3
  6. package/.mcp.json +6 -1
  7. package/.opencode/INSTALL.md +7 -4
  8. package/.opencode/plugins/summer.js +31 -18
  9. package/AGENTS.md +107 -34
  10. package/CHANGELOG.md +149 -44
  11. package/CLAUDE.md +4 -2
  12. package/GEMINI.md +7 -53
  13. package/NOTICE +31 -0
  14. package/README.md +161 -393
  15. package/assets/api-docs.json.gz +0 -0
  16. package/assets/autopilot/README.md +20 -6
  17. package/assets/autopilot/autopilot.gd +80 -26
  18. package/assets/autopilot/run.sh +132 -7
  19. package/assets/navigation/web-routes.json +719 -0
  20. package/commands/gameskill.md +10 -108
  21. package/commands/summer.md +72 -4
  22. package/dist/bin/summer.js +6 -87
  23. package/dist/cli/banner.d.ts +1 -0
  24. package/dist/cli/banner.js +33 -0
  25. package/dist/{commands → cli/commands}/config.js +1 -1
  26. package/dist/cli/commands/create.d.ts +30 -0
  27. package/dist/cli/commands/create.js +212 -0
  28. package/dist/{commands → cli/commands}/debug.js +2 -2
  29. package/dist/cli/commands/doctor.d.ts +2 -0
  30. package/dist/cli/commands/doctor.js +18 -0
  31. package/dist/cli/commands/events.d.ts +57 -0
  32. package/dist/cli/commands/events.js +158 -0
  33. package/dist/cli/commands/install.d.ts +50 -0
  34. package/dist/cli/commands/install.js +447 -0
  35. package/dist/cli/commands/list.js +72 -0
  36. package/dist/{commands → cli/commands}/login.js +33 -17
  37. package/dist/{commands → cli/commands}/logout.d.ts +1 -0
  38. package/dist/cli/commands/logout.js +19 -0
  39. package/dist/{commands → cli/commands}/memory.d.ts +1 -8
  40. package/dist/{commands → cli/commands}/memory.js +20 -11
  41. package/dist/cli/commands/open.d.ts +45 -0
  42. package/dist/cli/commands/open.js +216 -0
  43. package/dist/{commands → cli/commands}/plan.js +2 -2
  44. package/dist/{commands → cli/commands}/publish.js +1 -1
  45. package/dist/{commands → cli/commands}/releases.js +1 -1
  46. package/dist/cli/commands/run.d.ts +19 -0
  47. package/dist/cli/commands/run.js +255 -0
  48. package/dist/cli/commands/setup.js +158 -0
  49. package/dist/{commands → cli/commands}/skills.js +121 -251
  50. package/dist/{commands → cli/commands}/status.d.ts +1 -0
  51. package/dist/cli/commands/status.js +62 -0
  52. package/dist/cli/commands/tool.d.ts +11 -0
  53. package/dist/cli/commands/tool.js +121 -0
  54. package/dist/cli/index.d.ts +6 -0
  55. package/dist/cli/index.js +89 -0
  56. package/dist/cli/root-action.d.ts +7 -0
  57. package/dist/cli/root-action.js +15 -0
  58. package/dist/{lib → core}/api-client.d.ts +106 -15
  59. package/dist/{lib → core}/api-client.js +267 -75
  60. package/dist/{lib → core}/async-op-lifecycle.d.ts +3 -4
  61. package/dist/{lib → core}/async-op-lifecycle.js +3 -4
  62. package/dist/{lib → core}/auth.d.ts +14 -6
  63. package/dist/{lib → core}/auth.js +56 -40
  64. package/dist/core/capabilities/agent-playbook.d.ts +20 -0
  65. package/dist/core/capabilities/agent-playbook.js +218 -0
  66. package/dist/core/capabilities/api-docs.d.ts +36 -0
  67. package/dist/core/capabilities/api-docs.js +118 -0
  68. package/dist/core/capabilities/asset-import.d.ts +49 -0
  69. package/dist/core/capabilities/asset-import.js +134 -0
  70. package/dist/core/capabilities/camera-view.d.ts +98 -0
  71. package/dist/core/capabilities/camera-view.js +222 -0
  72. package/dist/core/capabilities/capture.d.ts +63 -0
  73. package/dist/core/capabilities/capture.js +67 -0
  74. package/dist/core/capabilities/console-read.d.ts +17 -0
  75. package/dist/core/capabilities/console-read.js +21 -0
  76. package/dist/{lib → core/capabilities}/creator.d.ts +1 -29
  77. package/dist/{lib → core/capabilities}/creator.js +14 -33
  78. package/dist/{lib → core/capabilities}/debug-report.d.ts +1 -1
  79. package/dist/{lib → core/capabilities}/debug-report.js +12 -31
  80. package/dist/{commands → core/capabilities}/doctor.d.ts +7 -2
  81. package/dist/{commands → core/capabilities}/doctor.js +47 -73
  82. package/dist/core/capabilities/engine-fallbacks.d.ts +26 -0
  83. package/dist/core/capabilities/engine-fallbacks.js +36 -0
  84. package/dist/core/capabilities/engine-ops.d.ts +33 -0
  85. package/dist/core/capabilities/engine-ops.js +145 -0
  86. package/dist/core/capabilities/engine-receipt.d.ts +53 -0
  87. package/dist/core/capabilities/engine-receipt.js +134 -0
  88. package/dist/core/capabilities/events.d.ts +200 -0
  89. package/dist/core/capabilities/events.js +383 -0
  90. package/dist/core/capabilities/fabricate-mesh.d.ts +111 -0
  91. package/dist/core/capabilities/fabricate-mesh.js +165 -0
  92. package/dist/core/capabilities/frame-quality.d.ts +71 -0
  93. package/dist/core/capabilities/frame-quality.js +449 -0
  94. package/dist/core/capabilities/game-task-plan.d.ts +66 -0
  95. package/dist/{lib → core/capabilities}/game-task-plan.js +59 -8
  96. package/dist/core/capabilities/hdri-import.d.ts +90 -0
  97. package/dist/core/capabilities/hdri-import.js +250 -0
  98. package/dist/core/capabilities/image-generation.d.ts +24 -0
  99. package/dist/core/capabilities/image-generation.js +22 -0
  100. package/dist/core/capabilities/navigation/open.d.ts +156 -0
  101. package/dist/core/capabilities/navigation/open.js +567 -0
  102. package/dist/core/capabilities/navigation/render-product-map.d.ts +1 -0
  103. package/dist/core/capabilities/navigation/render-product-map.js +84 -0
  104. package/dist/core/capabilities/navigation/targets.d.ts +87 -0
  105. package/dist/core/capabilities/navigation/targets.js +250 -0
  106. package/dist/core/capabilities/play-determinism.d.ts +35 -0
  107. package/dist/core/capabilities/play-determinism.js +86 -0
  108. package/dist/core/capabilities/project-context.d.ts +114 -0
  109. package/dist/core/capabilities/project-context.js +249 -0
  110. package/dist/core/capabilities/runtime-control.d.ts +540 -0
  111. package/dist/core/capabilities/runtime-control.js +1011 -0
  112. package/dist/core/capabilities/scene-kind.d.ts +19 -0
  113. package/dist/core/capabilities/scene-kind.js +137 -0
  114. package/dist/core/capabilities/scene-script.d.ts +38 -0
  115. package/dist/core/capabilities/scene-script.js +45 -0
  116. package/dist/core/capabilities/tool-dispatch.d.ts +42 -0
  117. package/dist/core/capabilities/tool-dispatch.js +1490 -0
  118. package/dist/core/capabilities/ui-control.d.ts +179 -0
  119. package/dist/core/capabilities/ui-control.js +423 -0
  120. package/dist/core/capabilities/variant-types.d.ts +22 -0
  121. package/dist/core/capabilities/variant-types.js +101 -0
  122. package/dist/core/capability-skew.d.ts +205 -0
  123. package/dist/core/capability-skew.js +386 -0
  124. package/dist/{lib → core}/config.d.ts +11 -1
  125. package/dist/{lib → core}/config.js +13 -2
  126. package/dist/core/embeddings.d.ts +78 -0
  127. package/dist/core/embeddings.js +166 -0
  128. package/dist/core/engine-install.d.ts +105 -0
  129. package/dist/core/engine-install.js +190 -0
  130. package/dist/core/engine.d.ts +94 -0
  131. package/dist/{lib → core}/engine.js +74 -28
  132. package/dist/core/feedback/client.d.ts +88 -0
  133. package/dist/core/feedback/client.js +182 -0
  134. package/dist/{lib → core}/format.d.ts +0 -1
  135. package/dist/{lib → core}/format.js +1 -1
  136. package/dist/core/headless/connection.d.ts +86 -0
  137. package/dist/core/headless/connection.js +97 -0
  138. package/dist/core/headless/editor-connection.d.ts +26 -0
  139. package/dist/core/headless/editor-connection.js +81 -0
  140. package/dist/core/headless/mcp-routing.d.ts +38 -0
  141. package/dist/core/headless/mcp-routing.js +83 -0
  142. package/dist/core/headless/registry.d.ts +91 -0
  143. package/dist/core/headless/registry.js +226 -0
  144. package/dist/core/headless/resolve.d.ts +46 -0
  145. package/dist/core/headless/resolve.js +75 -0
  146. package/dist/core/headless/spawn.d.ts +46 -0
  147. package/dist/core/headless/spawn.js +205 -0
  148. package/dist/core/headless/worker-connection.d.ts +96 -0
  149. package/dist/core/headless/worker-connection.js +353 -0
  150. package/dist/core/headless/worker-engine-client.d.ts +58 -0
  151. package/dist/core/headless/worker-engine-client.js +246 -0
  152. package/dist/core/launch-posture.d.ts +170 -0
  153. package/dist/core/launch-posture.js +317 -0
  154. package/dist/core/library-read.d.ts +73 -0
  155. package/dist/core/library-read.js +279 -0
  156. package/dist/core/library-search.d.ts +143 -0
  157. package/dist/core/library-search.js +301 -0
  158. package/dist/{lib → core}/log-filters.js +4 -2
  159. package/dist/{lib → core}/mcp-log.js +2 -17
  160. package/dist/core/package-root.d.ts +9 -0
  161. package/dist/core/package-root.js +11 -0
  162. package/dist/core/redact.d.ts +20 -0
  163. package/dist/core/redact.js +64 -0
  164. package/dist/core/registry-search.d.ts +167 -0
  165. package/dist/core/registry-search.js +358 -0
  166. package/dist/core/skills-registry.d.ts +55 -0
  167. package/dist/core/skills-registry.js +106 -0
  168. package/dist/{lib → core}/store.js +11 -7
  169. package/dist/{lib → core}/summer-compatibility.js +3 -3
  170. package/dist/{lib → core}/telemetry.js +5 -2
  171. package/dist/core/templates.d.ts +98 -0
  172. package/dist/core/templates.js +241 -0
  173. package/dist/core/tool-errors.d.ts +30 -0
  174. package/dist/core/tool-errors.js +40 -0
  175. package/dist/core/trajectory.d.ts +80 -0
  176. package/dist/core/trajectory.js +307 -0
  177. package/dist/core/util/http.d.ts +13 -0
  178. package/dist/core/util/http.js +28 -0
  179. package/dist/core/util/json.d.ts +12 -0
  180. package/dist/core/util/json.js +21 -0
  181. package/dist/core/util/process.d.ts +3 -0
  182. package/dist/core/util/process.js +13 -0
  183. package/dist/core/util/sleep.d.ts +1 -0
  184. package/dist/core/util/sleep.js +3 -0
  185. package/dist/core/version.d.ts +3 -0
  186. package/dist/core/version.js +5 -0
  187. package/dist/installer/agent-config.d.ts +63 -0
  188. package/dist/installer/agent-config.js +540 -0
  189. package/dist/installer/agent-table.d.ts +103 -0
  190. package/dist/installer/agent-table.js +584 -0
  191. package/dist/installer/legacy-skills.d.ts +26 -0
  192. package/dist/installer/legacy-skills.js +53 -0
  193. package/dist/installer/setup.d.ts +76 -0
  194. package/dist/installer/setup.js +148 -0
  195. package/dist/installer/skill-locations.d.ts +36 -0
  196. package/dist/installer/skill-locations.js +91 -0
  197. package/dist/installer/version-check.d.ts +178 -0
  198. package/dist/installer/version-check.js +479 -0
  199. package/dist/{lib/mcp-boot-notice.d.ts → mcp/boot-notice.d.ts} +1 -1
  200. package/dist/{commands/mcp.js → mcp/command.js} +18 -6
  201. package/dist/mcp/server.d.ts +23 -3
  202. package/dist/mcp/server.js +122 -28
  203. package/dist/mcp/tools/asset-tools.js +62 -142
  204. package/dist/mcp/tools/creator-tools.js +5 -23
  205. package/dist/mcp/tools/debug-tools.js +61 -18
  206. package/dist/mcp/tools/event-tools.d.ts +14 -0
  207. package/dist/mcp/tools/event-tools.js +41 -0
  208. package/dist/mcp/tools/fabricate-tools.d.ts +2 -0
  209. package/dist/mcp/tools/fabricate-tools.js +28 -0
  210. package/dist/mcp/tools/feedback-tools.d.ts +77 -0
  211. package/dist/mcp/tools/feedback-tools.js +88 -0
  212. package/dist/mcp/tools/file-tools.js +6 -53
  213. package/dist/mcp/tools/generate-tools.js +37 -63
  214. package/dist/mcp/tools/library-tools.d.ts +11 -0
  215. package/dist/mcp/tools/library-tools.js +42 -0
  216. package/dist/mcp/tools/navigation-tools.d.ts +7 -0
  217. package/dist/mcp/tools/navigation-tools.js +37 -0
  218. package/dist/mcp/tools/perception-tools.d.ts +20 -0
  219. package/dist/mcp/tools/perception-tools.js +146 -0
  220. package/dist/mcp/tools/project-tools.d.ts +14 -0
  221. package/dist/mcp/tools/project-tools.js +72 -281
  222. package/dist/mcp/tools/runtime-tools.d.ts +2 -0
  223. package/dist/mcp/tools/runtime-tools.js +92 -0
  224. package/dist/mcp/tools/scene-tools.d.ts +3 -0
  225. package/dist/mcp/tools/scene-tools.js +68 -119
  226. package/dist/mcp/tools/script-tools.d.ts +3 -0
  227. package/dist/mcp/tools/script-tools.js +118 -0
  228. package/dist/mcp/tools/spatial-tools.d.ts +2 -0
  229. package/dist/mcp/tools/spatial-tools.js +485 -0
  230. package/dist/mcp/tools/text-json.d.ts +8 -0
  231. package/dist/mcp/tools/text-json.js +12 -0
  232. package/dist/mcp/tools/{cloud-tools.d.ts → ui-tools.d.ts} +1 -1
  233. package/dist/mcp/tools/ui-tools.js +82 -0
  234. package/dist/mcp/tools/visual-tools.d.ts +2 -7
  235. package/dist/mcp/tools/visual-tools.js +383 -101
  236. package/dist/mcp/tools/with-engine.d.ts +9 -15
  237. package/dist/mcp/tools/with-engine.js +60 -96
  238. package/dist/project-memory/project-manifest.d.ts +36 -0
  239. package/dist/project-memory/project-manifest.js +50 -0
  240. package/dist/project-memory/project-memory.d.ts +57 -0
  241. package/dist/{lib → project-memory}/project-memory.js +46 -0
  242. package/gemini-extension.json +103 -2
  243. package/hooks/hooks-cursor.json +2 -2
  244. package/hooks/hooks.json +2 -1
  245. package/hooks/pre-commit-doctor.sh +45 -39
  246. package/hooks/run-hook.cmd +30 -23
  247. package/hooks/run-hook.sh +20 -0
  248. package/hooks/session-start.sh +18 -7
  249. package/integrations/README.md +99 -0
  250. package/integrations/amp/README.md +12 -0
  251. package/integrations/amp/manifest-target.json +3 -0
  252. package/integrations/antigravity/README.md +12 -0
  253. package/integrations/antigravity/manifest-target.json +3 -0
  254. package/integrations/claude/README.md +19 -0
  255. package/integrations/claude/manifest-target.json +16 -0
  256. package/integrations/claude-desktop/README.md +12 -0
  257. package/integrations/claude-desktop/manifest-target.json +3 -0
  258. package/integrations/cline/README.md +12 -0
  259. package/integrations/cline/manifest-target.json +3 -0
  260. package/integrations/cline-cli/README.md +12 -0
  261. package/integrations/cline-cli/manifest-target.json +3 -0
  262. package/integrations/codex/README.md +15 -0
  263. package/integrations/codex/manifest-target.json +5 -0
  264. package/integrations/copilot-jetbrains/README.md +12 -0
  265. package/integrations/copilot-jetbrains/manifest-target.json +3 -0
  266. package/integrations/crush/README.md +12 -0
  267. package/integrations/crush/manifest-target.json +3 -0
  268. package/integrations/cursor/README.md +16 -0
  269. package/integrations/cursor/manifest-target.json +5 -0
  270. package/integrations/factory/README.md +26 -0
  271. package/integrations/factory/manifest-target.json +5 -0
  272. package/integrations/gemini/README.md +26 -0
  273. package/integrations/gemini/manifest-target.json +5 -0
  274. package/integrations/github-copilot/README.md +12 -0
  275. package/integrations/github-copilot/manifest-target.json +3 -0
  276. package/integrations/goose/README.md +12 -0
  277. package/integrations/goose/manifest-target.json +3 -0
  278. package/integrations/grok-build/README.md +12 -0
  279. package/integrations/grok-build/manifest-target.json +3 -0
  280. package/integrations/hermes/README.md +12 -0
  281. package/integrations/hermes/manifest-target.json +3 -0
  282. package/integrations/junie/README.md +12 -0
  283. package/integrations/junie/manifest-target.json +3 -0
  284. package/integrations/kilo-code/README.md +12 -0
  285. package/integrations/kilo-code/manifest-target.json +3 -0
  286. package/integrations/kimi-code/README.md +12 -0
  287. package/integrations/kimi-code/manifest-target.json +3 -0
  288. package/integrations/kiro/README.md +12 -0
  289. package/integrations/kiro/manifest-target.json +3 -0
  290. package/integrations/lm-studio/README.md +12 -0
  291. package/integrations/lm-studio/manifest-target.json +3 -0
  292. package/integrations/mistral-vibe/README.md +12 -0
  293. package/integrations/mistral-vibe/manifest-target.json +3 -0
  294. package/integrations/opencode/README.md +12 -0
  295. package/integrations/opencode/manifest-target.json +3 -0
  296. package/integrations/qoder/README.md +12 -0
  297. package/integrations/qoder/manifest-target.json +3 -0
  298. package/integrations/qwen-code/README.md +12 -0
  299. package/integrations/qwen-code/manifest-target.json +3 -0
  300. package/integrations/roo-code/README.md +14 -0
  301. package/integrations/roo-code/manifest-target.json +3 -0
  302. package/integrations/rovo-dev/README.md +12 -0
  303. package/integrations/rovo-dev/manifest-target.json +3 -0
  304. package/integrations/trae/README.md +12 -0
  305. package/integrations/trae/manifest-target.json +3 -0
  306. package/integrations/visual-studio/README.md +12 -0
  307. package/integrations/visual-studio/manifest-target.json +3 -0
  308. package/integrations/vscode-copilot/README.md +12 -0
  309. package/integrations/vscode-copilot/manifest-target.json +3 -0
  310. package/integrations/warp/README.md +12 -0
  311. package/integrations/warp/manifest-target.json +3 -0
  312. package/integrations/windsurf/README.md +12 -0
  313. package/integrations/windsurf/manifest-target.json +3 -0
  314. package/integrations/zed/README.md +12 -0
  315. package/integrations/zed/manifest-target.json +3 -0
  316. package/library/references/collaborative-protocol/resource.yaml +24 -0
  317. package/library/references/gd-style/resource.yaml +24 -0
  318. package/{references → library/references/godot-version}/godot-version.md +6 -6
  319. package/library/references/godot-version/resource.yaml +22 -0
  320. package/library/references/headless-routing/headless-routing.md +46 -0
  321. package/library/references/headless-routing/resource.yaml +24 -0
  322. package/library/references/mcp-fresh-chat-playbook/mcp-fresh-chat-playbook.md +49 -0
  323. package/library/references/mcp-fresh-chat-playbook/resource.yaml +23 -0
  324. package/library/references/mcp-tools-reference/mcp-tools-reference.md +271 -0
  325. package/library/references/mcp-tools-reference/resource.yaml +17 -0
  326. package/library/references/product-map/product-map.md +103 -0
  327. package/library/references/product-map/resource.yaml +33 -0
  328. package/{references → library/references/public-surface-language}/public-surface-language.md +5 -7
  329. package/library/references/public-surface-language/resource.yaml +17 -0
  330. package/library/references/summer-folder/resource.yaml +20 -0
  331. package/{references → library/references/summer-folder}/summer-folder.md +22 -21
  332. package/{skills/rendering-and-lighting → library/skills}/3d-lighting/SKILL.md +15 -11
  333. package/library/skills/3d-lighting/resource.yaml +27 -0
  334. package/library/skills/README.md +242 -0
  335. package/{skills/audio → library/skills}/adaptive-music/SKILL.md +1 -1
  336. package/library/skills/adaptive-music/resource.yaml +28 -0
  337. package/library/skills/agent-playtesting/SKILL.md +148 -0
  338. package/library/skills/agent-playtesting/resource.yaml +52 -0
  339. package/library/skills/ambient-bed/resource.yaml +24 -0
  340. package/{skills/video → library/skills}/animated-loop/SKILL.md +1 -1
  341. package/library/skills/animated-loop/resource.yaml +27 -0
  342. package/{skills/animation → library/skills}/animation-tree/SKILL.md +29 -14
  343. package/library/skills/animation-tree/resource.yaml +33 -0
  344. package/{skills/rendering-and-lighting → library/skills}/art-direction/SKILL.md +3 -3
  345. package/library/skills/art-direction/resource.yaml +29 -0
  346. package/{skills/asset-pipeline → library/skills}/asset-strategy/SKILL.md +44 -44
  347. package/library/skills/asset-strategy/resource.yaml +63 -0
  348. package/{skills/audio → library/skills}/audio-direction/SKILL.md +7 -7
  349. package/library/skills/audio-direction/resource.yaml +32 -0
  350. package/library/skills/auto-fire-targeting/resource.yaml +22 -0
  351. package/{skills/scene-and-project → library/skills}/brainstorm-game/SKILL.md +8 -8
  352. package/library/skills/brainstorm-game/resource.yaml +30 -0
  353. package/{skills/workflow → library/skills}/brainstorming/SKILL.md +2 -22
  354. package/library/skills/brainstorming/resource.yaml +23 -0
  355. package/{skills/workflow → library/skills}/brainstorming/spec-document-reviewer-prompt.md +1 -1
  356. package/{skills/scene-and-project → library/skills}/browse-templates/SKILL.md +18 -18
  357. package/library/skills/browse-templates/resource.yaml +23 -0
  358. package/library/skills/celeste-momentum-platforming/SKILL.md +366 -0
  359. package/library/skills/celeste-momentum-platforming/resource.yaml +33 -0
  360. package/library/skills/character-animation-wiring/SKILL.md +249 -0
  361. package/library/skills/character-animation-wiring/resource.yaml +39 -0
  362. package/{skills/3d-assets → library/skills}/character-model/SKILL.md +25 -25
  363. package/library/skills/character-model/resource.yaml +36 -0
  364. package/{skills/2d-assets → library/skills}/character-portrait/SKILL.md +14 -14
  365. package/library/skills/character-portrait/resource.yaml +30 -0
  366. package/{skills/video → library/skills}/cinematic-cutscene/SKILL.md +2 -2
  367. package/library/skills/cinematic-cutscene/resource.yaml +29 -0
  368. package/{skills/2d-assets → library/skills}/concept-art/SKILL.md +15 -15
  369. package/library/skills/concept-art/resource.yaml +34 -0
  370. package/{skills/2d-assets → library/skills}/create-asset-sheet/SKILL.md +8 -8
  371. package/library/skills/create-asset-sheet/resource.yaml +33 -0
  372. package/{skills/debugging → library/skills}/debug/SKILL.md +3 -3
  373. package/library/skills/debug/resource.yaml +31 -0
  374. package/{skills/workflow → library/skills}/debugging-game-feel/SKILL.md +11 -11
  375. package/library/skills/debugging-game-feel/resource.yaml +25 -0
  376. package/{skills/level-design → library/skills}/design-level/SKILL.md +6 -6
  377. package/library/skills/design-level/resource.yaml +31 -0
  378. package/{skills/gameplay-mechanics → library/skills}/design-mechanic/SKILL.md +3 -3
  379. package/library/skills/design-mechanic/resource.yaml +31 -0
  380. package/{skills/ai-and-npcs → library/skills}/design-npc/SKILL.md +7 -3
  381. package/library/skills/design-npc/resource.yaml +29 -0
  382. package/{skills/workflow → library/skills}/diagnosing-perf-regressions/SKILL.md +10 -10
  383. package/library/skills/diagnosing-perf-regressions/resource.yaml +25 -0
  384. package/{skills/workflow → library/skills}/dispatching-parallel-agents/SKILL.md +8 -8
  385. package/library/skills/dispatching-parallel-agents/resource.yaml +23 -0
  386. package/library/skills/driving-the-editor-ui/SKILL.md +85 -0
  387. package/library/skills/driving-the-editor-ui/resource.yaml +46 -0
  388. package/{skills/3d-assets → library/skills}/environment-kit/SKILL.md +11 -11
  389. package/library/skills/environment-kit/resource.yaml +29 -0
  390. package/{skills/deployment → library/skills}/export-and-ship/SKILL.md +5 -5
  391. package/library/skills/export-and-ship/resource.yaml +32 -0
  392. package/library/skills/fabricating-assets/SKILL.md +195 -0
  393. package/library/skills/fabricating-assets/resource.yaml +52 -0
  394. package/{skills/animation → library/skills}/facial-and-lipsync/SKILL.md +23 -11
  395. package/library/skills/facial-and-lipsync/resource.yaml +36 -0
  396. package/{skills/character-controllers → library/skills}/fps-controller/SKILL.md +8 -4
  397. package/library/skills/fps-controller/resource.yaml +29 -0
  398. package/{skills/visual-effects → library/skills}/game-feel/SKILL.md +7 -7
  399. package/library/skills/game-feel/resource.yaml +27 -0
  400. package/library/skills/gameskill/SKILL.md +64 -0
  401. package/library/skills/gameskill/resource.yaml +22 -0
  402. package/library/skills/gdscript-patterns/resource.yaml +23 -0
  403. package/{skills/animation → library/skills}/generate-motion/SKILL.md +16 -16
  404. package/library/skills/generate-motion/resource.yaml +34 -0
  405. package/library/skills/godogen-visual-proof-game-generation/SKILL.md +223 -0
  406. package/library/skills/godogen-visual-proof-game-generation/resource.yaml +33 -0
  407. package/{skills/workflow → library/skills}/headless-scripting/SKILL.md +14 -7
  408. package/library/skills/headless-scripting/resource.yaml +26 -0
  409. package/library/skills/host-authoritative-state/resource.yaml +28 -0
  410. package/{skills/2d-assets → library/skills}/instantiate-asset-pack/SKILL.md +10 -12
  411. package/library/skills/instantiate-asset-pack/resource.yaml +29 -0
  412. package/{skills/workflow → library/skills}/investigating-bugs/SKILL.md +4 -4
  413. package/{skills/workflow → library/skills}/investigating-bugs/condition-based-waiting.md +8 -8
  414. package/library/skills/investigating-bugs/resource.yaml +24 -0
  415. package/{skills/workflow → library/skills}/investigating-bugs/root-cause-tracing.md +1 -7
  416. package/library/skills/lumera-single-image-scene-reconstruction/SKILL.md +164 -0
  417. package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +35 -0
  418. package/{skills/scene-and-project → library/skills}/make-game/SKILL.md +22 -22
  419. package/library/skills/make-game/resource.yaml +35 -0
  420. package/library/skills/music-track/resource.yaml +28 -0
  421. package/library/skills/navigate-summer/SKILL.md +61 -0
  422. package/library/skills/navigate-summer/resource.yaml +35 -0
  423. package/{skills/scene-and-project → library/skills}/new-project/SKILL.md +10 -10
  424. package/library/skills/new-project/resource.yaml +28 -0
  425. package/{skills/3d-assets → library/skills}/organic-model/SKILL.md +16 -16
  426. package/library/skills/organic-model/resource.yaml +32 -0
  427. package/{skills/multiplayer-and-networking → library/skills}/peer-to-peer-multiplayer/SKILL.md +2 -2
  428. package/library/skills/peer-to-peer-multiplayer/resource.yaml +28 -0
  429. package/{skills/2d-assets → library/skills}/pixel-art/SKILL.md +13 -13
  430. package/library/skills/pixel-art/resource.yaml +31 -0
  431. package/library/skills/play/resource.yaml +26 -0
  432. package/{skills/workflow → library/skills}/playtesting-a-feature/SKILL.md +41 -22
  433. package/library/skills/playtesting-a-feature/resource.yaml +31 -0
  434. package/{skills/animation → library/skills}/procedural-animation/SKILL.md +25 -10
  435. package/library/skills/procedural-animation/resource.yaml +33 -0
  436. package/{skills/3d-assets → library/skills}/prop-model/SKILL.md +13 -13
  437. package/library/skills/prop-model/resource.yaml +33 -0
  438. package/library/skills/psx-retro-rendering/SKILL.md +416 -0
  439. package/library/skills/psx-retro-rendering/resource.yaml +36 -0
  440. package/library/skills/realtime-wet-surfaces/SKILL.md +189 -0
  441. package/library/skills/realtime-wet-surfaces/resource.yaml +31 -0
  442. package/{skills/deployment → library/skills}/remote-deploy/SKILL.md +3 -3
  443. package/library/skills/remote-deploy/resource.yaml +23 -0
  444. package/{skills/animation → library/skills}/retarget/SKILL.md +15 -14
  445. package/library/skills/retarget/resource.yaml +33 -0
  446. package/library/skills/running-in-the-cloud/SKILL.md +103 -0
  447. package/library/skills/running-in-the-cloud/resource.yaml +33 -0
  448. package/{skills/scene-and-project → library/skills}/scene-composition/SKILL.md +8 -0
  449. package/library/skills/scene-composition/resource.yaml +27 -0
  450. package/library/skills/scene-hierarchy-design/SKILL.md +102 -0
  451. package/library/skills/scene-hierarchy-design/resource.yaml +31 -0
  452. package/library/skills/scene-scripting/SKILL.md +764 -0
  453. package/library/skills/scene-scripting/resource.yaml +58 -0
  454. package/{skills/level-design → library/skills}/scene-to-level/SKILL.md +16 -17
  455. package/library/skills/scene-to-level/resource.yaml +33 -0
  456. package/library/skills/setup-multiplayer/resource.yaml +28 -0
  457. package/library/skills/skill-create/SKILL.md +138 -0
  458. package/library/skills/skill-create/resource.yaml +25 -0
  459. package/{skills/workflow → library/skills}/skill-improve/SKILL.md +2 -2
  460. package/library/skills/skill-improve/resource.yaml +25 -0
  461. package/{skills/workflow → library/skills}/skill-test/SKILL.md +4 -4
  462. package/library/skills/skill-test/resource.yaml +26 -0
  463. package/library/skills/skintokens-auto-rigging/SKILL.md +200 -0
  464. package/library/skills/skintokens-auto-rigging/resource.yaml +38 -0
  465. package/{skills/2d-assets → library/skills}/skybox-panorama/SKILL.md +8 -8
  466. package/library/skills/skybox-panorama/resource.yaml +28 -0
  467. package/{skills/audio → library/skills}/sound-effect/SKILL.md +2 -2
  468. package/library/skills/sound-effect/resource.yaml +27 -0
  469. package/library/skills/spatial-placement/SKILL.md +74 -0
  470. package/library/skills/spatial-placement/resource.yaml +42 -0
  471. package/library/skills/spatial-placement/tests/spec.md +65 -0
  472. package/{skills/2d-assets → library/skills}/sprite-sheet/SKILL.md +12 -12
  473. package/library/skills/sprite-sheet/resource.yaml +32 -0
  474. package/{skills/2d-assets → library/skills}/tileable-texture/SKILL.md +9 -9
  475. package/library/skills/tileable-texture/resource.yaml +31 -0
  476. package/{skills/video → library/skills}/trailer-shot/SKILL.md +1 -1
  477. package/library/skills/trailer-shot/resource.yaml +27 -0
  478. package/{skills/performance → library/skills}/tune-performance/SKILL.md +6 -6
  479. package/library/skills/tune-performance/resource.yaml +31 -0
  480. package/library/skills/ui-basics/resource.yaml +25 -0
  481. package/{skills/2d-assets → library/skills}/ui-graphics/SKILL.md +11 -11
  482. package/library/skills/ui-graphics/resource.yaml +29 -0
  483. package/{skills/2d-assets → library/skills}/use-widget-asset/SKILL.md +4 -4
  484. package/library/skills/use-widget-asset/resource.yaml +29 -0
  485. package/{skills/workflow → library/skills}/using-summer/SKILL.md +12 -9
  486. package/library/skills/using-summer/resource.yaml +41 -0
  487. package/{skills/3d-assets → library/skills}/vehicle-model/SKILL.md +18 -18
  488. package/library/skills/vehicle-model/resource.yaml +34 -0
  489. package/{skills/workflow → library/skills}/verification-before-completion/SKILL.md +10 -10
  490. package/library/skills/verification-before-completion/resource.yaml +23 -0
  491. package/library/skills/verifying-scenes/SKILL.md +98 -0
  492. package/library/skills/verifying-scenes/resource.yaml +42 -0
  493. package/{skills/visual-effects/recipes/dissolve → library/skills/vfx-dissolve}/SKILL.md +31 -11
  494. package/library/skills/vfx-dissolve/resource.yaml +33 -0
  495. package/{skills/visual-effects/recipes/fire → library/skills/vfx-fire}/SKILL.md +43 -12
  496. package/library/skills/vfx-fire/_building-blocks/noise-3d-fbm.gdshaderinc +45 -0
  497. package/library/skills/vfx-fire/resource.yaml +35 -0
  498. package/{skills/visual-effects/recipes/hit-spark → library/skills/vfx-hit-spark}/SKILL.md +16 -10
  499. package/library/skills/vfx-hit-spark/_building-blocks/additive-billboard-particles.md +37 -0
  500. package/library/skills/vfx-hit-spark/resource.yaml +34 -0
  501. package/{skills/visual-effects/recipes/lightning → library/skills/vfx-lightning}/SKILL.md +24 -11
  502. package/library/skills/vfx-lightning/_building-blocks/additive-billboard-particles.md +37 -0
  503. package/library/skills/vfx-lightning/resource.yaml +33 -0
  504. package/{skills/visual-effects/recipes/magic-glow → library/skills/vfx-magic-glow}/SKILL.md +31 -11
  505. package/library/skills/vfx-magic-glow/_building-blocks/additive-billboard-particles.md +37 -0
  506. package/library/skills/vfx-magic-glow/resource.yaml +34 -0
  507. package/{skills/visual-effects/recipes/muzzle-flash → library/skills/vfx-muzzle-flash}/SKILL.md +29 -9
  508. package/library/skills/vfx-muzzle-flash/_building-blocks/additive-billboard-particles.md +37 -0
  509. package/library/skills/vfx-muzzle-flash/_building-blocks/trauma-shake-snippet.md +53 -0
  510. package/library/skills/vfx-muzzle-flash/resource.yaml +35 -0
  511. package/{skills/visual-effects/recipes/smoke → library/skills/vfx-smoke}/SKILL.md +35 -9
  512. package/library/skills/vfx-smoke/_building-blocks/noise-3d-fbm.gdshaderinc +45 -0
  513. package/library/skills/vfx-smoke/resource.yaml +32 -0
  514. package/{skills/visual-effects/recipes/water-ripple → library/skills/vfx-water-ripple}/SKILL.md +31 -9
  515. package/library/skills/vfx-water-ripple/_building-blocks/additive-billboard-particles.md +37 -0
  516. package/library/skills/vfx-water-ripple/resource.yaml +31 -0
  517. package/library/skills/voice-line/resource.yaml +27 -0
  518. package/library/skills/world-building-3d/SKILL.md +105 -0
  519. package/library/skills/world-building-3d/references/spatial-tools.md +50 -0
  520. package/library/skills/world-building-3d/resource.yaml +44 -0
  521. package/library/skills/world-building-3d/tests/spec.md +48 -0
  522. package/{skills/workflow → library/skills}/writing-plans/SKILL.md +19 -14
  523. package/library/skills/writing-plans/resource.yaml +23 -0
  524. package/{skills/workflow → library/skills}/writing-skills/SKILL.md +38 -44
  525. package/library/skills/writing-skills/resource.yaml +29 -0
  526. package/{skills/workflow → library/skills}/writing-skills/testing-skills-with-subagents.md +13 -14
  527. package/library/templates/2d-brario-platformer/resource.yaml +21 -0
  528. package/library/templates/2d-dungeon-roguelike/resource.yaml +23 -0
  529. package/library/templates/2d-grid-puzzle/resource.yaml +21 -0
  530. package/library/templates/2d-plants-and-zombies-tower-defense/resource.yaml +21 -0
  531. package/library/templates/2d-platformer/resource.yaml +24 -0
  532. package/library/templates/2d-rpg/resource.yaml +21 -0
  533. package/library/templates/2d-vampire-survivor-roguelike/resource.yaml +21 -0
  534. package/library/templates/3d-basic/resource.yaml +16 -0
  535. package/library/templates/3d-city-kit/resource.yaml +24 -0
  536. package/library/templates/3d-fps-old-school/resource.yaml +21 -0
  537. package/library/templates/3d-fps-simple-animated-npc/resource.yaml +21 -0
  538. package/library/templates/3d-lan-multiplayer-starter/resource.yaml +22 -0
  539. package/library/templates/3d-open-world-explore-tps/resource.yaml +21 -0
  540. package/library/templates/3d-procedural-road-world/resource.yaml +21 -0
  541. package/library/templates/3d-racing-game/resource.yaml +21 -0
  542. package/library/templates/3d-royale-clash-type/resource.yaml +21 -0
  543. package/library/templates/3d-third-person-controller/resource.yaml +21 -0
  544. package/library/templates/3d-voxel-sandbox/resource.yaml +24 -0
  545. package/library/templates/README.md +94 -0
  546. package/library/templates/empty/resource.yaml +16 -0
  547. package/library/tools/add-node/resource.yaml +60 -0
  548. package/library/tools/align-distribute-3d/resource.yaml +87 -0
  549. package/library/tools/api-docs/resource.yaml +57 -0
  550. package/library/tools/batch/resource.yaml +52 -0
  551. package/library/tools/camera-bookmark/resource.yaml +73 -0
  552. package/library/tools/check-job/resource.yaml +45 -0
  553. package/library/tools/clear-console/resource.yaml +40 -0
  554. package/library/tools/connect-signal/resource.yaml +63 -0
  555. package/library/tools/create-debug-report/resource.yaml +67 -0
  556. package/library/tools/create-scene/resource.yaml +59 -0
  557. package/library/tools/creator-config/resource.yaml +63 -0
  558. package/library/tools/creator-publish/resource.yaml +73 -0
  559. package/library/tools/creator-releases/resource.yaml +53 -0
  560. package/library/tools/fabricate-3d/resource.yaml +108 -0
  561. package/library/tools/game-control/resource.yaml +84 -0
  562. package/library/tools/game-input/resource.yaml +159 -0
  563. package/library/tools/game-probe/resource.yaml +90 -0
  564. package/library/tools/generate-3d/resource.yaml +112 -0
  565. package/library/tools/generate-audio/resource.yaml +80 -0
  566. package/library/tools/generate-image/resource.yaml +62 -0
  567. package/library/tools/generate-motion/resource.yaml +66 -0
  568. package/library/tools/generate-video/resource.yaml +66 -0
  569. package/library/tools/get-agent-playbook/resource.yaml +40 -0
  570. package/library/tools/get-asset/resource.yaml +42 -0
  571. package/library/tools/get-asset-download-url/resource.yaml +52 -0
  572. package/library/tools/get-console/resource.yaml +69 -0
  573. package/library/tools/get-debugger-errors/resource.yaml +56 -0
  574. package/library/tools/get-debugger-warnings/resource.yaml +52 -0
  575. package/library/tools/get-diagnostics/resource.yaml +42 -0
  576. package/library/tools/get-project-context/resource.yaml +45 -0
  577. package/library/tools/get-runtime-tree/resource.yaml +62 -0
  578. package/library/tools/get-scene-tree/resource.yaml +52 -0
  579. package/library/tools/get-script-errors/resource.yaml +45 -0
  580. package/library/tools/get-studio-workflow/resource.yaml +43 -0
  581. package/library/tools/import-asset/resource.yaml +73 -0
  582. package/library/tools/import-asset-by-id/resource.yaml +56 -0
  583. package/library/tools/import-from-url/resource.yaml +51 -0
  584. package/library/tools/import-from-url-batch/resource.yaml +60 -0
  585. package/library/tools/import-hdri/resource.yaml +69 -0
  586. package/library/tools/input-map-bind/resource.yaml +52 -0
  587. package/library/tools/inspect-node/resource.yaml +46 -0
  588. package/library/tools/inspect-resource/resource.yaml +45 -0
  589. package/library/tools/inspect-runtime-node/resource.yaml +54 -0
  590. package/library/tools/instantiate-scene/resource.yaml +62 -0
  591. package/library/tools/is-running/resource.yaml +40 -0
  592. package/library/tools/library-feedback/resource.yaml +89 -0
  593. package/library/tools/list-my-assets/resource.yaml +56 -0
  594. package/library/tools/navigation-probe/resource.yaml +85 -0
  595. package/library/tools/open/resource.yaml +80 -0
  596. package/library/tools/open-main-scene/resource.yaml +40 -0
  597. package/library/tools/open-scene/resource.yaml +46 -0
  598. package/library/tools/play/resource.yaml +91 -0
  599. package/library/tools/project-setting/resource.yaml +53 -0
  600. package/library/tools/read-file/resource.yaml +47 -0
  601. package/library/tools/read-library/resource.yaml +67 -0
  602. package/library/tools/recent-events/resource.yaml +71 -0
  603. package/library/tools/remove-node/resource.yaml +51 -0
  604. package/library/tools/replace-node/resource.yaml +57 -0
  605. package/library/tools/replace-text/resource.yaml +61 -0
  606. package/library/tools/run-editor-script/resource.yaml +61 -0
  607. package/library/tools/run-script/resource.yaml +73 -0
  608. package/library/tools/runtime-animate/resource.yaml +140 -0
  609. package/library/tools/runtime-call/resource.yaml +74 -0
  610. package/library/tools/runtime-set/resource.yaml +80 -0
  611. package/library/tools/runtime-spawn/resource.yaml +95 -0
  612. package/library/tools/save-scene/resource.yaml +50 -0
  613. package/library/tools/screenshot/resource.yaml +112 -0
  614. package/library/tools/search-assets/resource.yaml +67 -0
  615. package/library/tools/search-library/resource.yaml +81 -0
  616. package/library/tools/select-node/resource.yaml +48 -0
  617. package/library/tools/set-prop/resource.yaml +64 -0
  618. package/library/tools/set-resource-property/resource.yaml +66 -0
  619. package/library/tools/slice-asset-sheet/resource.yaml +47 -0
  620. package/library/tools/snap-to-surface/resource.yaml +90 -0
  621. package/library/tools/snapshot-diff/resource.yaml +58 -0
  622. package/library/tools/starcast/resource.yaml +120 -0
  623. package/library/tools/start-game-task/resource.yaml +91 -0
  624. package/library/tools/stop/resource.yaml +51 -0
  625. package/library/tools/test-placement/resource.yaml +109 -0
  626. package/library/tools/ui-actions/resource.yaml +77 -0
  627. package/library/tools/ui-activate/resource.yaml +88 -0
  628. package/library/tools/ui-screenshot/resource.yaml +63 -0
  629. package/library/tools/ui-tree/resource.yaml +69 -0
  630. package/library/tools/wait-for-event/resource.yaml +84 -0
  631. package/library/tools/world-snapshot/resource.yaml +60 -0
  632. package/library/tools/write-file/resource.yaml +54 -0
  633. package/package.json +21 -15
  634. package/registry/generated/aliases.json +207 -0
  635. package/registry/generated/counts.json +12 -0
  636. package/registry/generated/gemini-extension.json +122 -0
  637. package/registry/generated/index.json +7709 -0
  638. package/registry/generated/marketplace.claude.json +44 -0
  639. package/registry/generated/mcp.json +13 -0
  640. package/registry/generated/plugin.claude.json +135 -0
  641. package/registry/generated/plugin.codex.json +144 -0
  642. package/registry/generated/plugin.cursor.json +134 -0
  643. package/registry/generated/plugin.factory.json +117 -0
  644. package/registry/generated/skills-index.md +242 -0
  645. package/registry/generated/skills-registry.json +1249 -0
  646. package/registry/generated/templates-registry.json +455 -0
  647. package/registry/schemas/allowed-hosts.json +19 -0
  648. package/registry/schemas/collection.schema.json +68 -0
  649. package/registry/schemas/domains.json +96 -0
  650. package/registry/schemas/example.schema.json +11 -0
  651. package/registry/schemas/reference.schema.json +10 -0
  652. package/registry/schemas/resource.schema.json +154 -0
  653. package/registry/schemas/skill.schema.json +14 -0
  654. package/registry/schemas/template.schema.json +46 -0
  655. package/registry/schemas/tool.schema.json +61 -0
  656. package/_persona/summer/SKILL.md +0 -113
  657. package/dist/bin/postinstall.d.ts +0 -2
  658. package/dist/bin/postinstall.js +0 -3
  659. package/dist/commands/cloud.d.ts +0 -2
  660. package/dist/commands/cloud.js +0 -80
  661. package/dist/commands/create.d.ts +0 -3
  662. package/dist/commands/create.js +0 -171
  663. package/dist/commands/install.d.ts +0 -19
  664. package/dist/commands/install.js +0 -194
  665. package/dist/commands/list.js +0 -67
  666. package/dist/commands/logout.js +0 -13
  667. package/dist/commands/logs.d.ts +0 -2
  668. package/dist/commands/logs.js +0 -19
  669. package/dist/commands/open.d.ts +0 -2
  670. package/dist/commands/open.js +0 -32
  671. package/dist/commands/orchestrator.d.ts +0 -8
  672. package/dist/commands/orchestrator.js +0 -143
  673. package/dist/commands/run.d.ts +0 -2
  674. package/dist/commands/run.js +0 -167
  675. package/dist/commands/setup.js +0 -217
  676. package/dist/commands/status.js +0 -46
  677. package/dist/lib/agent-config.d.ts +0 -39
  678. package/dist/lib/agent-config.js +0 -626
  679. package/dist/lib/banner.d.ts +0 -4
  680. package/dist/lib/banner.js +0 -122
  681. package/dist/lib/cloud/api.d.ts +0 -79
  682. package/dist/lib/cloud/api.js +0 -107
  683. package/dist/lib/cloud/apply.d.ts +0 -32
  684. package/dist/lib/cloud/apply.js +0 -294
  685. package/dist/lib/cloud/checkpoint.d.ts +0 -26
  686. package/dist/lib/cloud/checkpoint.js +0 -142
  687. package/dist/lib/cloud/conflicts.d.ts +0 -55
  688. package/dist/lib/cloud/conflicts.js +0 -131
  689. package/dist/lib/cloud/containment.d.ts +0 -8
  690. package/dist/lib/cloud/containment.js +0 -52
  691. package/dist/lib/cloud/diff.d.ts +0 -39
  692. package/dist/lib/cloud/diff.js +0 -138
  693. package/dist/lib/cloud/engine-bridge.d.ts +0 -34
  694. package/dist/lib/cloud/engine-bridge.js +0 -139
  695. package/dist/lib/cloud/hash-cache.d.ts +0 -23
  696. package/dist/lib/cloud/hash-cache.js +0 -44
  697. package/dist/lib/cloud/hash.d.ts +0 -10
  698. package/dist/lib/cloud/hash.js +0 -111
  699. package/dist/lib/cloud/http.d.ts +0 -17
  700. package/dist/lib/cloud/http.js +0 -47
  701. package/dist/lib/cloud/lock-path.d.ts +0 -1
  702. package/dist/lib/cloud/lock-path.js +0 -5
  703. package/dist/lib/cloud/lock.d.ts +0 -14
  704. package/dist/lib/cloud/lock.js +0 -143
  705. package/dist/lib/cloud/manifest.d.ts +0 -6
  706. package/dist/lib/cloud/manifest.js +0 -41
  707. package/dist/lib/cloud/paths.d.ts +0 -20
  708. package/dist/lib/cloud/paths.js +0 -90
  709. package/dist/lib/cloud/project-godot-merge.d.ts +0 -32
  710. package/dist/lib/cloud/project-godot-merge.js +0 -185
  711. package/dist/lib/cloud/rules.d.ts +0 -39
  712. package/dist/lib/cloud/rules.js +0 -159
  713. package/dist/lib/cloud/sync.d.ts +0 -21
  714. package/dist/lib/cloud/sync.js +0 -518
  715. package/dist/lib/cloud/transfer.d.ts +0 -23
  716. package/dist/lib/cloud/transfer.js +0 -184
  717. package/dist/lib/cloud/types.d.ts +0 -62
  718. package/dist/lib/cloud/types.js +0 -1
  719. package/dist/lib/cloud/validate-path.d.ts +0 -23
  720. package/dist/lib/cloud/validate-path.js +0 -103
  721. package/dist/lib/engine.d.ts +0 -51
  722. package/dist/lib/game-task-plan.d.ts +0 -42
  723. package/dist/lib/project-memory.d.ts +0 -33
  724. package/dist/lib/public-surface-paths.d.ts +0 -13
  725. package/dist/lib/public-surface-paths.js +0 -42
  726. package/dist/lib/remote-templates.d.ts +0 -25
  727. package/dist/lib/remote-templates.js +0 -86
  728. package/dist/lib/skills-registry.d.ts +0 -572
  729. package/dist/lib/skills-registry.js +0 -1061
  730. package/dist/lib/version-check.d.ts +0 -106
  731. package/dist/lib/version-check.js +0 -338
  732. package/dist/mcp/tools/cloud-tools.js +0 -42
  733. package/references/mcp-tools-reference.md +0 -199
  734. package/references/template-registry.md +0 -73
  735. package/skills/README.md +0 -103
  736. package/skills/scene-and-project/summer-cloud/SKILL.md +0 -92
  737. package/skills/workflow/brainstorming/scripts/frame-template.html +0 -214
  738. package/skills/workflow/brainstorming/scripts/helper.js +0 -88
  739. package/skills/workflow/brainstorming/scripts/server.cjs +0 -354
  740. package/skills/workflow/brainstorming/scripts/start-server.sh +0 -148
  741. package/skills/workflow/brainstorming/scripts/stop-server.sh +0 -56
  742. package/skills/workflow/brainstorming/visual-companion.md +0 -287
  743. package/skills/workflow/gameskill/SKILL.md +0 -120
  744. package/skills/workflow/investigating-bugs/CREATION-LOG.md +0 -119
  745. package/skills/workflow/investigating-bugs/condition-based-waiting-example.ts +0 -158
  746. package/skills/workflow/investigating-bugs/find-polluter.sh +0 -63
  747. package/skills/workflow/investigating-bugs/test-academic.md +0 -14
  748. package/skills/workflow/investigating-bugs/test-pressure-1.md +0 -58
  749. package/skills/workflow/investigating-bugs/test-pressure-2.md +0 -68
  750. package/skills/workflow/investigating-bugs/test-pressure-3.md +0 -69
  751. package/skills/workflow/mcpupdate/SKILL.md +0 -134
  752. package/skills/workflow/skill-create/SKILL.md +0 -153
  753. package/skills/workflow/writing-skills/anthropic-best-practices.md +0 -1150
  754. package/skills/workflow/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
  755. package/skills/workflow/writing-skills/graphviz-conventions.dot +0 -172
  756. package/skills/workflow/writing-skills/persuasion-principles.md +0 -187
  757. package/skills/workflow/writing-skills/render-graphs.js +0 -168
  758. /package/dist/{commands → cli/commands}/config.d.ts +0 -0
  759. /package/dist/{commands → cli/commands}/debug.d.ts +0 -0
  760. /package/dist/{commands → cli/commands}/list.d.ts +0 -0
  761. /package/dist/{commands → cli/commands}/login.d.ts +0 -0
  762. /package/dist/{commands → cli/commands}/plan.d.ts +0 -0
  763. /package/dist/{commands → cli/commands}/publish.d.ts +0 -0
  764. /package/dist/{commands → cli/commands}/releases.d.ts +0 -0
  765. /package/dist/{commands → cli/commands}/setup.d.ts +0 -0
  766. /package/dist/{commands → cli/commands}/skills.d.ts +0 -0
  767. /package/dist/{lib → core}/log-filters.d.ts +0 -0
  768. /package/dist/{lib → core}/mcp-log.d.ts +0 -0
  769. /package/dist/{lib → core}/store.d.ts +0 -0
  770. /package/dist/{lib → core}/summer-compatibility.d.ts +0 -0
  771. /package/dist/{lib → core}/telemetry.d.ts +0 -0
  772. /package/dist/{lib/mcp-boot-notice.js → mcp/boot-notice.js} +0 -0
  773. /package/dist/{commands/mcp.d.ts → mcp/command.d.ts} +0 -0
  774. /package/{references → library/references/collaborative-protocol}/collaborative-protocol.md +0 -0
  775. /package/{references → library/references/gd-style}/gd-style.md +0 -0
  776. /package/{skills/audio → library/skills}/ambient-bed/SKILL.md +0 -0
  777. /package/{skills/gameplay-mechanics → library/skills}/auto-fire-targeting/SKILL.md +0 -0
  778. /package/{skills/scripting-patterns → library/skills}/gdscript-patterns/SKILL.md +0 -0
  779. /package/{skills/scripting-patterns → library/skills}/gdscript-patterns/reference.md +0 -0
  780. /package/{skills/multiplayer-and-networking → library/skills}/host-authoritative-state/SKILL.md +0 -0
  781. /package/{skills/workflow → library/skills}/investigating-bugs/defense-in-depth.md +0 -0
  782. /package/{skills/audio → library/skills}/music-track/SKILL.md +0 -0
  783. /package/{skills/scene-and-project → library/skills}/play/SKILL.md +0 -0
  784. /package/{skills/multiplayer-and-networking → library/skills}/setup-multiplayer/SKILL.md +0 -0
  785. /package/{skills/ui-and-ux → library/skills}/ui-basics/SKILL.md +0 -0
  786. /package/{skills/visual-effects → library/skills/vfx-dissolve}/_building-blocks/noise-3d-fbm.gdshaderinc +0 -0
  787. /package/{skills/visual-effects → library/skills/vfx-fire}/_building-blocks/additive-billboard-particles.md +0 -0
  788. /package/{skills/visual-effects → library/skills/vfx-lightning}/_building-blocks/trauma-shake-snippet.md +0 -0
  789. /package/{skills/audio → library/skills}/voice-line/SKILL.md +0 -0
  790. /package/{skills/workflow → library/skills}/writing-plans/plan-document-reviewer-prompt.md +0 -0
@@ -1,184 +0,0 @@
1
- import { mkdir, readFile } from "fs/promises";
2
- import { join } from "path";
3
- import { getCloudApi } from "./api.js";
4
- import { getBlobTransport } from "./http.js";
5
- import { sha256Hex } from "./manifest.js";
6
- import { stagingDir } from "./paths.js";
7
- /** Server batch caps (spec 7.5 to 7.8); the server 400s above these. */
8
- export const CHECK_BATCH = 10_000;
9
- export const PRESIGN_BATCH = 500;
10
- export const COMPLETE_BATCH = 500;
11
- export const PRESIGN_GET_BATCH = 500;
12
- const UPLOAD_CONCURRENCY = 16;
13
- const DOWNLOAD_CONCURRENCY = 32;
14
- const RETRY_BACKOFF_MS = [1_000, 2_000, 4_000];
15
- export async function uploadBlobs(projectId, blobs) {
16
- const api = getCloudApi();
17
- const hashes = [...blobs.keys()];
18
- const outcome = { uploaded: [], requeued: [] };
19
- if (!hashes.length)
20
- return outcome;
21
- const missing = new Set();
22
- for (const chunk of chunks(hashes, CHECK_BATCH)) {
23
- for (const hash of (await api.checkBlobs(projectId, chunk)).missing)
24
- missing.add(hash);
25
- }
26
- if (!missing.size)
27
- return outcome;
28
- // JIT presign loop: presign in batches as the upload queue drains so URLs
29
- // stay fresh on slow links.
30
- const queue = [...missing];
31
- while (queue.length) {
32
- const batch = queue.splice(0, PRESIGN_BATCH);
33
- const toPresign = batch.map((sha256) => {
34
- const source = blobs.get(sha256);
35
- if (!source)
36
- throw new Error(`Missing upload source for ${sha256}`);
37
- return { sha256, size: source.size };
38
- });
39
- const signed = await api.presignBlobs(projectId, toPresign);
40
- const completed = [];
41
- await runWithConcurrency(signed.blobs, UPLOAD_CONCURRENCY, async (item) => {
42
- if (item.status === "exists")
43
- return;
44
- if (item.status !== "upload" || !item.url || !item.uploadId || !item.headers) {
45
- throw new Error(item.message || `Could not presign ${item.sha256}: ${item.status}`);
46
- }
47
- const result = await putWithRetry(projectId, item, blobs.get(item.sha256));
48
- if (result === "uploaded") {
49
- completed.push({ sha256: item.sha256, uploadId: item.uploadId });
50
- outcome.uploaded.push(item.sha256);
51
- }
52
- else if (result === "already-verified") {
53
- outcome.uploaded.push(item.sha256);
54
- }
55
- else {
56
- outcome.requeued.push(item.sha256);
57
- }
58
- });
59
- for (const completeChunk of chunks(completed, COMPLETE_BATCH)) {
60
- if (!completeChunk.length)
61
- continue;
62
- const result = await api.completeBlobs(projectId, completeChunk);
63
- const failed = result.uploads.filter((upload) => upload.status !== "verified");
64
- if (failed.length) {
65
- throw new Error(`Cloud upload completion failed: ${failed.map((f) => `${f.sha256}:${f.status}`).join(", ")}`);
66
- }
67
- }
68
- }
69
- return outcome;
70
- }
71
- async function putWithRetry(projectId, item, source) {
72
- const api = getCloudApi();
73
- const transport = getBlobTransport();
74
- // Re-hash the bytes that are actually sent (spec 8.6.4); on divergence from
75
- // the diff-time hash, abort this file and requeue it for the next run.
76
- const bytes = source.bytes ?? (await readFile(source.path));
77
- if (sha256Hex(bytes) !== item.sha256) {
78
- return "requeued";
79
- }
80
- for (let attempt = 0;; attempt += 1) {
81
- const status = await transport.put(item.url, item.headers, bytes);
82
- if (status >= 200 && status < 300)
83
- return "uploaded";
84
- if (status === 429) {
85
- // R2 per-key write throttling: back off 1s and re-check; verified means
86
- // someone else won the race with identical bytes.
87
- await sleep(1_000);
88
- const recheck = await api.checkBlobs(projectId, [item.sha256]);
89
- if (!recheck.missing.includes(item.sha256))
90
- return "already-verified";
91
- }
92
- if (attempt >= RETRY_BACKOFF_MS.length) {
93
- throw new Error(`R2 upload failed for ${item.sha256}: ${status}`);
94
- }
95
- await sleep(RETRY_BACKOFF_MS[attempt]);
96
- }
97
- }
98
- /**
99
- * Two-phase pull, phase 1 (spec 8.7): stream every needed blob to
100
- * .summer/local/cloud/staging/{sha256}, verify its sha256, fsync. Returns the
101
- * staged file path per hash. Already-staged blobs with a verified hash are
102
- * reused (journal resume).
103
- */
104
- export async function downloadBlobs(projectRoot, projectId, hashes) {
105
- const api = getCloudApi();
106
- const transport = getBlobTransport();
107
- const unique = [...new Set(hashes)];
108
- const staged = new Map();
109
- await mkdir(stagingDir(projectRoot), { recursive: true, mode: 0o700 });
110
- const needed = [];
111
- for (const hash of unique) {
112
- const path = join(stagingDir(projectRoot), hash);
113
- if (await isStagedAndValid(path, hash)) {
114
- staged.set(hash, path);
115
- }
116
- else {
117
- needed.push(hash);
118
- }
119
- }
120
- for (const chunk of chunks(needed, PRESIGN_GET_BATCH)) {
121
- const signed = await api.presignGet(projectId, chunk);
122
- if (signed.missing.length) {
123
- throw new Error(`Cloud is missing referenced blobs: ${signed.missing.join(", ")}`);
124
- }
125
- await runWithConcurrency(chunk, DOWNLOAD_CONCURRENCY, async (hash) => {
126
- const url = signed.urls[hash];
127
- if (!url)
128
- throw new Error(`No URL for ${hash}`);
129
- const path = join(stagingDir(projectRoot), hash);
130
- for (let attempt = 0;; attempt += 1) {
131
- const result = await transport.getToFile(url, path);
132
- if (result.status >= 200 && result.status < 300) {
133
- if (result.sha256 !== hash)
134
- throw new Error(`Downloaded blob hash mismatch: ${hash}`);
135
- staged.set(hash, path);
136
- return;
137
- }
138
- if (attempt >= RETRY_BACKOFF_MS.length) {
139
- throw new Error(`Download failed for ${hash}: ${result.status}`);
140
- }
141
- await sleep(RETRY_BACKOFF_MS[attempt]);
142
- }
143
- });
144
- }
145
- return staged;
146
- }
147
- async function isStagedAndValid(path, hash) {
148
- try {
149
- const bytes = await readFile(path);
150
- return sha256Hex(bytes) === hash;
151
- }
152
- catch {
153
- return false;
154
- }
155
- }
156
- async function runWithConcurrency(items, limit, worker) {
157
- const pending = [...items];
158
- const errors = [];
159
- const runners = Array.from({ length: Math.min(limit, pending.length) }, async () => {
160
- while (pending.length) {
161
- const item = pending.shift();
162
- if (item === undefined)
163
- return;
164
- try {
165
- await worker(item);
166
- }
167
- catch (err) {
168
- errors.push(err);
169
- }
170
- }
171
- });
172
- await Promise.all(runners);
173
- if (errors.length)
174
- throw errors[0];
175
- }
176
- function chunks(items, size) {
177
- const out = [];
178
- for (let i = 0; i < items.length; i += size)
179
- out.push(items.slice(i, i + size));
180
- return out;
181
- }
182
- function sleep(ms) {
183
- return new Promise((resolve) => setTimeout(resolve, ms));
184
- }
@@ -1,62 +0,0 @@
1
- export type HashHex = string;
2
- export interface ManifestFile {
3
- sha256: HashHex;
4
- size: number;
5
- }
6
- export interface CloudManifest {
7
- schemaVersion: 1;
8
- projectId: string;
9
- rulesVersion: number;
10
- files: Record<string, ManifestFile>;
11
- }
12
- export interface CloudBinding {
13
- schemaVersion: 1;
14
- projectId: string;
15
- pinnedVersion?: number;
16
- }
17
- export interface BaseState extends CloudManifest {
18
- version: number;
19
- }
20
- export interface PullJournal {
21
- syncId: string;
22
- targetVersion: number;
23
- phase: "staging" | "applying";
24
- pending: Array<{
25
- path: string;
26
- sha256: string;
27
- }>;
28
- }
29
- export interface LocalFileStat {
30
- size: number;
31
- mtimeNs: string;
32
- inode: string;
33
- }
34
- export interface WalkResult {
35
- files: Record<string, ManifestFile>;
36
- fileByHash: Map<string, string>;
37
- /** NFC manifest key to actual absolute on-disk path (byte-name map for I/O). */
38
- diskPathByKey: Map<string, string>;
39
- /** Pre-image stats captured at hash time, used by the apply-time stat check. */
40
- statByKey: Map<string, LocalFileStat>;
41
- skippedSymlinks: string[];
42
- /** Paths excluded from THIS run because they kept changing while hashing. */
43
- unstablePaths: string[];
44
- }
45
- export type BootstrapChoice = "keep-cloud" | "keep-local" | "merge";
46
- export interface SyncOptions {
47
- project?: string;
48
- json?: boolean;
49
- confirmDeletes?: boolean;
50
- bootstrap?: BootstrapChoice;
51
- /** Accept that the project folder moved and update .summer/local/.project_path. */
52
- adoptPath?: boolean;
53
- }
54
- export interface SyncResult {
55
- ok: boolean;
56
- action: string;
57
- projectId?: string;
58
- version?: number;
59
- message: string;
60
- notices?: string[];
61
- details?: Record<string, unknown>;
62
- }
@@ -1 +0,0 @@
1
- export {};
@@ -1,23 +0,0 @@
1
- /**
2
- * Unicode case folding approximation without ICU: lower, upper, lower. The
3
- * round trip folds one-to-many mappings that plain toLowerCase misses
4
- * (eszett to ss, long s to s, final sigma to sigma).
5
- */
6
- export declare function casefoldKey(path: string): string;
7
- export declare function validateCloudPath(path: string): {
8
- ok: true;
9
- } | {
10
- ok: false;
11
- reason: string;
12
- };
13
- export interface PathCollision {
14
- kind: "casefold" | "nfc" | "prefix";
15
- a: string;
16
- b: string;
17
- }
18
- /**
19
- * Pairwise key collision checks (spec section 9): two keys equal after NFC,
20
- * two keys equal under casefold(NFC(key)), or one key being a directory
21
- * prefix of another (file vs directory collision).
22
- */
23
- export declare function findPathCollisions(keys: readonly string[]): PathCollision[];
@@ -1,103 +0,0 @@
1
- const WINDOWS_RESERVED_BASENAMES = new Set([
2
- "con",
3
- "prn",
4
- "aux",
5
- "nul",
6
- "com0",
7
- "com1",
8
- "com2",
9
- "com3",
10
- "com4",
11
- "com5",
12
- "com6",
13
- "com7",
14
- "com8",
15
- "com9",
16
- "com¹",
17
- "com²",
18
- "com³",
19
- "lpt0",
20
- "lpt1",
21
- "lpt2",
22
- "lpt3",
23
- "lpt4",
24
- "lpt5",
25
- "lpt6",
26
- "lpt7",
27
- "lpt8",
28
- "lpt9",
29
- "lpt¹",
30
- "lpt²",
31
- "lpt³",
32
- ]);
33
- /** Spec section 9: full key at most 1024 bytes, each segment at most 255. */
34
- const MAX_KEY_BYTES = 1024;
35
- const MAX_SEGMENT_BYTES = 255;
36
- /**
37
- * Unicode case folding approximation without ICU: lower, upper, lower. The
38
- * round trip folds one-to-many mappings that plain toLowerCase misses
39
- * (eszett to ss, long s to s, final sigma to sigma).
40
- */
41
- export function casefoldKey(path) {
42
- return path.normalize("NFC").toLowerCase().toUpperCase().toLowerCase();
43
- }
44
- export function validateCloudPath(path) {
45
- if (!path || path !== path.normalize("NFC"))
46
- return { ok: false, reason: "Path must be non-empty and NFC-normalized" };
47
- if (path.startsWith("/") || path.startsWith("\\") || /^[a-zA-Z]:/.test(path))
48
- return { ok: false, reason: "Path must be relative" };
49
- if (path.includes("\\") || path.includes("//") || path.endsWith("/") || /[\u0000-\u001f]/.test(path)) {
50
- return { ok: false, reason: "Path contains invalid characters" };
51
- }
52
- if (Buffer.byteLength(path, "utf8") > MAX_KEY_BYTES)
53
- return { ok: false, reason: `Path exceeds ${MAX_KEY_BYTES} bytes` };
54
- for (const segment of path.split("/")) {
55
- if (!segment || segment === "." || segment === "..")
56
- return { ok: false, reason: "Path contains dot or empty segment" };
57
- if (Buffer.byteLength(segment, "utf8") > MAX_SEGMENT_BYTES)
58
- return { ok: false, reason: `Path segment exceeds ${MAX_SEGMENT_BYTES} bytes` };
59
- if (segment.endsWith(".") || segment.endsWith(" "))
60
- return { ok: false, reason: "Path segment ends with dot or space" };
61
- if (/[<>:"|?*]/.test(segment))
62
- return { ok: false, reason: "Path segment contains a reserved character" };
63
- if (WINDOWS_RESERVED_BASENAMES.has(casefoldKey(segment.split(".")[0] || ""))) {
64
- return { ok: false, reason: "Path segment uses a Windows device name" };
65
- }
66
- }
67
- return { ok: true };
68
- }
69
- /**
70
- * Pairwise key collision checks (spec section 9): two keys equal after NFC,
71
- * two keys equal under casefold(NFC(key)), or one key being a directory
72
- * prefix of another (file vs directory collision).
73
- */
74
- export function findPathCollisions(keys) {
75
- const collisions = [];
76
- const byNfc = new Map();
77
- const byFold = new Map();
78
- for (const key of keys) {
79
- const nfc = key.normalize("NFC");
80
- const priorNfc = byNfc.get(nfc);
81
- if (priorNfc !== undefined && priorNfc !== key) {
82
- collisions.push({ kind: "nfc", a: priorNfc, b: key });
83
- }
84
- else {
85
- byNfc.set(nfc, key);
86
- }
87
- const folded = casefoldKey(key);
88
- const priorFold = byFold.get(folded);
89
- if (priorFold !== undefined && priorFold !== key) {
90
- collisions.push({ kind: "casefold", a: priorFold, b: key });
91
- }
92
- else {
93
- byFold.set(folded, key);
94
- }
95
- }
96
- const sorted = [...keys].sort();
97
- for (let i = 0; i + 1 < sorted.length; i += 1) {
98
- if (sorted[i + 1].startsWith(`${sorted[i]}/`)) {
99
- collisions.push({ kind: "prefix", a: sorted[i], b: sorted[i + 1] });
100
- }
101
- }
102
- return collisions;
103
- }
@@ -1,51 +0,0 @@
1
- export interface EngineSelection {
2
- instanceId?: string;
3
- projectPath?: string;
4
- cwd?: string;
5
- }
6
- export interface EngineDiscoveryOptions {
7
- summerDir?: string;
8
- nowMs?: number;
9
- }
10
- export interface EngineInstance {
11
- schemaVersion: 1;
12
- instanceId: string;
13
- pid: number;
14
- port: number;
15
- token: string;
16
- projectId?: string;
17
- projectIdHash?: string;
18
- resourceRoot: string;
19
- projectName?: string;
20
- heartbeatAt: number;
21
- engineVersion?: string;
22
- }
23
- export interface EngineConnection {
24
- port: number;
25
- token: string;
26
- health: EngineHealth;
27
- instance?: EngineInstance;
28
- selection: EngineSelection | null;
29
- source: "registry" | "legacy";
30
- }
31
- export declare function getApiToken(summerDir?: string): Promise<string | null>;
32
- export declare function getApiPort(summerDir?: string): Promise<number>;
33
- export declare function findProjectRoot(startPath: string): Promise<string | null>;
34
- export declare function listEngineInstances(nowMs?: number, summerDir?: string): Promise<EngineInstance[]>;
35
- export declare function resolveEngineConnection(selection?: EngineSelection, options?: EngineDiscoveryOptions): Promise<EngineConnection>;
36
- export interface EngineHealth {
37
- ok: boolean;
38
- engine: string;
39
- version: string;
40
- port: number;
41
- pid?: number;
42
- instanceId?: string;
43
- projectId?: string;
44
- projectIdHash?: string;
45
- mainAliveMs?: number;
46
- queueDepth?: number;
47
- project_name?: string;
48
- project_path?: string;
49
- scene?: string;
50
- }
51
- export declare function checkEngineHealth(port: number): Promise<EngineHealth | null>;
@@ -1,42 +0,0 @@
1
- export declare const GAME_TASK_MODES: readonly ["auto", "new-game", "feature", "asset", "debug", "playtest", "polish", "ship"];
2
- export declare const GAME_TASK_TARGETS: readonly ["auto", "2d", "3d", "ui", "audio", "animation", "level", "npc", "multiplayer"];
3
- export declare const ASSET_POLICIES: readonly ["reuse-first", "ask-before-paid-generation", "no-paid-generation", "generate-when-clearly-needed"];
4
- export declare const VERIFICATION_LEVELS: readonly ["none", "fast", "full"];
5
- export type GameTaskMode = (typeof GAME_TASK_MODES)[number];
6
- export type GameTaskTarget = (typeof GAME_TASK_TARGETS)[number];
7
- export type AssetPolicy = (typeof ASSET_POLICIES)[number];
8
- export type VerificationLevel = (typeof VERIFICATION_LEVELS)[number];
9
- export interface GameTaskPlanOptions {
10
- goal: string;
11
- mode?: GameTaskMode;
12
- target?: GameTaskTarget;
13
- assetPolicy?: AssetPolicy;
14
- verification?: VerificationLevel;
15
- }
16
- export interface SkillRoute {
17
- id: string;
18
- name: string;
19
- category: string;
20
- why: string;
21
- requiresMcpTools: readonly string[];
22
- }
23
- export interface GameTaskPlan {
24
- goal: string;
25
- mode: Exclude<GameTaskMode, "auto">;
26
- target: Exclude<GameTaskTarget, "auto"> | "general";
27
- assetPolicy: AssetPolicy;
28
- verification: VerificationLevel;
29
- principles: string[];
30
- recommendedSkills: SkillRoute[];
31
- mcpToolPlan: {
32
- start: string[];
33
- mutate: string[];
34
- assets: string[];
35
- verify: string[];
36
- };
37
- hostFileWork: string[];
38
- userGates: string[];
39
- nextAgentSteps: string[];
40
- antiPatterns: string[];
41
- }
42
- export declare function buildGameTaskPlan(options: GameTaskPlanOptions): GameTaskPlan;
@@ -1,33 +0,0 @@
1
- export interface ProjectMemoryFileSummary {
2
- path: string;
3
- kind: string;
4
- title: string | null;
5
- modifiedTime: string;
6
- bytes: number;
7
- locked: boolean;
8
- }
9
- export interface ProjectMemorySummary {
10
- present: boolean;
11
- root: ".summer";
12
- reason?: string;
13
- canonical: {
14
- gameSoul: ProjectMemoryFileSummary | null;
15
- artBible: ProjectMemoryFileSummary | null;
16
- audioBible: ProjectMemoryFileSummary | null;
17
- buildPlan: ProjectMemoryFileSummary | null;
18
- legacyVoiceCast: ProjectMemoryFileSummary | null;
19
- };
20
- structured: {
21
- present: boolean;
22
- indexPresent: boolean;
23
- fileCount: number;
24
- lockedCount: number;
25
- files: ProjectMemoryFileSummary[];
26
- truncated: boolean;
27
- };
28
- files: ProjectMemoryFileSummary[];
29
- guidance: string;
30
- }
31
- export declare function getProjectMemorySummary(projectPath: string | null | undefined, options?: {
32
- maxFiles?: number;
33
- }): ProjectMemorySummary;
@@ -1,13 +0,0 @@
1
- export interface PathFlavor {
2
- isAbsolute(path: string): boolean;
3
- relative(from: string, to: string): string;
4
- resolve(...paths: string[]): string;
5
- sep: string;
6
- }
7
- export interface PublicSurfaceRoots {
8
- packageRoot: string;
9
- engineRoot: string;
10
- }
11
- export declare function snapshotPublicPath(pathFlavor: PathFlavor, roots: PublicSurfaceRoots, file: string): string;
12
- export declare function compareByCodePoint(left: string, right: string): number;
13
- export declare function stablePublicPathInventory(pathFlavor: PathFlavor, roots: PublicSurfaceRoots, files: readonly string[]): string;
@@ -1,42 +0,0 @@
1
- function relativeWithin(pathFlavor, root, file) {
2
- const resolvedRoot = pathFlavor.resolve(root);
3
- const resolvedFile = pathFlavor.resolve(file);
4
- const candidate = pathFlavor.relative(resolvedRoot, resolvedFile);
5
- if (pathFlavor.isAbsolute(candidate) ||
6
- candidate === ".." ||
7
- candidate.startsWith(`..${pathFlavor.sep}`)) {
8
- return null;
9
- }
10
- return candidate;
11
- }
12
- function toPosix(pathFlavor, path) {
13
- return path.split(pathFlavor.sep).join("/");
14
- }
15
- export function snapshotPublicPath(pathFlavor, roots, file) {
16
- const packageRelative = relativeWithin(pathFlavor, roots.packageRoot, file);
17
- if (packageRelative !== null) {
18
- return `cli/${toPosix(pathFlavor, packageRelative)}`;
19
- }
20
- const engineRelative = relativeWithin(pathFlavor, roots.engineRoot, file);
21
- if (engineRelative !== null) {
22
- return `engine/${toPosix(pathFlavor, engineRelative)}`;
23
- }
24
- throw new Error(`Public surface escapes both inventory roots: ${file}`);
25
- }
26
- export function compareByCodePoint(left, right) {
27
- const leftPoints = [...left].map((character) => character.codePointAt(0));
28
- const rightPoints = [...right].map((character) => character.codePointAt(0));
29
- const sharedLength = Math.min(leftPoints.length, rightPoints.length);
30
- for (let index = 0; index < sharedLength; index += 1) {
31
- if (leftPoints[index] !== rightPoints[index]) {
32
- return leftPoints[index] - rightPoints[index];
33
- }
34
- }
35
- return leftPoints.length - rightPoints.length;
36
- }
37
- export function stablePublicPathInventory(pathFlavor, roots, files) {
38
- return files
39
- .map((file) => snapshotPublicPath(pathFlavor, roots, file))
40
- .sort(compareByCodePoint)
41
- .join("\n");
42
- }
@@ -1,25 +0,0 @@
1
- export interface RemoteTemplate {
2
- /** Slug used by `summer create <slug>`. The `template-` prefix is stripped. */
3
- slug: string;
4
- /** Full GitHub repo name including the `template-` prefix. */
5
- repo: string;
6
- description: string;
7
- /** Default branch — used when cloning. */
8
- branch: string;
9
- url: string;
10
- cloneUrl: string;
11
- stars: number;
12
- updatedAt: string;
13
- }
14
- export declare function fetchRemoteTemplates(opts?: {
15
- force?: boolean;
16
- }): Promise<RemoteTemplate[]>;
17
- export interface CloneOptions {
18
- /** Where to put the project. Must not already exist. */
19
- targetDir: string;
20
- /** If true, drop the .git directory after clone so the user starts with a clean history. */
21
- detach?: boolean;
22
- }
23
- export declare function cloneTemplate(template: RemoteTemplate, opts: CloneOptions): void;
24
- /** Quick match: exact slug, then prefix, then substring. Returns null if ambiguous or none. */
25
- export declare function matchTemplate(query: string, templates: RemoteTemplate[]): RemoteTemplate | null;
@@ -1,86 +0,0 @@
1
- /**
2
- * Discover and clone open-source Summer Engine project templates hosted at
3
- * github.com/SummerEngine/template-*.
4
- *
5
- * The GitHub API call is cached for one hour in memory to avoid rate-limit
6
- * pain when an agent calls back-to-back.
7
- */
8
- import { execSync } from "node:child_process";
9
- import { existsSync } from "node:fs";
10
- const ORG = "SummerEngine";
11
- const TEMPLATE_PREFIX = "template-";
12
- const CACHE_TTL_MS = 60 * 60 * 1000;
13
- let cache = null;
14
- export async function fetchRemoteTemplates(opts = {}) {
15
- if (!opts.force && cache && Date.now() - cache.fetchedAt < CACHE_TTL_MS) {
16
- return cache.templates;
17
- }
18
- const url = `https://api.github.com/orgs/${ORG}/repos?per_page=100&type=public`;
19
- const headers = {
20
- Accept: "application/vnd.github+json",
21
- "User-Agent": "summer-engine-cli",
22
- };
23
- if (process.env.GITHUB_TOKEN)
24
- headers.Authorization = `Bearer ${process.env.GITHUB_TOKEN}`;
25
- const res = await fetch(url, { headers });
26
- if (!res.ok) {
27
- throw new Error(`GitHub API ${res.status}: ${res.statusText}. ${res.status === 403 ? "Rate-limited; set GITHUB_TOKEN to raise the cap." : ""}`);
28
- }
29
- const repos = (await res.json());
30
- const templates = repos
31
- .filter((r) => r.name.startsWith(TEMPLATE_PREFIX) && !r.archived && !r.fork)
32
- .map((r) => ({
33
- slug: r.name.slice(TEMPLATE_PREFIX.length),
34
- repo: r.name,
35
- description: r.description ?? "",
36
- branch: r.default_branch,
37
- url: r.html_url,
38
- cloneUrl: r.clone_url,
39
- stars: r.stargazers_count,
40
- updatedAt: r.updated_at,
41
- }))
42
- .sort((a, b) => b.stars - a.stars || a.slug.localeCompare(b.slug));
43
- cache = { templates, fetchedAt: Date.now() };
44
- return templates;
45
- }
46
- export function cloneTemplate(template, opts) {
47
- if (existsSync(opts.targetDir)) {
48
- throw new Error(`Directory already exists: ${opts.targetDir}`);
49
- }
50
- // Shallow clone for speed.
51
- try {
52
- execSync(`git clone --depth 1 --branch ${template.branch} ${template.cloneUrl} "${opts.targetDir}"`, {
53
- stdio: ["ignore", "pipe", "pipe"],
54
- });
55
- }
56
- catch (err) {
57
- throw new Error(`git clone failed for ${template.repo}. Is git installed? ${err.message}`);
58
- }
59
- if (opts.detach !== false) {
60
- // Default to detached: the user wants their own history.
61
- const gitDir = `${opts.targetDir}/.git`;
62
- if (existsSync(gitDir)) {
63
- try {
64
- execSync(process.platform === "win32" ? `rmdir /s /q "${gitDir}"` : `rm -rf "${gitDir}"`, {
65
- stdio: "ignore",
66
- });
67
- }
68
- catch {
69
- // best effort — user can clean up manually if it fails
70
- }
71
- }
72
- }
73
- }
74
- /** Quick match: exact slug, then prefix, then substring. Returns null if ambiguous or none. */
75
- export function matchTemplate(query, templates) {
76
- const exact = templates.find((t) => t.slug === query || t.repo === query);
77
- if (exact)
78
- return exact;
79
- const prefix = templates.filter((t) => t.slug.startsWith(query));
80
- if (prefix.length === 1)
81
- return prefix[0];
82
- const substring = templates.filter((t) => t.slug.includes(query));
83
- if (substring.length === 1)
84
- return substring[0];
85
- return null;
86
- }