summer-engine 4.5.0 → 4.8.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 (114) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +3 -2
  3. package/.codex-plugin/plugin.json +5 -4
  4. package/.cursor-plugin/plugin.json +4 -3
  5. package/.factory-plugin/plugin.json +4 -3
  6. package/CHANGELOG.md +50 -0
  7. package/README.md +3 -3
  8. package/commands/start.md +1 -1
  9. package/dist/cli/commands/api.d.ts +43 -0
  10. package/dist/cli/commands/api.js +191 -0
  11. package/dist/cli/commands/login.d.ts +2 -5
  12. package/dist/cli/commands/login.js +10 -81
  13. package/dist/cli/commands/setup.js +175 -32
  14. package/dist/cli/commands/token.d.ts +17 -0
  15. package/dist/cli/commands/token.js +25 -0
  16. package/dist/cli/index.js +4 -0
  17. package/dist/core/api-client.d.ts +5 -1
  18. package/dist/core/api-client.js +21 -0
  19. package/dist/core/capabilities/doctor.d.ts +1 -1
  20. package/dist/core/capabilities/doctor.js +1 -1
  21. package/dist/core/capabilities/game-task-plan.d.ts +2 -2
  22. package/dist/core/capabilities/navigation/open.d.ts +3 -0
  23. package/dist/core/capabilities/navigation/open.js +53 -0
  24. package/dist/core/capabilities/projects-local.js +2 -1
  25. package/dist/core/capabilities/runtime-control.d.ts +2 -2
  26. package/dist/core/capabilities/seeing/args.d.ts +4 -4
  27. package/dist/core/capabilities/tool-dispatch.js +37 -0
  28. package/dist/core/capabilities/ui-control.d.ts +2 -2
  29. package/dist/core/capabilities/view-set.d.ts +11 -0
  30. package/dist/core/capabilities/view-set.js +15 -0
  31. package/dist/core/capability-skew.d.ts +8 -0
  32. package/dist/core/capability-skew.js +18 -0
  33. package/dist/core/cli-session.d.ts +25 -0
  34. package/dist/core/cli-session.js +97 -0
  35. package/dist/core/engine-self-start.d.ts +20 -0
  36. package/dist/core/engine-self-start.js +108 -5
  37. package/dist/core/oauth.d.ts +15 -2
  38. package/dist/core/oauth.js +26 -3
  39. package/dist/core/ops/areas.d.ts +1 -1
  40. package/dist/core/ops/areas.js +5 -3
  41. package/dist/core/ops/engine-answer.js +5 -2
  42. package/dist/core/ops/engine.js +6 -0
  43. package/dist/core/ops/save-files.d.ts +2 -0
  44. package/dist/core/ops/save-files.js +13 -0
  45. package/dist/core/ops/studio-page.d.ts +22 -0
  46. package/dist/core/ops/studio-page.js +63 -0
  47. package/dist/core/sign-in-link.d.ts +38 -0
  48. package/dist/core/sign-in-link.js +106 -0
  49. package/dist/core/store.js +19 -1
  50. package/dist/core/summer-api.d.ts +114 -0
  51. package/dist/core/summer-api.js +281 -0
  52. package/dist/installer/agent-config.d.ts +29 -0
  53. package/dist/installer/agent-config.js +75 -11
  54. package/dist/installer/agent-detect.d.ts +44 -0
  55. package/dist/installer/agent-detect.js +166 -0
  56. package/dist/installer/agent-table.d.ts +19 -0
  57. package/dist/installer/agent-table.js +130 -0
  58. package/dist/installer/setup-error.d.ts +19 -0
  59. package/dist/installer/setup-error.js +34 -0
  60. package/dist/installer/version-check.d.ts +5 -0
  61. package/dist/installer/version-check.js +21 -0
  62. package/dist/mcp/ops-surface.d.ts +10 -0
  63. package/dist/mcp/ops-surface.js +18 -1
  64. package/dist/mcp/server.js +16 -4
  65. package/dist/mcp/tool-results.d.ts +9 -0
  66. package/dist/mcp/tool-results.js +64 -0
  67. package/dist/mcp/tool-surface.js +7 -1
  68. package/dist/mcp/tools/api-tools.d.ts +50 -0
  69. package/dist/mcp/tools/api-tools.js +65 -0
  70. package/dist/mcp/tools/local-project-tools.d.ts +14 -0
  71. package/dist/mcp/tools/local-project-tools.js +13 -2
  72. package/dist/mcp/tools/navigation-tools.js +1 -0
  73. package/dist/mcp/tools/scene-tools.js +7 -0
  74. package/dist/project-memory/agent-instructions.js +11 -3
  75. package/gemini-extension.json +3 -2
  76. package/library/references/mcp-tools-reference/mcp-tools-reference.md +15 -2
  77. package/library/references/mcp-tools-reference/resource.yaml +1 -1
  78. package/library/skills/README.md +6 -5
  79. package/library/skills/design-npc/SKILL.md +1 -1
  80. package/library/skills/design-npc/resource.yaml +2 -1
  81. package/library/skills/make-game/SKILL.md +4 -4
  82. package/library/skills/navigate-summer/SKILL.md +23 -2
  83. package/library/skills/navigate-summer/resource.yaml +5 -3
  84. package/library/skills/summer-api/SKILL.md +198 -0
  85. package/library/skills/summer-api/resource.yaml +38 -0
  86. package/library/skills/summer-assets/SKILL.md +1 -1
  87. package/library/skills/summer-assets/resource.yaml +3 -2
  88. package/library/skills/summer-router/SKILL.md +251 -0
  89. package/library/skills/summer-router/resource.yaml +35 -0
  90. package/library/tools/api-batch/resource.yaml +82 -0
  91. package/library/tools/api-estimate/resource.yaml +52 -0
  92. package/library/tools/api-job/resource.yaml +58 -0
  93. package/library/tools/api-models/resource.yaml +57 -0
  94. package/library/tools/api-run/resource.yaml +70 -0
  95. package/library/tools/view-set/GUIDE.md +3 -0
  96. package/library/tools/view-set/resource.yaml +78 -0
  97. package/package.json +3 -3
  98. package/registry/generated/aliases.json +7 -0
  99. package/registry/generated/counts.json +3 -3
  100. package/registry/generated/gemini-extension.json +3 -2
  101. package/registry/generated/index.json +317 -52
  102. package/registry/generated/marketplace.claude.json +1 -1
  103. package/registry/generated/plugin.claude-directory.json +4 -3
  104. package/registry/generated/plugin.claude.json +3 -2
  105. package/registry/generated/plugin.codex.json +5 -4
  106. package/registry/generated/plugin.cursor.json +4 -3
  107. package/registry/generated/plugin.factory.json +4 -3
  108. package/registry/generated/server.json +2 -2
  109. package/registry/generated/skills-index.md +6 -5
  110. package/registry/generated/skills-registry.json +29 -15
  111. package/registry/operations/legacy-names.json +30 -0
  112. package/registry/operations/public-catalog.json +9169 -4926
  113. package/library/skills/ai-characters-in-games/SKILL.md +0 -235
  114. package/library/skills/ai-characters-in-games/resource.yaml +0 -30
