summer-engine 3.2.1 → 3.4.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 (97) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +4 -2
  3. package/.codex-plugin/plugin.json +5 -3
  4. package/.cursor-plugin/plugin.json +4 -2
  5. package/.factory-plugin/plugin.json +4 -2
  6. package/CHANGELOG.md +61 -0
  7. package/README.md +7 -4
  8. package/assets/api-docs.json.gz +0 -0
  9. package/dist/cli/commands/install.d.ts +10 -0
  10. package/dist/cli/commands/install.js +55 -10
  11. package/dist/cli/commands/login.js +12 -0
  12. package/dist/cli/commands/publish.js +2 -1
  13. package/dist/cli/commands/tool.d.ts +7 -0
  14. package/dist/cli/commands/tool.js +36 -1
  15. package/dist/core/auth.js +3 -0
  16. package/dist/core/capabilities/audit/args.d.ts +14 -14
  17. package/dist/core/capabilities/capture-gameplay.d.ts +69 -0
  18. package/dist/core/capabilities/capture-gameplay.js +283 -0
  19. package/dist/core/capabilities/creator.js +1 -1
  20. package/dist/core/capabilities/doctor.d.ts +9 -1
  21. package/dist/core/capabilities/doctor.js +47 -4
  22. package/dist/core/capabilities/engine-run.d.ts +12 -0
  23. package/dist/core/capabilities/engine-run.js +61 -0
  24. package/dist/core/capabilities/export-engine-version.d.ts +15 -0
  25. package/dist/core/capabilities/export-engine-version.js +24 -0
  26. package/dist/core/capabilities/export-game.d.ts +107 -0
  27. package/dist/core/capabilities/export-game.js +445 -0
  28. package/dist/core/capabilities/export-presets.d.ts +50 -0
  29. package/dist/core/capabilities/export-presets.js +177 -0
  30. package/dist/core/capabilities/export-templates.d.ts +118 -0
  31. package/dist/core/capabilities/export-templates.js +291 -0
  32. package/dist/core/capabilities/image-generation.d.ts +9 -0
  33. package/dist/core/capabilities/image-generation.js +19 -1
  34. package/dist/core/capabilities/publish-build.d.ts +77 -0
  35. package/dist/core/capabilities/publish-build.js +500 -0
  36. package/dist/core/capabilities/publish-download.d.ts +37 -0
  37. package/dist/core/capabilities/publish-download.js +168 -0
  38. package/dist/core/capabilities/runtime-control.d.ts +10 -10
  39. package/dist/core/capabilities/summer-bundle.d.ts +49 -0
  40. package/dist/core/capabilities/summer-bundle.js +156 -0
  41. package/dist/core/capabilities/tool-dispatch.js +43 -1
  42. package/dist/core/capabilities/ui-control.d.ts +2 -2
  43. package/dist/core/config.js +2 -2
  44. package/dist/core/engine-install.d.ts +16 -0
  45. package/dist/core/engine-install.js +32 -2
  46. package/dist/core/hosted-mcp.d.ts +115 -0
  47. package/dist/core/hosted-mcp.js +164 -0
  48. package/dist/core/launch-posture.d.ts +3 -0
  49. package/dist/core/launch-posture.js +15 -2
  50. package/dist/core/library-read.d.ts +2 -2
  51. package/dist/core/oauth.d.ts +78 -0
  52. package/dist/core/oauth.js +309 -0
  53. package/dist/core/util/zip-write.d.ts +18 -0
  54. package/dist/core/util/zip-write.js +112 -0
  55. package/dist/core/util/zip.d.ts +22 -0
  56. package/dist/core/util/zip.js +140 -0
  57. package/dist/mcp/hosted-mount.d.ts +50 -0
  58. package/dist/mcp/hosted-mount.js +200 -0
  59. package/dist/mcp/server.d.ts +2 -1
  60. package/dist/mcp/server.js +14 -6
  61. package/dist/mcp/tools/creator-tools.js +64 -1
  62. package/dist/mcp/tools/generate-tools.js +12 -2
  63. package/gemini-extension.json +3 -1
  64. package/library/references/mcp-tools-reference/mcp-tools-reference.md +7 -3
  65. package/library/skills/README.md +6 -4
  66. package/library/skills/bounded-engine-runs/SKILL.md +96 -0
  67. package/library/skills/bounded-engine-runs/resource.yaml +29 -0
  68. package/library/skills/compatibility-renderer-traps/SKILL.md +78 -0
  69. package/library/skills/compatibility-renderer-traps/resource.yaml +28 -0
  70. package/library/skills/concept-art/SKILL.md +2 -2
  71. package/library/skills/export-and-ship/SKILL.md +4 -0
  72. package/library/skills/headless-scripting/resource.yaml +1 -0
  73. package/library/skills/in-game-purchases/SKILL.md +123 -118
  74. package/library/skills/in-game-purchases/resource.yaml +2 -2
  75. package/library/skills/multiplayer-publish/SKILL.md +5 -1
  76. package/library/skills/navigate-summer/SKILL.md +1 -1
  77. package/library/skills/web-compatibility-look/resource.yaml +1 -0
  78. package/library/tools/capture-gameplay/resource.yaml +73 -0
  79. package/library/tools/creator-publish/resource.yaml +4 -3
  80. package/library/tools/creator-releases/resource.yaml +1 -1
  81. package/library/tools/export-game/resource.yaml +72 -0
  82. package/library/tools/export-templates/resource.yaml +63 -0
  83. package/library/tools/generate-image/resource.yaml +15 -1
  84. package/library/tools/open/resource.yaml +1 -1
  85. package/library/tools/publish-build/resource.yaml +78 -0
  86. package/package.json +1 -1
  87. package/registry/generated/aliases.json +4 -0
  88. package/registry/generated/counts.json +3 -3
  89. package/registry/generated/gemini-extension.json +3 -1
  90. package/registry/generated/index.json +241 -19
  91. package/registry/generated/marketplace.claude.json +2 -2
  92. package/registry/generated/plugin.claude.json +4 -2
  93. package/registry/generated/plugin.codex.json +5 -3
  94. package/registry/generated/plugin.cursor.json +4 -2
  95. package/registry/generated/plugin.factory.json +4 -2
  96. package/registry/generated/skills-index.md +6 -4
  97. package/registry/generated/skills-registry.json +28 -1