@@ -0,0 +1,78 @@
1
+ id: tool/view-set
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: "Show the person what you work on: the editor view (home, chat, 3D, 2D, script, game, Studio), the right rail, the focus and the nodes to frame."
5
+ use_when:
6
+ - you start editing a scene and want the person to watch it change (3D view, Scene rail, the edited node framed)
7
+ - you edit a script and want it on screen (script view at that file)
8
+ - you play the game or review the result (game view; a frame_shot for a review)
9
+ - you finish and want to leave the person on the best view of the result
10
+ do_not_use_when:
11
+ - selecting a node only to read it — summer_inspect_node; nothing needs to be on screen
12
+ - opening a Summer web page (billing, their games) — studio.open
13
+ facets:
14
+ lifecycle:
15
+ - build
16
+ domains:
17
+ - editor
18
+ - navigation
19
+ compatibility:
20
+ engine: ">=4.6"
21
+ related:
22
+ skills:
23
+ - skill/navigate-summer
24
+ tools:
25
+ - tool/select-node
26
+ - tool/frame-shot
27
+ source: official
28
+ license: MIT
29
+ status: preview
30
+ aliases:
31
+ - summer_view_set
32
+ implementation:
33
+ module: src/mcp/tools/scene-tools.ts
34
+ export: registerSceneTools
35
+ surfaces:
36
+ mcp:
37
+ tool_name: summer_view_set
38
+ remote: false
39
+ input_schema:
40
+ type: object
41
+ properties:
42
+ view:
43
+ type: string
44
+ enum:
45
+ - home
46
+ - chat
47
+ - 3d
48
+ - 2d
49
+ - script
50
+ - game
51
+ - studio
52
+ description: The view to show. 3d and 2d are the scene views, script the script editor, game the running game, chat the in-app chat, home the game list, studio the Studio tab.
53
+ rail:
54
+ type: string
55
+ enum:
56
+ - files
57
+ - scene
58
+ - inspector
59
+ - output
60
+ - none
61
+ description: The right rail beside a scene, script or game view. none hides it. Omit to keep it as it is.
62
+ focus:
63
+ type: string
64
+ description: What to focus. A res:// script or scene opens; a node path selects that node.
65
+ frame:
66
+ type: array
67
+ items:
68
+ type: string
69
+ description: Node paths to frame the camera on (the scene views).
70
+ required:
71
+ - view
72
+ additionalProperties: false
73
+ authority:
74
+ filesystem: false
75
+ editor_mutation: true
76
+ network: false
77
+ credentials: false
78
+ publish: false
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "summer-engine",
3
- "version": "4.5.0",
3
+ "version": "4.8.0",
4
4
  "description": "MCP server, CLI and skills for Summer Engine, the game engine built for AI. Connect Claude Code, Cursor, Codex and other agents to build, test and publish full games to summer.games.",
5
5
  "mcpName": "io.github.SummerEngine/summer",
6
6
  "keywords": [
@@ -83,7 +83,7 @@
83
83
  "sync:catalog": "node scripts/sync-public-catalog.ts"
84
84
  },
85
85
  "engines": {
86
- "node": ">=20"
86
+ "node": ">=22"
87
87
  },
88
88
  "dependencies": {
89
89
  "@modelcontextprotocol/sdk": "^1.30.0",
@@ -93,7 +93,7 @@
93
93
  "zod": "^3.23.0"
94
94
  },
95
95
  "devDependencies": {
96
- "@types/node": "^20.0.0",
96
+ "@types/node": "^22.0.0",
97
97
  "typescript": "^5.5.0",
98
98
  "vitest": "^3.2.4"
99
99
  }
@@ -16,6 +16,7 @@
16
16
  "references/mcp-tools-reference.md": "reference/mcp-tools-reference",
17
17
  "references/public-surface-language.md": "reference/public-surface-language",
18
18
  "references/summer-folder.md": "reference/summer-folder",
19
+ "skill/ai-characters-in-games": "skill/summer-router",
19
20
  "skills/2d-assets/character-portrait": "skill/character-portrait",
20
21
  "skills/2d-assets/concept-art": "skill/concept-art",
21
22
  "skills/2d-assets/create-asset-sheet": "skill/create-asset-sheet",
@@ -99,7 +100,12 @@
99
100
  "smoke": "skill/vfx-smoke",
100
101
  "summer_add_node": "tool/add-node",
101
102
  "summer_align_distribute_3d": "tool/align-distribute-3d",
103
+ "summer_api_batch": "tool/api-batch",
102
104
  "summer_api_docs": "tool/api-docs",
105
+ "summer_api_estimate": "tool/api-estimate",
106
+ "summer_api_job": "tool/api-job",
107
+ "summer_api_models": "tool/api-models",
108
+ "summer_api_run": "tool/api-run",
103
109
  "summer_app_call": "tool/app-call",
104
110
  "summer_app_create": "tool/app-create",
105
111
  "summer_app_data": "tool/app-data",
@@ -218,6 +224,7 @@
218
224
  "summer_ui_activate": "tool/ui-activate",
219
225
  "summer_ui_screenshot": "tool/ui-screenshot",
220
226
  "summer_ui_tree": "tool/ui-tree",
227
+ "summer_view_set": "tool/view-set",
221
228
  "summer_wait_for_event": "tool/wait-for-event",
222
229
  "summer_world_snapshot": "tool/world-snapshot",
223
230
  "summer_write_file": "tool/write-file",
@@ -4,9 +4,9 @@
4
4
  "collection": 0,
5
5
  "example": 0,
6
6
  "reference": 9,
7
- "skill": 132,
7
+ "skill": 133,
8
8
  "template": 19,
9
- "tool": 125
9
+ "tool": 131
10
10
  },
11
- "total": 285
11
+ "total": 292
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": "4.5.0",
4
+ "version": "4.8.0",
5
5
  "description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. The Summer Engine MCP server, context primer and game-dev skills.",
6
6
  "contextFileName": "GEMINI.md",