@@ -0,0 +1,73 @@
1
+ id: tool/capture-gameplay
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: Capture real gameplay frames (PNG, HUD included) in Summer Engine's offscreen verify instance, without a running editor, e.g. store screenshots.
5
+ use_when:
6
+ - '"take gameplay screenshots for my store page"'
7
+ - '"I need screenshots but the editor is not open"'
8
+ - '"capture a 1920x1080 frame of my game"'
9
+ - collecting real gameplay screenshots for summer_store_set_art desktop.screenshots or mobile.screenshots
10
+ do_not_use_when:
11
+ - the editor is open and the game is running — tool/screenshot with target game shows the live game
12
+ - key art, covers or icons — those are generated art, not gameplay frames
13
+ - checking an interaction with inputs and assertions — RunVerification through tool/batch
14
+ facets:
15
+ lifecycle:
16
+ - launch
17
+ - build
18
+ domains:
19
+ - creator
20
+ - headless
21
+ compatibility:
22
+ engine: ">=4.6"
23
+ source: official
24
+ license: MIT
25
+ status: preview
26
+ aliases:
27
+ - summer_capture_gameplay
28
+ implementation:
29
+ module: src/core/capabilities/capture-gameplay.ts
30
+ export: captureGameplay
31
+ surfaces:
32
+ mcp:
33
+ tool_name: summer_capture_gameplay
34
+ remote: true
35
+ input_schema:
36
+ type: object
37
+ properties:
38
+ project:
39
+ type: string
40
+ description: Project folder with project.godot. Defaults to the MCP's bound project, then the working directory.
41
+ scene:
42
+ type: string
43
+ description: Scene to start (res://... or uid://...). Default is the project's main scene, often a title menu; pass the gameplay scene for gameplay frames.
44
+ resolution:
45
+ type: string
46
+ description: Window size WIDTHxHEIGHT (default 1920x1080; 1080x1920 for portrait).
47
+ frames:
48
+ type: integer
49
+ minimum: 1
50
+ maximum: 10
51
+ description: Frames to save (default 1).
52
+ waitSeconds:
53
+ type: number
54
+ minimum: 0
55
+ maximum: 120
56
+ description: Seconds the game runs before the first frame (default 3).
57
+ intervalSeconds:
58
+ type: number
59
+ minimum: 0.1
60
+ maximum: 60
61
+ description: Seconds between frames (default 1).
62
+ out:
63
+ type: string
64
+ description: Output folder. Defaults to <project>/.summer/captures/<time>/ (ignored by git).
65
+ additionalProperties: false
66
+ authority:
67
+ filesystem: true
68
+ editor_mutation: false
69
+ network: false
70
+ credentials: false
71
+ publish: false
72
+ evidence_checks:
73
+ - none
@@ -1,12 +1,13 @@
1
1
  id: tool/creator-publish
2
2
  kind: tool
3
- version: 1.0.2
4
- summary: Publish an exported Summer .pck through the versioned Summercraft creator API, with an explicit confirm step before upload.
3
+ version: 1.1.0
4
+ summary: "Deprecated: publishes a .pck to the legacy Summercraft API. Use summer_export_game, then summer_publish_build, to upload to summer.games."
5
5
  use_when:
6
6
  - releasing a user-approved build to a Summercraft channel
7
7
  - '"ship this exported build to the live channel"'
8
8
  - '"release version 1.2.0 of my game"'
9
9
  do_not_use_when:
10
+ - uploading to summer.games — summer_export_game, then summer_publish_build
10
11
  - the user has not approved the exact version, digest, and channel
11
12
  - the game is not exported yet — export the .pck first (skill/export-and-ship)
12
13
  facets:
@@ -19,7 +20,7 @@ compatibility:
19
20
  engine: ">=4.6"
20
21
  source: official
21
22
  license: MIT
22
- status: stable
23
+ status: deprecated
23
24
  aliases:
24
25
  - summer_creator_publish
25
26
  implementation:
@@ -7,7 +7,7 @@ use_when:
7
7
  - '"what version is live right now?"'
8
8
  - '"did the publish go through?" — confirming a release landed'
9
9
  do_not_use_when:
10
- - publishing a new release — summer_creator_publish
10
+ - publishing a new release — summer_publish_build
11
11
  facets:
12
12
  lifecycle:
13
13
  - launch
@@ -0,0 +1,72 @@
1
+ id: tool/export-game
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: Export the game in the exact file the Summer Games store takes per platform (iPhone, Android, macOS, Windows bundle; web build; desktop download), headless.
5
+ use_when:
6
+ - '"export my game for summer.games"'
7
+ - '"make a build I can upload to my store page"'
8
+ - '"export my game for iPhone and Android on Summer Games"'
9
+ - '"make a web build of my game for summer.games"'
10
+ - '"export a Mac or Windows download for my store page"'
11
+ - preparing the bundle that summer_publish_build uploads
12
+ do_not_use_when:
13
+ - exporting for Steam, itch.io, the App Store, Google Play or other stores — skill/export-and-ship
14
+ - the game is still being built; export when the user wants a Build
15
+ facets:
16
+ lifecycle:
17
+ - launch
18
+ domains:
19
+ - creator
20
+ - deployment
21
+ - headless
22
+ compatibility:
23
+ engine: ">=4.6"
24
+ source: official
25
+ license: MIT
26
+ status: preview
27
+ aliases:
28
+ - summer_export_game
29
+ implementation:
30
+ module: src/core/capabilities/export-game.ts
31
+ export: exportGame
32
+ surfaces:
33
+ mcp:
34
+ tool_name: summer_export_game
35
+ remote: true
36
+ input_schema:
37
+ type: object
38
+ properties:
39
+ project:
40
+ type: string
41
+ description: Project folder with project.godot. Defaults to the MCP's bound project, then the working directory.
42
+ out:
43
+ type: string
44
+ description: Output .zip path. Defaults to <project>/.summer/exports/.
45
+ targets:
46
+ type: array
47
+ items:
48
+ type: string
49
+ enum: [macos, windows, ios, android, web]
50
+ description: "Store platforms. Bundle: any of macos, windows, ios, android (omit to use every platform the project declares). Download: exactly one of web, macos, windows."
51
+ format:
52
+ type: string
53
+ enum: [bundle, download]
54
+ description: 'bundle (default): the summer.games store build. download: a web build or native download; the default when targets is ["web"].'
55
+ debug:
56
+ type: boolean
57
+ default: false
58
+ description: Export a debug build (--export-debug).
59
+ timeoutSeconds:
60
+ type: integer
61
+ minimum: 10
62
+ maximum: 7200
63
+ description: Stop the engine after this many seconds (default 900; a first export imports every asset).
64
+ additionalProperties: false
65
+ authority:
66
+ filesystem: true
67
+ editor_mutation: false
68
+ network: false
69
+ credentials: false
70
+ publish: false
71
+ evidence_checks:
72
+ - none
@@ -0,0 +1,63 @@
1
+ id: tool/export-templates
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: List and install Summer Engine export templates (Summer's WebGPU Forward+ web template, macOS, Windows) from Summer's CDN, sha256-checked.
5
+ use_when:
6
+ - '"install the web export template"'
7
+ - '"summer_export_game says an export template is missing"'
8
+ - '"which export templates do I have"'
9
+ - before a web build or a macOS/Windows download export on a machine whose Summer Engine does not bundle that template
10
+ do_not_use_when:
11
+ - exporting the summer.games store bundle (iPhone, Android, macOS, Windows apps) — it needs no template, tool/export-game
12
+ - exporting for Steam, itch.io or other stores — skill/export-and-ship
13
+ facets:
14
+ lifecycle:
15
+ - launch
16
+ domains:
17
+ - creator
18
+ - deployment
19
+ compatibility:
20
+ engine: ">=4.6"
21
+ source: official
22
+ license: MIT
23
+ status: preview
24
+ aliases:
25
+ - summer_export_templates
26
+ implementation:
27
+ module: src/core/capabilities/export-templates.ts
28
+ export: exportTemplates
29
+ surfaces:
30
+ mcp:
31
+ tool_name: summer_export_templates
32
+ remote: true
33
+ input_schema:
34
+ type: object
35
+ properties:
36
+ action:
37
+ type: string
38
+ enum: [list, install]
39
+ description: "list: installed and published templates. install: download and install."
40
+ platforms:
41
+ type: array
42
+ items:
43
+ type: string
44
+ enum: [web, macos, windows, linux, ios, android]
45
+ description: Template platforms to install (default ["web"]).
46
+ includeDebug:
47
+ type: boolean
48
+ default: false
49
+ description: Also install the debug templates (for exports with debug true).
50
+ summerVersion:
51
+ type: string
52
+ description: The installed Summer Engine version (Help > About, e.g. 0.7.1). Read automatically on macOS; needed on Windows and Linux.
53
+ required:
54
+ - action
55
+ additionalProperties: false
56
+ authority:
57
+ filesystem: true
58
+ editor_mutation: false
59
+ network: true
60
+ credentials: false
61
+ publish: false
62
+ evidence_checks:
63
+ - none
@@ -45,10 +45,24 @@ input_schema:
45
45
  removeBackground:
46
46
  type: boolean
47
47
  description: Remove the background server-side and return an alpha PNG for sprites, icons, or isolated objects.
48
+ aspectRatio:
49
+ type: string
50
+ enum: ["1:1", "16:9", "9:16", "4:3", "3:4", "3:2", "2:3", "5:4", "4:5", "21:9"]
51
+ description: Aspect ratio of the output (default 1:1). The result reports the real width and height.
52
+ width:
53
+ type: integer
54
+ minimum: 64
55
+ maximum: 4096
56
+ description: Smallest output width in pixels; pass with height. 1920 with height 1080 for store key art, 1080 with 1920 for a tall cover.
57
+ height:
58
+ type: integer
59
+ minimum: 64
60
+ maximum: 4096
61
+ description: Smallest output height in pixels; pass with width.
48
62
  options:
49
63
  type: object
50
64
  additionalProperties: {}
51
- description: Provider-specific params (guidance_scale, seed, image_size, negative_prompt, etc.)
65
+ description: Extra model params (seed, negative_prompt, ...). The result lists any it did not use in ignoredOptions.
52
66
  required:
53
67
  - prompt
54
68
  additionalProperties: false
@@ -9,7 +9,7 @@ use_when:
9
9
  - 'handing the user a link instead of opening a browser (open: false), or checking which destination an intent maps to'
10
10
  - resolving where a user intent lives ("where do I change my plan?") before acting
11
11
  do_not_use_when:
12
- - the user wants a result, not a view — add the node, set the property, publish; use the mutation tools (summer_add_node, summer_set_prop, summer_creator_publish)
12
+ - the user wants a result, not a view — add the node, set the property, publish; use the mutation tools (summer_add_node, summer_set_prop, summer_publish_build)
13
13
  - opening a project directory in the engine — that is the CLI's `summer open <path>` / `summer run <path>` project launcher, not a navigation target
14
14
  - the destination is not on summerengine.com or docs.summerengine.com — the tool refuses other origins
15
15
  facets:
@@ -0,0 +1,78 @@
1
+ id: tool/publish-build
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: Upload an export from summer_export_game to the creator's store game, confirm-gated - a store bundle as a Build, or a web or native download as a store version.
5
+ use_when:
6
+ - '"upload my game to summer.games"'
7
+ - '"publish this build to my store page"'
8
+ - '"put my game online so my friends can play it"'
9
+ - uploading the .zip from summer_export_game as a new Build
10
+ - uploading a web build or a macOS or Windows download from summer_export_game format download
11
+ do_not_use_when:
12
+ - the user has not approved the exact game, file, digest, version and publish choice
13
+ - the game is not exported yet — summer_export_game first
14
+ - store page text, images or price — those are edited in Studio
15
+ facets:
16
+ lifecycle:
17
+ - launch
18
+ domains:
19
+ - creator
20
+ - deployment
21
+ compatibility:
22
+ engine: ">=4.6"
23
+ source: official
24
+ license: MIT
25
+ status: preview
26
+ aliases:
27
+ - summer_publish_build
28
+ implementation:
29
+ module: src/core/capabilities/publish-build.ts
30
+ export: publishBuild
31
+ surfaces:
32
+ mcp:
33
+ tool_name: summer_publish_build
34
+ remote: true
35
+ input_schema:
36
+ type: object
37
+ properties:
38
+ gameId:
39
+ type: string
40
+ description: The store game id (from summer_store_list_games, or the Studio store page URL). Without it the call fails with game_required and lists your store games, or says why the store did not list them.
41
+ file:
42
+ type: string
43
+ description: Exported .zip. Defaults to the last summer_export_game result.
44
+ clientVersion:
45
+ type: string
46
+ description: Build version, vMAJOR.MINOR.PATCH (e.g. v1.0.0); a new upload needs a new version.
47
+ publish:
48
+ type: boolean
49
+ default: false
50
+ description: "Bundles only: also approve the Build for players. A game that has not passed review keeps it as a preview; an agent needs the owner's approval."
51
+ platform:
52
+ type: string
53
+ enum:
54
+ - web
55
+ - macos-universal
56
+ - windows-x64
57
+ - linux-x64
58
+ description: "Web builds and native downloads: the store platform. Defaults to the last export's platform; omit for a store bundle."
59
+ confirm:
60
+ type: boolean
61
+ default: false
62
+ description: Set true only after the user approves the exact upload.
63
+ waitSeconds:
64
+ type: integer
65
+ minimum: 0
66
+ maximum: 1800
67
+ description: How long to wait for Summer to make the Build (default 600). On timeout, call again to keep waiting.
68
+ required:
69
+ - clientVersion
70
+ additionalProperties: false
71
+ authority:
72
+ filesystem: true
73
+ editor_mutation: false
74
+ network: true
75
+ credentials: false
76
+ publish: true
77
+ evidence_checks:
78
+ - none
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "summer-engine",
3
- "version": "3.2.1",
3
+ "version": "3.4.0",
4
4
  "description": "Local Summer CLI and MCP server for Summer Engine. Install and run the engine, connect Claude Code, Cursor, Codex, Gemini, and other agents, and build real games with bundled skills, hooks, and plugins.",
5
5
  "keywords": [
6
6
  "summer-engine",
@@ -103,6 +103,7 @@
103
103
  "summer_attach_to_surface": "tool/attach-to-surface",
104
104
  "summer_batch": "tool/batch",
105
105
  "summer_camera_bookmark": "tool/camera-bookmark",
106
+ "summer_capture_gameplay": "tool/capture-gameplay",
106
107
  "summer_check_job": "tool/check-job",
107
108
  "summer_clear_console": "tool/clear-console",
108
109
  "summer_connect_ports": "tool/connect-ports",
@@ -113,6 +114,8 @@
113
114
  "summer_creator_publish": "tool/creator-publish",
114
115
  "summer_creator_releases": "tool/creator-releases",
115
116
  "summer_debug_views": "tool/debug-views",
117
+ "summer_export_game": "tool/export-game",
118
+ "summer_export_templates": "tool/export-templates",
116
119
  "summer_fabricate_3d": "tool/fabricate-3d",
117
120
  "summer_frame_nodes": "tool/frame-nodes",
118
121
  "summer_frame_shot": "tool/frame-shot",
@@ -160,6 +163,7 @@
160
163
  "summer_place_adjacent": "tool/place-adjacent",
161
164
  "summer_play": "tool/play",
162
165
  "summer_project_setting": "tool/project-setting",
166
+ "summer_publish_build": "tool/publish-build",
163
167
  "summer_raycast": "tool/raycast",
164
168
  "summer_read_file": "tool/read-file",
165
169
  "summer_read_library": "tool/read-library",
@@ -4,9 +4,9 @@
4
4
  "collection": 0,
5
5
  "example": 0,
6
6
  "reference": 9,
7
- "skill": 116,
7
+ "skill": 118,
8
8
  "template": 19,
9
- "tool": 101
9
+ "tool": 105
10
10
  },
11
- "total": 245
11
+ "total": 251
12
12
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "_generated": "GENERATED from integrations/gemini — do not edit; npm run generate:registry",
3
3
  "name": "summer",
4
- "version": "3.2.1",
4
+ "version": "3.4.0",
5
5
  "description": "Agent tooling for Summer Engine: MCP bridge, context primer, and game-dev skills. Use with the npm CLI for skill files on disk.",
6
6
  "contextFileName": "GEMINI.md",
7
7
  "mcpServers": {
@@ -35,6 +35,7 @@
35
35
  "./library/skills/asset-strategy/",
36
36
  "./library/skills/audio-direction/",
37
37
  "./library/skills/auto-fire-targeting/",
38
+ "./library/skills/bounded-engine-runs/",
38
39
  "./library/skills/brainstorm-game/",
39
40
  "./library/skills/brainstorming/",
40
41
  "./library/skills/browse-templates/",
@@ -46,6 +47,7 @@
46
47
  "./library/skills/character-portrait/",
47
48
  "./library/skills/cinematic-cutscene/",
48
49
  "./library/skills/combat-basics/",
50
+ "./library/skills/compatibility-renderer-traps/",
49
51
  "./library/skills/concept-art/",
50
52
  "./library/skills/create-asset-sheet/",
51
53
  "./library/skills/debug/",