7
7
  "mcpServers": {
@@ -27,7 +27,6 @@
27
27
  "./library/skills/3d-lighting/",
28
28
  "./library/skills/adaptive-music/",
29
29
  "./library/skills/agent-playtesting/",
30
- "./library/skills/ai-characters-in-games/",
31
30
  "./library/skills/ambient-bed/",
32
31
  "./library/skills/animated-loop/",
33
32
  "./library/skills/animation-tree/",
@@ -107,6 +106,7 @@
107
106
  "./library/skills/store-art/",
108
107
  "./library/skills/store-listing/",
109
108
  "./library/skills/summer-analytics/",
109
+ "./library/skills/summer-api/",
110
110
  "./library/skills/summer-apps/",
111
111
  "./library/skills/summer-apps-design/",
112
112
  "./library/skills/summer-assets/",
@@ -117,6 +117,7 @@
117
117
  "./library/skills/summer-matchmaking/",
118
118
  "./library/skills/summer-parties/",
119
119
  "./library/skills/summer-player-data/",
120
+ "./library/skills/summer-router/",
120
121
  "./library/skills/summer-store/",
121
122
  "./library/skills/summer-world-chat/",
122
123
  "./library/skills/summer-world-saves/",
@@ -147,8 +147,8 @@
147
147
  {
148
148
  "id": "reference/mcp-tools-reference",
149
149
  "kind": "reference",
150
- "version": "1.4.2",
151
- "content_hash": "a96e7758787500aedfca23f720be8b7901ae88e8db18b4adffb93538851458c0",
150
+ "version": "1.4.3",
151
+ "content_hash": "0129465af088ad0c07bf5152c738656b8fcba50cf31e0b0a3ce32eccbc25c7b5",
152
152
  "summary": "Canonical reference for which Summer MCP tool to call — skills should reference tool names exactly as written here.",
153
153
  "use_when": [
154
154
  "choosing between Summer MCP tools and host tools for an operation",
@@ -389,43 +389,6 @@
389
389
  "status": "preview",
390
390
  "recommended": true
391
391
  },
392
- {
393
- "id": "skill/ai-characters-in-games",
394
- "kind": "skill",
395
- "version": "0.3.0",
396
- "content_hash": "57b0fba8a2e4eb383f75ab8d3d1063c1e1aca178031328dab09cb17764049d7d",
397
- "summary": "Safe AI characters in published games: no keys in the build, Summer's player AI gateway, moderation, caps.",
398
- "use_when": [
399
- "a character, creature or object should answer free-form player text or speech in a published game (talking flowers, shopkeepers, companions)",
400
- "about to put a model name, a provider SDK or a provider key into a game project",
401
- "handling AI refusals (ai_disabled, age_policy, credits_exhausted, limit_exceeded) or adding the report button for AI replies",
402
- "topping up Summer credits, setting AI limits or the kill switch for a game's AI characters"
403
- ],
404
- "facets": {
405
- "lifecycle": [
406
- "build"
407
- ],
408
- "domains": [
409
- "ai",
410
- "npc"
411
- ],
412
- "modalities": [
413
- "scripts",
414
- "scenes"
415
- ]
416
- },
417
- "compatibility": {
418
- "engine": ">=4.6"
419
- },
420
- "related": {
421
- "skills": [
422
- "skill/design-npc",
423
- "skill/multiplayer-state"
424
- ]
425
- },
426
- "status": "preview",
427
- "recommended": false
428
- },
429
392
  {
430
393
  "id": "skill/ambient-bed",
431
394
  "kind": "skill",
@@ -1469,8 +1432,8 @@
1469
1432
  {
1470
1433
  "id": "skill/design-npc",
1471
1434
  "kind": "skill",
1472
- "version": "1.0.2",
1473
- "content_hash": "feda92d30082eecf2bafc99fe9ed3f12a4d3c4641fd2790743bf93f9a01d3b57",
1435
+ "version": "1.0.3",
1436
+ "content_hash": "073069eb2348abb0b8b5652f79b2f4e90b7848485422232be86de98a9ec6f986",
1474
1437
  "summary": "Design enemy, NPC, boss or companion behavior: perception, state machine, telegraphs, script stub.",
1475
1438
  "use_when": [
1476
1439
  "designing an enemy, NPC, boss, companion, civilian, or wave-spawned mob's behavior — perception, intent, state machine, telegraphs, defeat handling",
@@ -1496,7 +1459,8 @@
1496
1459
  "skills": [
1497
1460
  "skill/game-feel",
1498
1461
  "skill/vfx-dissolve",
1499
- "skill/vfx-hit-spark"
1462
+ "skill/vfx-hit-spark",
1463
+ "skill/summer-router"
1500
1464
  ]
1501
1465
  },
1502
1466
  "status": "stable",
@@ -2284,7 +2248,7 @@
2284
2248
  "id": "skill/make-game",
2285
2249
  "kind": "skill",
2286
2250
  "version": "1.2.0",
2287
- "content_hash": "79eab1d1c84cdf321347a1952daaf4c4dd18e239f470adf775fba5e0f18116df",
2251
+ "content_hash": "b6078a16547b4d8e14ccc75125b1f3be70543e30f3fb6bc2ab508f5ddae8e069",
2288
2252
  "summary": "Orchestrate 'make me a game': brainstorm, plan, scaffold, mechanics, art, audio, polish, verify, ship.",
2289
2253
  "use_when": [
2290
2254
  "the user says 'make me a game', 'build me a game', 'I want to make a [genre] game', or 'let's build something' — running the full game-dev pipeline",
@@ -2625,13 +2589,14 @@
2625
2589
  {
2626
2590
  "id": "skill/navigate-summer",
2627
2591
  "kind": "skill",
2628
- "version": "1.0.0",
2629
- "content_hash": "cf3fcb80dbae1479a7fdea6a8e21f08d696d1d40e58ac24bf4f98ad414b7b584",
2630
- "summary": "Open a Summer web page or editor surface for the user (billing, their games, a scene) with studio.open.",
2592
+ "version": "1.0.1",
2593
+ "content_hash": "5fb50f4ce2f00dd1d6db8a2373a539ed7027158e2ce6a99f4ea68d6959e0d5e8",
2594
+ "summary": "Open a Summer page or editor view for the person: studio.open, and engine.view_set while you work.",
2631
2595
  "use_when": [
2632
2596
  "the user asks to see, check, or decide something — \"show me my billing\", \"where do I change my plan\", \"open my games\", \"let me look at the scene\", \"take me to the MCP guide for Cursor\"",
2633
- "deciding whether to open a surface for the user or to do the work through Summer tools",
2634
- "handing the user a link (headless, remote, or the user prefers a link) instead of launching a browser"
2597
+ "deciding whether to open a surface (a page of the website) for the user or to do the work through Summer tools or an API",
2598
+ "handing the user a link (headless, remote, or the user prefers a link) instead of launching a browser",
2599
+ "you drive Summer Engine from outside (Claude Code, Codex, Cursor, the summer CLI) and the editor should show what you work on: the view, rail and focus for editing, scripting, playtesting, review and the end result"
2635
2600
  ],
2636
2601
  "facets": {
2637
2602
  "lifecycle": [
@@ -2653,7 +2618,8 @@
2653
2618
  },
2654
2619
  "related": {
2655
2620
  "tools": [
2656
- "tool/open"
2621
+ "tool/open",
2622
+ "tool/view-set"
2657
2623
  ],
2658
2624
  "references": [
2659
2625
  "reference/product-map"
@@ -3918,6 +3884,51 @@
3918
3884
  "status": "stable",
3919
3885
  "recommended": false
3920
3886
  },
3887
+ {
3888
+ "id": "skill/summer-api",
3889
+ "kind": "skill",
3890
+ "version": "1.0.0",
3891
+ "content_hash": "03c2f63c8601e78bf2b2eb3e566ec166461b8f9b33be0b06e6dc9bb29bf1d948",
3892
+ "summary": "Summer API game assets: models, estimate, one job or a batch, download the files.",
3893
+ "use_when": [
3894
+ "generating asset files (3D models, images, sounds, voice, music, video) from a script, a pipeline or a coding agent outside Summer Engine",
3895
+ "making a set of assets in one go (a level's props, every UI icon, a sound pack) as one batch",
3896
+ "choosing a generation model, pricing a job before it runs, or reading a job's state and files",
3897
+ "a generation job answered no_credits, over_limit, not_signed_in or queued"
3898
+ ],
3899
+ "facets": {
3900
+ "lifecycle": [
3901
+ "build"
3902
+ ],
3903
+ "domains": [
3904
+ "assets",
3905
+ "agent-workflow"
3906
+ ],
3907
+ "modalities": [
3908
+ "3d-models",
3909
+ "images",
3910
+ "audio",
3911
+ "video"
3912
+ ]
3913
+ },
3914
+ "related": {
3915
+ "tools": [
3916
+ "tool/api-models",
3917
+ "tool/api-estimate",
3918
+ "tool/api-run",
3919
+ "tool/api-batch",
3920
+ "tool/api-job"
3921
+ ],
3922
+ "skills": [
3923
+ "skill/summer-assets",
3924
+ "skill/summer-cli",
3925
+ "skill/asset-strategy",
3926
+ "skill/summer-router"
3927
+ ]
3928
+ },
3929
+ "status": "preview",
3930
+ "recommended": false
3931
+ },
3921
3932
  {
3922
3933
  "id": "skill/summer-apps",
3923
3934
  "kind": "skill",
@@ -3998,9 +4009,9 @@
3998
4009
  {
3999
4010
  "id": "skill/summer-assets",
4000
4011
  "kind": "skill",
4001
- "version": "1.0.1",
4002
- "content_hash": "2a52ea8260720b3aa81d30dc29439e285afd5ff41592334b957ab4ffbb1f1807",
4003
- "summary": "Make game assets with Summer, no Summer Engine: find, generate and download 3D models, images, audio and video for any engine or app.",
4012
+ "version": "1.0.2",
4013
+ "content_hash": "2545cd7ef9e516f29b8883f0738735bcb5f97895422e76064eccc0ea2a007a11",
4014
+ "summary": "Game assets for any engine, no Summer Engine: find, generate and download them.",
4004
4015
  "use_when": [
4005
4016
  "starting a session that has the Summer assets profile (generation tools, no engine tools)",
4006
4017
  "the person wants assets for their own engine or web app, not a game built in Summer Engine",
@@ -4031,6 +4042,7 @@
4031
4042
  ],
4032
4043
  "skills": [
4033
4044
  "skill/asset-strategy",
4045
+ "skill/summer-api",
4034
4046
  "skill/sound-effect",
4035
4047
  "skill/prop-model",
4036
4048
  "skill/concept-art"
@@ -4313,6 +4325,46 @@
4313
4325
  "status": "stable",
4314
4326
  "recommended": false
4315
4327
  },
4328
+ {
4329
+ "id": "skill/summer-router",
4330
+ "kind": "skill",
4331
+ "version": "1.0.0",
4332
+ "content_hash": "dc25c719d31b25d53288780f53130389c34434a48ee5016d6adf9f5c24d22cd0",
4333
+ "summary": "AI characters for games on Summer Games: Summer Router replies, tools, speech, images.",
4334
+ "use_when": [
4335
+ "a talking NPC (shopkeeper, guard, companion) players chat with, in a single-player or multiplayer game on Summer Games",
4336
+ "a game should speak a line in a character's voice, or make an image, while people play",
4337
+ "about to put a model name, a provider SDK or a provider key into a game project",
4338
+ "choosing between Summer.client.router and Summer.authority.router in a single-player or multiplayer game",
4339
+ "handling Summer Router refusals (limit_reached, credits_required, router_disabled, not_on_summer_games, unavailable) or changing its caps"
4340
+ ],
4341
+ "facets": {
4342
+ "lifecycle": [
4343
+ "build"
4344
+ ],
4345
+ "domains": [
4346
+ "ai",
4347
+ "npc",
4348
+ "multiplayer"
4349
+ ],
4350
+ "modalities": [
4351
+ "scripts",
4352
+ "scenes"
4353
+ ]
4354
+ },
4355
+ "compatibility": {
4356
+ "engine": ">=4.6"
4357
+ },
4358
+ "related": {
4359
+ "skills": [
4360
+ "skill/design-npc",
4361
+ "skill/multiplayer-state",
4362
+ "skill/summer-api"
4363
+ ]
4364
+ },
4365
+ "status": "preview",
4366
+ "recommended": false
4367
+ },
4316
4368
  {
4317
4369
  "id": "skill/summer-store",
4318
4370
  "kind": "skill",
@@ -5930,6 +5982,39 @@
5930
5982
  "publish": false
5931
5983
  }
5932
5984
  },
5985
+ {
5986
+ "id": "tool/api-batch",
5987
+ "kind": "tool",
5988
+ "version": "1.0.0",
5989
+ "content_hash": "8b30f8783781652a455ac3fff4191aece6e7f08b4e29444d999b520d5328589e",
5990
+ "summary": "Run up to 500 Summer API jobs at once, all or none, with the Summer sign-in; follow every job and save the files.",
5991
+ "use_when": [
5992
+ "making many game assets through the Summer API in one go (a set of props, sounds or icons)",
5993
+ "following or downloading a batch that summer_api_batch started"
5994
+ ],
5995
+ "facets": {
5996
+ "lifecycle": [
5997
+ "build"
5998
+ ],
5999
+ "domains": [
6000
+ "generate",
6001
+ "assets"
6002
+ ]
6003
+ },
6004
+ "compatibility": {
6005
+ "engine": ">=4.6"
6006
+ },
6007
+ "status": "preview",
6008
+ "mcp_tool_name": "summer_api_batch",
6009
+ "remote": true,
6010
+ "authority": {
6011
+ "filesystem": true,
6012
+ "editor_mutation": false,
6013
+ "network": true,
6014
+ "credentials": true,
6015
+ "publish": false
6016
+ }
6017
+ },
5933
6018
  {
5934
6019
  "id": "tool/api-docs",
5935
6020
  "kind": "tool",
@@ -5976,6 +6061,142 @@
5976
6061
  "publish": false
5977
6062
  }
5978
6063
  },
6064
+ {
6065
+ "id": "tool/api-estimate",
6066
+ "kind": "tool",
6067
+ "version": "1.0.0",
6068
+ "content_hash": "c230c26f06934f118bfc3a582c1d7df38461478114e5ad21ad8126e6d6009dab",
6069
+ "summary": "The exact USD price of one Summer API job before it runs, its breakdown and a quote id that holds the price for 15 minutes; charges nothing.",
6070
+ "use_when": [
6071
+ "before a Summer API run that spends the person's credits",
6072
+ "the person asks what a generation will cost"
6073
+ ],
6074
+ "facets": {
6075
+ "lifecycle": [
6076
+ "build"
6077
+ ],
6078
+ "domains": [
6079
+ "generate",
6080
+ "assets"
6081
+ ]
6082
+ },
6083
+ "compatibility": {
6084
+ "engine": ">=4.6"
6085
+ },
6086
+ "status": "preview",
6087
+ "mcp_tool_name": "summer_api_estimate",
6088
+ "remote": true,
6089
+ "cli_command": "summer api estimate",
6090
+ "authority": {
6091
+ "filesystem": false,
6092
+ "editor_mutation": false,
6093
+ "network": true,
6094
+ "credentials": false,
6095
+ "publish": false
6096
+ }
6097
+ },
6098
+ {
6099
+ "id": "tool/api-job",
6100
+ "kind": "tool",
6101
+ "version": "1.0.1",
6102
+ "content_hash": "1f1912adb84492c6602d636e90eb3fda450add3b15dda3e46d91a98f5d027677",
6103
+ "summary": "Read a Summer API job (state, price, assets and file URLs); follow it until it finishes and save its files on this computer.",
6104
+ "use_when": [
6105
+ "a summer_api_run answered a running job",
6106
+ "saving a finished Summer API job's files"
6107
+ ],
6108
+ "facets": {
6109
+ "lifecycle": [
6110
+ "build"
6111
+ ],
6112
+ "domains": [
6113
+ "generate",
6114
+ "assets"
6115
+ ]
6116
+ },
6117
+ "compatibility": {
6118
+ "engine": ">=4.6"
6119
+ },
6120
+ "status": "preview",
6121
+ "mcp_tool_name": "summer_api_job",
6122
+ "remote": true,
6123
+ "cli_command": "summer api jobs",
6124
+ "authority": {
6125
+ "filesystem": true,
6126
+ "editor_mutation": false,
6127
+ "network": true,
6128
+ "credentials": true,
6129
+ "publish": false
6130
+ }
6131
+ },
6132
+ {
6133
+ "id": "tool/api-models",
6134
+ "kind": "tool",
6135
+ "version": "1.0.0",
6136
+ "content_hash": "73c3ac25cbe1a46f1e4584f081c9b0d06eee3f76f17cdf356b49d4b380e1638b",
6137
+ "summary": "The Summer API's curated game-dev models with capability, input schema, output formats, typical time and USD price; no sign-in.",
6138
+ "use_when": [
6139
+ "choosing a model for an image, 3D, video, voice, sound or music asset through the Summer API",
6140
+ "checking what a Summer API model costs or takes as input"
6141
+ ],
6142
+ "facets": {
6143
+ "lifecycle": [
6144
+ "build"
6145
+ ],
6146
+ "domains": [
6147
+ "generate",
6148
+ "assets"
6149
+ ]
6150
+ },
6151
+ "compatibility": {
6152
+ "engine": ">=4.6"
6153
+ },
6154
+ "status": "preview",
6155
+ "mcp_tool_name": "summer_api_models",
6156
+ "remote": true,
6157
+ "cli_command": "summer api models",
6158
+ "authority": {
6159
+ "filesystem": false,
6160
+ "editor_mutation": false,
6161
+ "network": true,
6162
+ "credentials": false,
6163
+ "publish": false
6164
+ }
6165
+ },
6166
+ {
6167
+ "id": "tool/api-run",
6168
+ "kind": "tool",
6169
+ "version": "1.0.0",
6170
+ "content_hash": "f032bc0f2b3177f0897a3a3ca4a01ad5725b7f16ce648965cef2294aeeaa5d62",
6171
+ "summary": "Run one Summer API job into the person's Summer assets with the Summer sign-in; spends paid credits within the app's limit, can wait and save the files.",
6172
+ "use_when": [
6173
+ "making a game asset through the Summer API after estimating it",
6174
+ "a script or agent outside Summer Engine needs a generated model, image, sound or clip"
6175
+ ],
6176
+ "facets": {
6177
+ "lifecycle": [
6178
+ "build"
6179
+ ],
6180
+ "domains": [
6181
+ "generate",
6182
+ "assets"
6183
+ ]
6184
+ },
6185
+ "compatibility": {
6186
+ "engine": ">=4.6"
6187
+ },
6188
+ "status": "preview",
6189
+ "mcp_tool_name": "summer_api_run",
6190
+ "remote": true,
6191
+ "cli_command": "summer api run",
6192
+ "authority": {
6193
+ "filesystem": true,
6194
+ "editor_mutation": false,
6195
+ "network": true,
6196
+ "credentials": true,
6197
+ "publish": false
6198
+ }
6199
+ },
5979
6200
  {
5980
6201
  "id": "tool/app-call",
5981
6202
  "kind": "tool",
@@ -10816,6 +11037,50 @@
10816
11037
  "publish": false
10817
11038
  }
10818
11039
  },
11040
+ {
11041
+ "id": "tool/view-set",
11042
+ "kind": "tool",
11043
+ "version": "1.0.0",
11044
+ "content_hash": "f8986edfdd42e5de7dc9d58f67ad4d67acc05b18db211cff935dbb27cf342a2f",
11045
+ "summary": "Show the person what you work on: the editor view (home, chat, 3D, 2D, script, game, Studio), the right rail, the focus and the nodes to frame.",
11046
+ "use_when": [
11047
+ "you start editing a scene and want the person to watch it change (3D view, Scene rail, the edited node framed)",
11048
+ "you edit a script and want it on screen (script view at that file)",
11049
+ "you play the game or review the result (game view; a frame_shot for a review)",
11050
+ "you finish and want to leave the person on the best view of the result"
11051
+ ],
11052
+ "facets": {
11053
+ "lifecycle": [
11054
+ "build"
11055
+ ],
11056
+ "domains": [
11057
+ "editor",
11058
+ "navigation"
11059
+ ]
11060
+ },
11061
+ "compatibility": {
11062
+ "engine": ">=4.6"
11063
+ },
11064
+ "related": {
11065
+ "skills": [
11066
+ "skill/navigate-summer"
11067
+ ],
11068
+ "tools": [
11069
+ "tool/select-node",
11070
+ "tool/frame-shot"
11071
+ ]
11072
+ },
11073
+ "status": "preview",
11074
+ "mcp_tool_name": "summer_view_set",
11075
+ "remote": false,
11076
+ "authority": {
11077
+ "filesystem": false,
11078
+ "editor_mutation": true,
11079
+ "network": false,
11080
+ "credentials": false,
11081
+ "publish": false
11082
+ }
11083
+ },
10819
11084
  {
10820
11085
  "id": "tool/wait-for-event",
10821
11086
  "kind": "tool",
@@ -10,7 +10,7 @@
10
10
  {
11
11
  "name": "summer",
12
12
  "source": "./",
13
- "version": "4.5.0",
13
+ "version": "4.8.0",
14
14
  "description": "The game engine built for AI. Any agent makes a multiplayer game and publishes it. A first-run guide (/summer:start), game-dev skills, and two MCP servers: the bridge to the Summer Engine desktop app, and Summer's hosted cloud server for people without it.",
15
15
  "author": {
16
16
  "name": "Summer Engine",