summer-engine 3.4.0 → 3.5.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.
- package/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +5 -1
- package/.codex-plugin/plugin.json +5 -1
- package/.cursor-plugin/plugin.json +5 -1
- package/.factory-plugin/plugin.json +5 -1
- package/.opencode/INSTALL.md +8 -8
- package/.opencode/plugins/summer.js +2 -2
- package/AGENTS.md +7 -7
- package/CHANGELOG.md +37 -0
- package/GEMINI.md +1 -1
- package/NOTICE +1 -1
- package/README.md +35 -35
- package/assets/autopilot/run.sh +2 -2
- package/assets/navigation/web-routes.json +1 -1
- package/commands/gameskill.md +2 -2
- package/commands/summer.md +25 -25
- package/dist/cli/commands/open.d.ts +1 -1
- package/dist/cli/commands/run.d.ts +1 -1
- package/dist/cli/commands/run.js +1 -1
- package/dist/cli/commands/setup.js +24 -4
- package/dist/cli/commands/skills.js +2 -2
- package/dist/core/api-client.d.ts +5 -6
- package/dist/core/api-client.js +12 -15
- package/dist/core/auth.js +2 -2
- package/dist/core/capabilities/asset-import.d.ts +0 -1
- package/dist/core/capabilities/camera-view.d.ts +1 -1
- package/dist/core/capabilities/camera-view.js +2 -2
- package/dist/core/capabilities/capture-gameplay.d.ts +72 -7
- package/dist/core/capabilities/capture-gameplay.js +386 -25
- package/dist/core/capabilities/connect-signal.d.ts +1 -2
- package/dist/core/capabilities/connect-signal.js +1 -2
- package/dist/core/capabilities/console-read.d.ts +2 -2
- package/dist/core/capabilities/console-read.js +2 -2
- package/dist/core/capabilities/engine-receipt.d.ts +5 -7
- package/dist/core/capabilities/engine-receipt.js +7 -9
- package/dist/core/capabilities/export-engine-version.d.ts +7 -0
- package/dist/core/capabilities/export-engine-version.js +9 -0
- package/dist/core/capabilities/export-game.d.ts +4 -0
- package/dist/core/capabilities/export-game.js +53 -10
- package/dist/core/capabilities/export-presets.d.ts +1 -1
- package/dist/core/capabilities/export-presets.js +1 -1
- package/dist/core/capabilities/fabricate-mesh.d.ts +2 -3
- package/dist/core/capabilities/fabricate-mesh.js +2 -3
- package/dist/core/capabilities/frame-quality.d.ts +4 -4
- package/dist/core/capabilities/frame-quality.js +4 -4
- package/dist/core/capabilities/grep.d.ts +1 -1
- package/dist/core/capabilities/grep.js +1 -1
- package/dist/core/capabilities/image-generation.d.ts +12 -2
- package/dist/core/capabilities/image-generation.js +31 -2
- package/dist/core/capabilities/navigation/open.d.ts +1 -1
- package/dist/core/capabilities/navigation/open.js +1 -1
- package/dist/core/capabilities/navigation/render-product-map.js +1 -1
- package/dist/core/capabilities/navigation/targets.js +2 -2
- package/dist/core/capabilities/placement-batch.d.ts +1 -1
- package/dist/core/capabilities/placement-batch.js +2 -2
- package/dist/core/capabilities/play-determinism.d.ts +1 -1
- package/dist/core/capabilities/play-determinism.js +1 -1
- package/dist/core/capabilities/publish-build.d.ts +1 -1
- package/dist/core/capabilities/publish-build.js +21 -9
- package/dist/core/capabilities/publish-download.d.ts +1 -2
- package/dist/core/capabilities/publish-download.js +2 -3
- package/dist/core/capabilities/replace-node.d.ts +1 -3
- package/dist/core/capabilities/replace-node.js +1 -3
- package/dist/core/capabilities/runtime-control.d.ts +5 -7
- package/dist/core/capabilities/runtime-control.js +7 -9
- package/dist/core/capabilities/scene-batch.d.ts +1 -1
- package/dist/core/capabilities/scene-batch.js +1 -1
- package/dist/core/capabilities/scene-kind.js +1 -1
- package/dist/core/capabilities/scene-readback.d.ts +3 -4
- package/dist/core/capabilities/scene-readback.js +3 -4
- package/dist/core/capabilities/scene-script.d.ts +2 -2
- package/dist/core/capabilities/scene-script.js +2 -2
- package/dist/core/capabilities/seeing/shot-store.d.ts +1 -1
- package/dist/core/capabilities/seeing/shot-store.js +1 -1
- package/dist/core/capabilities/summer-bundle.d.ts +11 -3
- package/dist/core/capabilities/summer-bundle.js +21 -3
- package/dist/core/capabilities/surface-snap.d.ts +1 -1
- package/dist/core/capabilities/surface-snap.js +1 -1
- package/dist/core/capabilities/tool-dispatch.js +14 -3
- package/dist/core/capabilities/ui-control.d.ts +1 -2
- package/dist/core/capabilities/ui-control.js +1 -2
- package/dist/core/capabilities/world-snapshot.d.ts +1 -1
- package/dist/core/capabilities/world-snapshot.js +1 -1
- package/dist/core/capability-skew.d.ts +2 -3
- package/dist/core/capability-skew.js +4 -5
- package/dist/core/feedback/client.js +1 -1
- package/dist/core/launch-posture.d.ts +3 -3
- package/dist/core/launch-posture.js +3 -3
- package/dist/core/library-read.d.ts +7 -0
- package/dist/core/library-read.js +60 -9
- package/dist/core/library-search.d.ts +2 -0
- package/dist/core/templates.d.ts +1 -2
- package/dist/core/templates.js +1 -2
- package/dist/installer/agent-config.d.ts +25 -0
- package/dist/installer/agent-config.js +114 -3
- package/dist/installer/agent-table.d.ts +12 -0
- package/dist/installer/agent-table.js +9 -0
- package/dist/mcp/server.d.ts +2 -2
- package/dist/mcp/server.js +2 -2
- package/dist/mcp/tools/creator-tools.js +33 -4
- package/dist/mcp/tools/debug-tools.js +1 -1
- package/dist/mcp/tools/generate-tools.js +18 -37
- package/dist/mcp/tools/library-tools.d.ts +2 -1
- package/dist/mcp/tools/library-tools.js +1 -0
- package/dist/mcp/tools/navigation-tools.d.ts +1 -1
- package/dist/mcp/tools/navigation-tools.js +1 -1
- package/dist/mcp/tools/spatial-tools.js +1 -1
- package/dist/mcp/tools/visual-tools.js +2 -2
- package/dist/mcp/tools/with-engine.d.ts +1 -2
- package/dist/mcp/tools/with-engine.js +1 -2
- package/gemini-extension.json +5 -1
- package/hooks/session-start.sh +2 -2
- package/integrations/README.md +70 -76
- package/integrations/claude/README.md +0 -3
- package/integrations/codex/README.md +1 -2
- package/integrations/copilot-jetbrains/README.md +1 -1
- package/integrations/cursor/README.md +1 -2
- package/integrations/factory/README.md +15 -11
- package/integrations/mistral-vibe/README.md +1 -1
- package/integrations/opencode/README.md +1 -1
- package/integrations/roo-code/README.md +1 -1
- package/integrations/rovo-dev/README.md +1 -1
- package/integrations/trae/README.md +1 -1
- package/integrations/windsurf/README.md +3 -3
- package/library/references/collaborative-protocol/collaborative-protocol.md +5 -5
- package/library/references/gd-style/gd-style.md +4 -6
- package/library/references/godot-version/godot-version.md +3 -3
- package/library/references/headless-routing/headless-routing.md +2 -2
- package/library/references/mcp-fresh-chat-playbook/mcp-fresh-chat-playbook.md +2 -2
- package/library/references/mcp-tools-reference/mcp-tools-reference.md +16 -15
- package/library/references/product-map/product-map.md +1 -1
- package/library/references/public-surface-language/public-surface-language.md +1 -1
- package/library/references/summer-folder/summer-folder.md +1 -1
- package/library/skills/3d-lighting/SKILL.md +4 -4
- package/library/skills/README.md +16 -6
- package/library/skills/adaptive-music/SKILL.md +7 -7
- package/library/skills/ai-characters-in-games/SKILL.md +1 -1
- package/library/skills/ambient-bed/SKILL.md +12 -14
- package/library/skills/animated-loop/SKILL.md +42 -42
- package/library/skills/animation-tree/SKILL.md +6 -6
- package/library/skills/art-direction/SKILL.md +8 -11
- package/library/skills/asset-strategy/SKILL.md +3 -3
- package/library/skills/audio-direction/SKILL.md +8 -10
- package/library/skills/auto-fire-targeting/SKILL.md +4 -3
- package/library/skills/bounded-engine-runs/SKILL.md +6 -7
- package/library/skills/brainstorm-game/SKILL.md +5 -5
- package/library/skills/brainstorming/SKILL.md +9 -15
- package/library/skills/celeste-momentum-platforming/SKILL.md +8 -13
- package/library/skills/celeste-momentum-platforming/resource.yaml +1 -1
- package/library/skills/character-animation-wiring/SKILL.md +2 -2
- package/library/skills/character-model/SKILL.md +15 -26
- package/library/skills/character-movement/SKILL.md +1 -1
- package/library/skills/character-movement/references/movement-3d.md +1 -1
- package/library/skills/character-portrait/SKILL.md +4 -4
- package/library/skills/cinematic-cutscene/SKILL.md +38 -38
- package/library/skills/combat-basics/SKILL.md +1 -1
- package/library/skills/compatibility-renderer-traps/SKILL.md +2 -2
- package/library/skills/concept-art/SKILL.md +3 -3
- package/library/skills/create-asset-sheet/SKILL.md +12 -31
- package/library/skills/debug/SKILL.md +5 -4
- package/library/skills/debugging-game-feel/SKILL.md +1 -4
- package/library/skills/debugging-game-feel/resource.yaml +1 -1
- package/library/skills/design-level/SKILL.md +5 -5
- package/library/skills/design-mechanic/SKILL.md +6 -6
- package/library/skills/design-npc/SKILL.md +8 -15
- package/library/skills/diagnosing-perf-regressions/SKILL.md +5 -10
- package/library/skills/dispatching-parallel-agents/SKILL.md +1 -19
- package/library/skills/environment-kit/SKILL.md +5 -5
- package/library/skills/export-and-ship/SKILL.md +24 -25
- package/library/skills/export-and-ship/resource.yaml +2 -1
- package/library/skills/fabricating-assets/SKILL.md +1 -1
- package/library/skills/facial-and-lipsync/SKILL.md +5 -5
- package/library/skills/fps-controller/SKILL.md +17 -16
- package/library/skills/fps-controller/resource.yaml +0 -2
- package/library/skills/game-feel/SKILL.md +6 -7
- package/library/skills/gameskill/SKILL.md +3 -3
- package/library/skills/gdscript-patterns/SKILL.md +3 -3
- package/library/skills/generate-motion/SKILL.md +5 -22
- package/library/skills/godogen-visual-proof-game-generation/SKILL.md +72 -90
- package/library/skills/godogen-visual-proof-game-generation/resource.yaml +0 -1
- package/library/skills/grow-analytics/SKILL.md +21 -0
- package/library/skills/grow-analytics/resource.yaml +27 -0
- package/library/skills/headless-scripting/SKILL.md +8 -8
- package/library/skills/instantiate-asset-pack/SKILL.md +7 -3
- package/library/skills/investigating-bugs/SKILL.md +3 -11
- package/library/skills/investigating-bugs/condition-based-waiting.md +0 -10
- package/library/skills/investigating-bugs/root-cause-tracing.md +0 -8
- package/library/skills/lumera-single-image-scene-reconstruction/SKILL.md +15 -15
- package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +0 -1
- package/library/skills/make-game/SKILL.md +3 -5
- package/library/skills/make-game/references/2d-platformer.md +1 -1
- package/library/skills/multiplayer-project/SKILL.md +1 -1
- package/library/skills/multiplayer-testing/SKILL.md +4 -4
- package/library/skills/music-track/SKILL.md +40 -38
- package/library/skills/new-project/SKILL.md +4 -6
- package/library/skills/organic-model/SKILL.md +9 -9
- package/library/skills/pixel-art/SKILL.md +6 -6
- package/library/skills/play/SKILL.md +3 -4
- package/library/skills/playtesting-a-feature/SKILL.md +4 -6
- package/library/skills/procedural-animation/SKILL.md +10 -11
- package/library/skills/prop-model/SKILL.md +4 -4
- package/library/skills/psx-retro-rendering/SKILL.md +20 -20
- package/library/skills/psx-retro-rendering/resource.yaml +2 -3
- package/library/skills/publish-your-game/SKILL.md +21 -0
- package/library/skills/publish-your-game/resource.yaml +29 -0
- package/library/skills/realtime-wet-surfaces/SKILL.md +15 -15
- package/library/skills/realtime-wet-surfaces/resource.yaml +1 -2
- package/library/skills/remote-deploy/SKILL.md +20 -21
- package/library/skills/retarget/SKILL.md +19 -23
- package/library/skills/running-in-the-cloud/SKILL.md +5 -5
- package/library/skills/scene-composition/SKILL.md +5 -5
- package/library/skills/scene-hierarchy-design/SKILL.md +3 -3
- package/library/skills/scene-hierarchy-design/resource.yaml +0 -1
- package/library/skills/scene-scripting/SKILL.md +3 -3
- package/library/skills/scene-to-level/SKILL.md +28 -31
- package/library/skills/skill-create/SKILL.md +1 -1
- package/library/skills/skill-improve/SKILL.md +9 -9
- package/library/skills/skill-test/SKILL.md +10 -10
- package/library/skills/skintokens-auto-rigging/SKILL.md +18 -18
- package/library/skills/skintokens-auto-rigging/resource.yaml +3 -3
- package/library/skills/skybox-panorama/SKILL.md +8 -9
- package/library/skills/sound-effect/SKILL.md +19 -19
- package/library/skills/spatial-placement/SKILL.md +2 -2
- package/library/skills/spatial-placement/references/kit-placement-tools.md +12 -22
- package/library/skills/sprite-sheet/SKILL.md +10 -10
- package/library/skills/store-art/SKILL.md +23 -0
- package/library/skills/store-art/resource.yaml +30 -0
- package/library/skills/store-listing/SKILL.md +21 -0
- package/library/skills/store-listing/resource.yaml +25 -0
- package/library/skills/summer-analytics/SKILL.md +3 -3
- package/library/skills/summer-analytics/resource.yaml +1 -0
- package/library/skills/summer-friends/SKILL.md +10 -10
- package/library/skills/summer-leaderboards/SKILL.md +6 -6
- package/library/skills/summer-match-results/SKILL.md +13 -13
- package/library/skills/summer-matchmaking/SKILL.md +11 -11
- package/library/skills/summer-parties/SKILL.md +9 -9
- package/library/skills/summer-player-data/SKILL.md +12 -12
- package/library/skills/summer-store/SKILL.md +6 -6
- package/library/skills/summer-world-chat/SKILL.md +9 -9
- package/library/skills/summer-world-saves/SKILL.md +7 -7
- package/library/skills/text-to-motion/rigging-for-text-motion.md +1 -1
- package/library/skills/tileable-texture/SKILL.md +1 -1
- package/library/skills/trailer-shot/SKILL.md +36 -36
- package/library/skills/tune-performance/SKILL.md +13 -13
- package/library/skills/tune-performance/resource.yaml +1 -1
- package/library/skills/ui-graphics/SKILL.md +7 -7
- package/library/skills/use-widget-asset/SKILL.md +7 -7
- package/library/skills/using-summer/SKILL.md +5 -7
- package/library/skills/vehicle-model/SKILL.md +6 -7
- package/library/skills/vehicle-model/resource.yaml +2 -2
- package/library/skills/verification-before-completion/SKILL.md +5 -6
- package/library/skills/vfx-dissolve/SKILL.md +4 -4
- package/library/skills/vfx-fire/SKILL.md +6 -6
- package/library/skills/vfx-fire/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/vfx-hit-spark/SKILL.md +4 -4
- package/library/skills/vfx-hit-spark/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/vfx-lightning/SKILL.md +5 -5
- package/library/skills/vfx-lightning/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/vfx-lightning/_building-blocks/trauma-shake-snippet.md +9 -3
- package/library/skills/vfx-magic-glow/SKILL.md +4 -4
- package/library/skills/vfx-magic-glow/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/vfx-muzzle-flash/SKILL.md +5 -5
- package/library/skills/vfx-muzzle-flash/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/vfx-muzzle-flash/_building-blocks/trauma-shake-snippet.md +9 -3
- package/library/skills/vfx-smoke/SKILL.md +5 -5
- package/library/skills/vfx-water-ripple/SKILL.md +2 -2
- package/library/skills/vfx-water-ripple/_building-blocks/additive-billboard-particles.md +3 -3
- package/library/skills/voice-line/SKILL.md +9 -9
- package/library/skills/world-building-3d/references/spatial-tools.md +2 -2
- package/library/skills/writing-plans/SKILL.md +4 -4
- package/library/skills/writing-skills/SKILL.md +8 -8
- package/library/tools/capture-gameplay/resource.yaml +66 -1
- package/library/tools/creator-publish/resource.yaml +4 -4
- package/library/tools/creator-releases/resource.yaml +5 -5
- package/library/tools/export-game/resource.yaml +3 -0
- package/library/tools/generate-image/resource.yaml +4 -2
- package/library/tools/publish-build/resource.yaml +5 -1
- package/package.json +1 -1
- package/registry/generated/counts.json +2 -2
- package/registry/generated/gemini-extension.json +5 -1
- package/registry/generated/index.json +280 -137
- package/registry/generated/marketplace.claude.json +1 -1
- package/registry/generated/plugin.claude.json +5 -1
- package/registry/generated/plugin.codex.json +5 -1
- package/registry/generated/plugin.cursor.json +5 -1
- package/registry/generated/plugin.factory.json +5 -1
- package/registry/generated/skills-index.md +16 -6
- package/registry/generated/skills-registry.json +57 -5
- package/registry/schemas/domains.json +1 -1
- package/registry/schemas/skill.schema.json +5 -0
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
* librarian. Behavior lives in src/core/library-search.ts and
|
|
4
4
|
* src/core/library-read.ts; `summer tool search-library|read-library`
|
|
5
5
|
* (src/core/capabilities/tool-dispatch.ts) calls the same functions.
|
|
6
|
-
* Engine-free: both read the library shipped with this package
|
|
6
|
+
* Engine-free: both read the library shipped with this package; a hosted
|
|
7
|
+
* skill's body comes from the hosted Summer Engine MCP when signed in.
|
|
7
8
|
*/
|
|
8
9
|
import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
9
10
|
export declare const SEARCH_LIBRARY_DESCRIPTION: string;
|
|
@@ -15,6 +15,7 @@ export const READ_LIBRARY_DESCRIPTION = "Load one library entry by id (<kind>/<s
|
|
|
15
15
|
"Skills: the SKILL.md body plus metadata (status, use_when, related) and how to invoke the skill in your host (bare slug). " +
|
|
16
16
|
"Tools: how to call it (MCP name, `summer tool <slug> --args`, engine requirement, authority) plus the descriptor. " +
|
|
17
17
|
"Templates: the pinned repo @ commit and tree digest (or built-in) and the `summer create <slug>` command. References: the markdown body. " +
|
|
18
|
+
"Hosted skills (publish-your-game, store-listing, store-art, grow-analytics; also by their summer://skills/<slug> URI): the current text from the hosted Summer Engine MCP with the store sign-in, else the local summary plus why and how to load the rest. " +
|
|
18
19
|
"Linked files: a body ends with its relative links and the id that loads each; a file an entry links loads by <entry id>/<link as written> " +
|
|
19
20
|
"(e.g. skill/spatial-placement/references/kit-placement-tools.md), by the relative path alone when one entry ships it, inside library/ only. " +
|
|
20
21
|
"part: 'skill' = body only, 'resource' = the resource.yaml descriptor only, 'all' (default) = both. " +
|
|
@@ -2,6 +2,6 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
|
|
|
2
2
|
/**
|
|
3
3
|
* summer_open — the MCP face of `summer open`. Same behavior as the CLI
|
|
4
4
|
* (src/core/capabilities/navigation/open.ts runOpen); this file only supplies
|
|
5
|
-
* the engine client and the browser launcher.
|
|
5
|
+
* the engine client and the browser launcher.
|
|
6
6
|
*/
|
|
7
7
|
export declare function registerNavigationTools(server: McpServer): void;
|
|
@@ -6,7 +6,7 @@ import { openArgsShape, runOpen } from "../../core/capabilities/navigation/open.
|
|
|
6
6
|
/**
|
|
7
7
|
* summer_open — the MCP face of `summer open`. Same behavior as the CLI
|
|
8
8
|
* (src/core/capabilities/navigation/open.ts runOpen); this file only supplies
|
|
9
|
-
* the engine client and the browser launcher.
|
|
9
|
+
* the engine client and the browser launcher.
|
|
10
10
|
*/
|
|
11
11
|
export function registerNavigationTools(server) {
|
|
12
12
|
server.tool("summer_open", `Open the exact summerengine.com page or Summer Engine editor surface the user wants to LOOK at, by intent name — or, with open:false, return the URL / engine op without opening anything. The result ALWAYS carries the resolved url or op, also after opening, so you can tell the user where they landed.
|
|
@@ -16,7 +16,7 @@ const NODE_PATH_LIMIT_BYTES = 256;
|
|
|
16
16
|
const MIN_PLACEMENT_FLOOR_DISTANCE = 0.001;
|
|
17
17
|
/** Mirrors the engine's SnapToSurface direction guard (length² > 1e-5). */
|
|
18
18
|
const MIN_SNAP_DIRECTION_LENGTH_SQUARED = 0.00001;
|
|
19
|
-
/** Starcast's own ceilings
|
|
19
|
+
/** Starcast's own ceilings in the engine: the engine
|
|
20
20
|
* measures the compact receipt as UTF-8 JSON, downgrades full -> summary
|
|
21
21
|
* above 12 KiB, and strips secondary paths above 5 KiB, so a receipt past the
|
|
22
22
|
* ceiling for its returnedDetail is one this CLI does not understand. Unlike
|
|
@@ -353,8 +353,8 @@ Static frame only — one moment, not motion. For a SEQUENCE of frames over time
|
|
|
353
353
|
if (snap.sceneHadLight === false) {
|
|
354
354
|
warnings.push("WARNING: this scene has no light — lit materials may appear black when played.");
|
|
355
355
|
}
|
|
356
|
-
// The engine ALWAYS synthesizes the preview camera (
|
|
357
|
-
//
|
|
356
|
+
// The engine ALWAYS synthesizes the preview camera (it sets
|
|
357
|
+
// used_synthetic_camera unconditionally) — the flag says nothing
|
|
358
358
|
// about the scene's own cameras. sceneHasCamera above is the
|
|
359
359
|
// authoritative "does this scene have a camera" answer.
|
|
360
360
|
if (snap.usedSyntheticCamera) {
|
|
@@ -41,8 +41,7 @@ export interface WithEngineOptions<T> {
|
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
43
43
|
* An auth failure is the ONE class of thrown error that is provably pre-apply:
|
|
44
|
-
* the engine rejects on the Bearer-token check
|
|
45
|
-
* BEFORE the op is queued or applied, so reconnecting with the fresh api-token and
|
|
44
|
+
* the engine rejects on the Bearer-token check BEFORE the op is queued or applied, so reconnecting with the fresh api-token and
|
|
46
45
|
* retrying cannot double-apply a mutation. This is exactly the stale-token case
|
|
47
46
|
* after the engine rotates its api-token on relaunch.
|
|
48
47
|
*
|
|
@@ -30,8 +30,7 @@ function readClassifiers(result) {
|
|
|
30
30
|
}
|
|
31
31
|
/**
|
|
32
32
|
* An auth failure is the ONE class of thrown error that is provably pre-apply:
|
|
33
|
-
* the engine rejects on the Bearer-token check
|
|
34
|
-
* BEFORE the op is queued or applied, so reconnecting with the fresh api-token and
|
|
33
|
+
* the engine rejects on the Bearer-token check BEFORE the op is queued or applied, so reconnecting with the fresh api-token and
|
|
35
34
|
* retrying cannot double-apply a mutation. This is exactly the stale-token case
|
|
36
35
|
* after the engine rotates its api-token on relaunch.
|
|
37
36
|
*
|
package/gemini-extension.json
CHANGED
|
@@ -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.
|
|
4
|
+
"version": "3.5.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": {
|
|
@@ -68,6 +68,7 @@
|
|
|
68
68
|
"./library/skills/gdscript-patterns/",
|
|
69
69
|
"./library/skills/generate-motion/",
|
|
70
70
|
"./library/skills/godogen-visual-proof-game-generation/",
|
|
71
|
+
"./library/skills/grow-analytics/",
|
|
71
72
|
"./library/skills/headless-scripting/",
|
|
72
73
|
"./library/skills/in-game-purchases/",
|
|
73
74
|
"./library/skills/instantiate-asset-pack/",
|
|
@@ -90,6 +91,7 @@
|
|
|
90
91
|
"./library/skills/procedural-animation/",
|
|
91
92
|
"./library/skills/prop-model/",
|
|
92
93
|
"./library/skills/psx-retro-rendering/",
|
|
94
|
+
"./library/skills/publish-your-game/",
|
|
93
95
|
"./library/skills/realtime-wet-surfaces/",
|
|
94
96
|
"./library/skills/remote-deploy/",
|
|
95
97
|
"./library/skills/retarget/",
|
|
@@ -107,6 +109,8 @@
|
|
|
107
109
|
"./library/skills/sound-effect/",
|
|
108
110
|
"./library/skills/spatial-placement/",
|
|
109
111
|
"./library/skills/sprite-sheet/",
|
|
112
|
+
"./library/skills/store-art/",
|
|
113
|
+
"./library/skills/store-listing/",
|
|
110
114
|
"./library/skills/summer-analytics/",
|
|
111
115
|
"./library/skills/summer-friends/",
|
|
112
116
|
"./library/skills/summer-leaderboards/",
|
package/hooks/session-start.sh
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
#
|
|
4
4
|
# Event: SessionStart (matcher: startup|clear|compact)
|
|
5
5
|
# Purpose: Orient Claude on every fresh Summer-enabled session.
|
|
6
|
-
# Detect Summer project + GameSoul + doctor health
|
|
7
|
-
#
|
|
6
|
+
# Detect Summer project + GameSoul + doctor health and surface a short
|
|
7
|
+
# greeting as additional context.
|
|
8
8
|
#
|
|
9
9
|
# Input: JSON on stdin with { session_id, source, model, cwd, ... }
|
|
10
10
|
# Common Claude Code env vars: $CLAUDE_PROJECT_DIR, $CLAUDE_PLUGIN_ROOT
|
package/integrations/README.md
CHANGED
|
@@ -1,94 +1,88 @@
|
|
|
1
|
-
# integrations
|
|
1
|
+
# integrations/: which agents Summer supports
|
|
2
2
|
|
|
3
|
-
One folder per supported client.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
`
|
|
9
|
-
|
|
3
|
+
One folder per supported client. Each folder says how that client consumes
|
|
4
|
+
the library.
|
|
5
|
+
|
|
6
|
+
Adding an agent: one row in `src/installer/agent-table.ts`, one folder here,
|
|
7
|
+
an empty entry in `scripts/generate-registry/targets.ts` (plus a builder in
|
|
8
|
+
`scripts/generate-registry/manifests.ts` if the client has a manifest file),
|
|
9
|
+
then `npm run generate:registry`. Never hand-edit root files. Tests fail when
|
|
10
|
+
the table, this directory and `targets.ts` disagree.
|
|
10
11
|
|
|
11
12
|
Each folder contains:
|
|
12
13
|
|
|
13
|
-
- `README.md
|
|
14
|
-
file in this repo)
|
|
15
|
-
|
|
14
|
+
- `README.md`: what gets generated where, or (for clients with no manifest
|
|
15
|
+
file in this repo) what `summer setup <client>` writes at install time.
|
|
16
|
+
- `manifest-target.json`: generated file -> repo-root destination (empty when
|
|
17
|
+
nothing is generated). Mirrors `scripts/generate-registry/targets.ts`; a test
|
|
18
|
+
fails if they drift.
|
|
16
19
|
|
|
17
|
-
`summer setup <client>` (default `--scope user`) writes the MCP config
|
|
18
|
-
installs every skill (`skills install --all`, preview included;
|
|
19
|
-
skips preview) in the
|
|
20
|
-
|
|
21
|
-
`--
|
|
22
|
-
|
|
23
|
-
scope with a warning. `.mcp.json` at the repo root
|
|
24
|
-
(the MCP pointer the claude / codex / cursor / factory manifests share) is
|
|
25
|
-
generated too — `registry/generated/mcp.json -> .mcp.json`.
|
|
26
|
-
- `manifest-target.json` — mapping of generated file -> repo-root destination
|
|
27
|
-
(empty when nothing is generated). Mirrors
|
|
28
|
-
`scripts/generate-registry/targets.ts`; a test fails if they drift.
|
|
20
|
+
`summer setup <client>` (default `--scope user`) writes the MCP config and
|
|
21
|
+
installs every skill (`skills install --all`, preview included;
|
|
22
|
+
`--stable-only` skips preview) in the same scope, so a user-scope MCP config
|
|
23
|
+
never sits beside project-scope skills. `--scope project` moves both;
|
|
24
|
+
`--recommended` installs only the recommended subset. Clients whose MCP config
|
|
25
|
+
is user-only fall back to user scope with a warning.
|
|
29
26
|
|
|
30
|
-
Generated root
|
|
31
|
-
…) are build artifacts of `integrations/<agent>` + `library
|
|
32
|
-
`_generated` banner says so
|
|
33
|
-
|
|
34
|
-
`library/`, `registry/generated/`, and the applied root files.
|
|
27
|
+
Generated root files (`.claude-plugin/plugin.json`, `gemini-extension.json`,
|
|
28
|
+
`.mcp.json`, …) are build artifacts of `integrations/<agent>` + `library/`.
|
|
29
|
+
Their `_generated` banner says so. CI `--check` fails on any drift between
|
|
30
|
+
`library/`, `registry/generated/` and the applied root files.
|
|
35
31
|
|
|
36
32
|
How the plugin manifests reference skills, and what is verified:
|
|
37
33
|
|
|
38
|
-
- **Claude Code
|
|
39
|
-
array of `./`-relative directory paths and
|
|
40
|
-
scan
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
manifest's `skills` array is not read (open gap, see the table).
|
|
34
|
+
- **Claude Code**: the plugin-manifest `skills` field accepts a string or an
|
|
35
|
+
array of `./`-relative directory paths and extends the default `skills/`
|
|
36
|
+
scan. The generated `.claude-plugin/plugin.json` lists one entry per skill
|
|
37
|
+
(`./library/skills/<slug>/`). The docs do not say whether a listed directory
|
|
38
|
+
loads as one skill or is scanned for skill subfolders, and the smoke tests
|
|
39
|
+
cover the `summer setup` path, not the marketplace one. Treat the
|
|
40
|
+
marketplace install as unverified.
|
|
41
|
+
- **Codex**: `.codex-plugin/plugin.json` carries the same `skills` array.
|
|
42
|
+
Whether Codex reads that field is **unverified**.
|
|
43
|
+
- **Factory**: a plugin install reads skills only from a root `skills/`
|
|
44
|
+
directory, so it exposes no skills. `summer setup factory` installs them.
|
|
45
|
+
|
|
46
|
+
Paths below are for macOS; `~` is `%USERPROFILE%` on Windows. Other OS paths
|
|
47
|
+
are listed where they differ.
|
|
53
48
|
|
|
54
49
|
| Client | Manifest generated in this repo | `summer setup` writes |
|
|
55
50
|
|---|---|---|
|
|
56
|
-
| claude | `.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json`, `.mcp.json` | MCP: `~/.claude.json`;
|
|
51
|
+
| claude | `.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json`, `.mcp.json` | MCP: `~/.claude.json`; project `.mcp.json`; skills: `~/.claude/skills`; project `.claude/skills` (`<skill>/SKILL.md`) |
|
|
57
52
|
| claude-desktop | — | MCP: `~/Library/Application Support/Claude/claude_desktop_config.json`; Linux `~/.config/Claude/claude_desktop_config.json`; Windows `%APPDATA%/Claude/claude_desktop_config.json`; no skills folder (MCP only) |
|
|
58
|
-
| codex | `.codex-plugin/plugin.json` | MCP: `~/.codex/config.toml`;
|
|
59
|
-
| cursor | `.cursor-plugin/plugin.json` | MCP: `~/.cursor/mcp.json`;
|
|
60
|
-
| windsurf | — | MCP: `~/.codeium/windsurf/mcp_config.json`;
|
|
61
|
-
| antigravity | — | MCP: `~/.gemini/config/mcp_config.json`;
|
|
62
|
-
| gemini (legacy) | `gemini-extension.json` | MCP: `~/.gemini/extensions/summer-engine/gemini-extension.json`;
|
|
63
|
-
| cline | — | MCP: `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`; Linux `~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`; Windows `%APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`; skills: `~/.cline/skills
|
|
64
|
-
| cline-cli | — | MCP: `~/.cline/data/settings/cline_mcp_settings.json`;
|
|
65
|
-
| roo-code (legacy) | — | MCP: `~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json`; Linux `~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json`; Windows `%APPDATA%/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json`; skills: `~/Documents/Roo/Rules
|
|
66
|
-
| kilo-code | — | MCP: `~/.config/kilo/kilo.json`; Windows `%APPDATA%/kilo/kilo.json
|
|
67
|
-
| github-copilot | — | MCP: `~/.copilot/mcp-config.json`;
|
|
68
|
-
| vscode-copilot | — | MCP: `~/Library/Application Support/Code/User/mcp.json`; Linux `~/.config/Code/User/mcp.json`; Windows `%APPDATA%/Code/User/mcp.json
|
|
69
|
-
| visual-studio | — | MCP: `~/.mcp.json`;
|
|
53
|
+
| codex | `.codex-plugin/plugin.json` | MCP: `~/.codex/config.toml`; project `.codex/config.toml`; skills: `~/.agents/skills`; project `.agents/skills` (`<skill>/SKILL.md`) |
|
|
54
|
+
| cursor | `.cursor-plugin/plugin.json` | MCP: `~/.cursor/mcp.json`; project `.cursor/mcp.json`; skills: `~/.agents/skills`; project `.agents/skills` (`<skill>/SKILL.md`) |
|
|
55
|
+
| windsurf | — | MCP: `~/.codeium/windsurf/mcp_config.json`; skills: `~/.agents/skills`; project `.agents/skills` (`<skill>/SKILL.md`) |
|
|
56
|
+
| antigravity | — | MCP: `~/.gemini/config/mcp_config.json`; project `.agents/mcp_config.json`; skills: `~/.gemini/config/skills`; project `.agents/skills` (`<skill>/SKILL.md`) |
|
|
57
|
+
| gemini (legacy) | `gemini-extension.json` | MCP: `~/.gemini/extensions/summer-engine/gemini-extension.json`; skills: `~/.gemini/extensions/summer-engine/skills` (`<skill>/SKILL.md`) |
|
|
58
|
+
| cline | — | MCP: `~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`; Linux `~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`; Windows `%APPDATA%/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json`; skills: `~/.cline/skills`; project `.cline/skills` (`<skill>/SKILL.md`) |
|
|
59
|
+
| cline-cli | — | MCP: `~/.cline/data/settings/cline_mcp_settings.json`; skills: `~/.cline/skills`; project `.cline/skills` (`<skill>/SKILL.md`) |
|
|
60
|
+
| roo-code (legacy) | — | MCP: `~/Library/Application Support/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json`; Linux `~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json`; Windows `%APPDATA%/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json`; skills: `~/Documents/Roo/Rules`; project `.clinerules` (rule files `summer-<skill>.md`) |
|
|
61
|
+
| kilo-code | — | MCP: `~/.config/kilo/kilo.json`; Windows `%APPDATA%/kilo/kilo.json`; project `kilo.json`; skills: `~/.kilo/skills`; project `.kilo/skills` (`<skill>/SKILL.md`) |
|
|
62
|
+
| github-copilot | — | MCP: `~/.copilot/mcp-config.json`; project `.mcp.json`; skills: `~/.copilot/skills`; project `.github/skills` (`<skill>/SKILL.md`) |
|
|
63
|
+
| vscode-copilot | — | MCP: `~/Library/Application Support/Code/User/mcp.json`; Linux `~/.config/Code/User/mcp.json`; Windows `%APPDATA%/Code/User/mcp.json`; project `.vscode/mcp.json`; skills: `~/.agents/skills`; project `.agents/skills` (`<skill>/SKILL.md`) |
|
|
64
|
+
| visual-studio | — | MCP: `~/.mcp.json`; project `.mcp.json`; no skills folder (MCP only) |
|
|
70
65
|
| copilot-jetbrains | — | MCP: `~/.config/github-copilot/intellij/mcp.json`; Windows `%APPDATA%/github-copilot/intellij/mcp.json`; no skills folder (MCP only) |
|
|
71
|
-
| opencode | — | MCP: `~/.config/opencode/opencode.json`; Windows `%APPDATA%/opencode/opencode.json
|
|
72
|
-
| zed | — | MCP: `~/.config/zed/settings.json`; Windows `%APPDATA%/zed/settings.json`; skills: `~/.agents/skills
|
|
73
|
-
| kiro | — | MCP: `~/.kiro/settings/mcp.json`;
|
|
74
|
-
| goose | — | MCP: `~/.config/goose/config.yaml`; Windows `%APPDATA%/Block/goose/config/config.yaml`; skills: `~/.config/agents/skills
|
|
75
|
-
| hermes | — | MCP: `~/.hermes/config.yaml`;
|
|
76
|
-
| trae | — | MCP: `.trae/mcp.json`
|
|
77
|
-
| qwen-code | — | MCP: `~/.qwen/settings.json`;
|
|
78
|
-
| kimi-code | — | MCP: `~/.kimi-code/mcp.json`;
|
|
79
|
-
| crush | — | MCP: `~/.config/crush/crushrc`;
|
|
80
|
-
| amp | — | MCP: `~/.config/amp/settings.json`; Windows `%APPDATA%/amp/settings.json`; skills: `~/.
|
|
81
|
-
| factory | `.factory-plugin/plugin.json` | MCP: `~/.factory/mcp.json`;
|
|
82
|
-
| junie | — | MCP: `~/.junie/mcp/mcp.json`;
|
|
83
|
-
| warp | — | MCP: `~/.warp/.mcp.json`;
|
|
84
|
-
| rovo-dev | — | MCP: `~/.rovodev/mcp.json`;
|
|
85
|
-
| qoder | — | MCP: `~/.qoder/settings.json`;
|
|
86
|
-
| grok-build | — | MCP: `~/.grok/config.toml`;
|
|
87
|
-
| mistral-vibe | — | MCP: `~/.vibe/config.toml`;
|
|
88
|
-
| lm-studio | — | MCP: `~/.lmstudio/mcp.json`;
|
|
66
|
+
| opencode | — | MCP: `~/.config/opencode/opencode.json`; Windows `%APPDATA%/opencode/opencode.json`; project `opencode.json`; skills: `~/.agents/skills`; project `.agents/skills` (`<skill>/SKILL.md`) |
|
|
67
|
+
| zed | — | MCP: `~/.config/zed/settings.json`; Windows `%APPDATA%/zed/settings.json`; skills: `~/.agents/skills`; project `.agents/skills` (`<skill>/SKILL.md`) |
|
|
68
|
+
| kiro | — | MCP: `~/.kiro/settings/mcp.json`; project `.kiro/settings/mcp.json`; skills: `~/.kiro/skills`; project `.kiro/skills` (`<skill>/SKILL.md`) |
|
|
69
|
+
| goose | — | MCP: `~/.config/goose/config.yaml`; Windows `%APPDATA%/Block/goose/config/config.yaml`; skills: `~/.config/agents/skills`; project `.agents/skills` (`<skill>/SKILL.md`) |
|
|
70
|
+
| hermes | — | MCP: `~/.hermes/config.yaml`; skills: `~/.hermes/skills`; project `.agents/skills` (`<skill>/SKILL.md`) |
|
|
71
|
+
| trae | — | MCP: `.trae/mcp.json` (project only); no skills folder (MCP only) |
|
|
72
|
+
| qwen-code | — | MCP: `~/.qwen/settings.json`; project `.qwen/settings.json`; skills: `~/.qwen/skills`; project `.qwen/skills` (`<skill>/SKILL.md`) |
|
|
73
|
+
| kimi-code | — | MCP: `~/.kimi-code/mcp.json`; project `.kimi-code/mcp.json`; skills: `~/.agents/skills`; project `.agents/skills` (`<skill>/SKILL.md`) |
|
|
74
|
+
| crush | — | MCP: `~/.config/crush/crushrc`; project `.crushrc`; skills: `~/.agents/skills`; project `.agents/skills` (`<skill>/SKILL.md`) |
|
|
75
|
+
| amp | — | MCP: `~/.config/amp/settings.json`; Windows `%APPDATA%/amp/settings.json`; skills: `~/.agents/skills`; project `.agents/skills` (`<skill>/SKILL.md`) |
|
|
76
|
+
| factory | `.factory-plugin/plugin.json` | MCP: `~/.factory/mcp.json`; project `.factory/mcp.json`; skills: `~/.agents/skills`; project `.agents/skills` (`<skill>/SKILL.md`) |
|
|
77
|
+
| junie | — | MCP: `~/.junie/mcp/mcp.json`; project `.junie/mcp/mcp.json`; no skills folder (MCP only) |
|
|
78
|
+
| warp | — | MCP: `~/.warp/.mcp.json`; project `.warp/.mcp.json`; skills: `~/.agents/skills`; project `.agents/skills` (`<skill>/SKILL.md`) |
|
|
79
|
+
| rovo-dev | — | MCP: `~/.rovodev/mcp.json`; skills: `~/.agents/skills`; project `.agents/skills` (`<skill>/SKILL.md`) |
|
|
80
|
+
| qoder | — | MCP: `~/.qoder/settings.json`; project `.mcp.json`; skills: `~/.qoder/skills`; project `.qoder/skills` (`<skill>/SKILL.md`) |
|
|
81
|
+
| grok-build | — | MCP: `~/.grok/config.toml`; project `.grok/config.toml`; skills: `~/.agents/skills`; project `.agents/skills` (`<skill>/SKILL.md`) |
|
|
82
|
+
| mistral-vibe | — | MCP: `~/.vibe/config.toml`; project `.vibe/config.toml`; skills: `~/.vibe/skills`; project `.agents/skills` (`<skill>/SKILL.md`) |
|
|
83
|
+
| lm-studio | — | MCP: `~/.lmstudio/mcp.json`; no skills folder (MCP only) |
|
|
89
84
|
|
|
90
|
-
Source of truth for the setup paths: `src/installer/agent-
|
|
91
|
-
`src/cli/commands/skills.ts`.
|
|
85
|
+
Source of truth for the setup paths: `src/installer/agent-table.ts`.
|
|
92
86
|
|
|
93
87
|
Not supported on purpose (checked 2026-09-11): OpenHands CLI (its `[mcp] stdio_servers`
|
|
94
88
|
inline-table array has a known upstream write bug), Xcode's agent folders (Apple
|
|
@@ -11,9 +11,6 @@ Generated by `scripts/generate-registry` from `library/**/resource.yaml`:
|
|
|
11
11
|
The MCP pointer `./.mcp.json` these manifests reference is generated as
|
|
12
12
|
well (`registry/generated/mcp.json -> .mcp.json`, owned by the claude target).
|
|
13
13
|
|
|
14
|
-
The MCP pointer `./.mcp.json` these manifests reference is generated as
|
|
15
|
-
well (`registry/generated/mcp.json -> .mcp.json`).
|
|
16
|
-
|
|
17
14
|
Never edit the destination files by hand — edit `library/` resources or the
|
|
18
15
|
manifest builders in `scripts/generate-registry/manifests.ts`, then run
|
|
19
16
|
`npm run generate:registry`. CI `--check` fails on any drift.
|
|
@@ -4,8 +4,7 @@ Generated by `scripts/generate-registry` from `library/**/resource.yaml`:
|
|
|
4
4
|
|
|
5
5
|
- `registry/generated/plugin.codex.json` -> `.codex-plugin/plugin.json`
|
|
6
6
|
(plugin manifest with the Codex app-store `interface` block; full skill
|
|
7
|
-
list at `./library/skills/<slug
|
|
8
|
-
is fixed by generation; version stamped from `package.json`).
|
|
7
|
+
list at `./library/skills/<slug>/`; version stamped from `package.json`).
|
|
9
8
|
|
|
10
9
|
The MCP pointer `./.mcp.json` these manifests reference is generated as
|
|
11
10
|
well (`registry/generated/mcp.json -> .mcp.json`, owned by the claude target).
|
|
@@ -5,7 +5,7 @@ is intentionally empty. Support is delivered at install time by
|
|
|
5
5
|
`summer setup copilot-jetbrains` (aliases: `jetbrains-copilot`, `intellij-copilot`, `copilot-intellij`), which writes:
|
|
6
6
|
|
|
7
7
|
- MCP config: `~/.config/github-copilot/intellij/mcp.json`; Windows `%APPDATA%/github-copilot/intellij/mcp.json` (user); user scope only (project requests fall back with a warning).
|
|
8
|
-
Shape:
|
|
8
|
+
Shape: `servers.summer-engine = { command, args }`.
|
|
9
9
|
- Skills: none. Copilot in JetBrains documents no skills folder; the MCP server ships summer_get_agent_playbook for in-chat guidance.
|
|
10
10
|
- After: Restart the JetBrains IDE and open Copilot Chat in Agent mode; summer-engine shows in the tools list.
|
|
11
11
|
|
|
@@ -5,8 +5,7 @@ Generated by `scripts/generate-registry` from `library/**/resource.yaml`:
|
|
|
5
5
|
- `registry/generated/plugin.cursor.json` -> `.cursor-plugin/plugin.json`
|
|
6
6
|
(Cursor plugin manifest: displayName/publisher/category, cursor-specific
|
|
7
7
|
hooks file `./hooks/hooks-cursor.json`, full skill list at
|
|
8
|
-
`./library/skills/<slug
|
|
9
|
-
by generation; version stamped from `package.json`).
|
|
8
|
+
`./library/skills/<slug>/`; version stamped from `package.json`).
|
|
10
9
|
|
|
11
10
|
The MCP pointer `./.mcp.json` these manifests reference is generated as
|
|
12
11
|
well (`registry/generated/mcp.json -> .mcp.json`, owned by the claude target).
|
|
@@ -1,25 +1,29 @@
|
|
|
1
|
-
# Factory
|
|
1
|
+
# Factory Droid integration
|
|
2
|
+
|
|
3
|
+
`summer setup factory` (aliases: `droid`, `factory-droid`) writes:
|
|
4
|
+
|
|
5
|
+
- MCP config: `~/.factory/mcp.json`; Windows `%USERPROFILE%/.factory/mcp.json` (user); `.factory/mcp.json` (project).
|
|
6
|
+
Shape: `mcpServers.summer-engine = { type: "stdio", command, args }`.
|
|
7
|
+
- Skills: `~/.agents/skills` (user) or `.agents/skills` (project) as `<skill>/SKILL.md`.
|
|
8
|
+
- After: Restart droid or run /mcp in the active session.
|
|
2
9
|
|
|
3
10
|
Generated by `scripts/generate-registry` from `library/**/resource.yaml`:
|
|
4
11
|
|
|
5
12
|
- `registry/generated/plugin.factory.json` -> `.factory-plugin/plugin.json`
|
|
6
|
-
(metadata manifest
|
|
7
|
-
`./library/skills/<slug
|
|
8
|
-
was a bug fixed by generation; version stamped from `package.json`).
|
|
13
|
+
(metadata manifest with the full skill list at
|
|
14
|
+
`./library/skills/<slug>/`; version stamped from `package.json`).
|
|
9
15
|
|
|
10
|
-
|
|
11
|
-
Install through the plugin marketplace instead:
|
|
16
|
+
The plugin marketplace is an alternative install:
|
|
12
17
|
|
|
13
18
|
```
|
|
14
19
|
droid plugin marketplace add https://github.com/summerengine/summer
|
|
15
20
|
droid plugin install summer@summer-engine --scope user
|
|
16
21
|
```
|
|
17
22
|
|
|
18
|
-
|
|
19
|
-
skills
|
|
20
|
-
manifest field, so the array in `plugin.factory.json` is inert and
|
|
21
|
-
|
|
22
|
-
gap; fix is a root `skills/` layout, not a setup target.
|
|
23
|
+
A plugin install reads MCP servers from the root `.mcp.json` (generated) and
|
|
24
|
+
skills only from a root `skills/<name>/SKILL.md` directory. Factory has no
|
|
25
|
+
`skills` manifest field, so the array in `plugin.factory.json` is inert and the
|
|
26
|
+
plugin install exposes no skills. Use `summer setup factory` to get the skills.
|
|
23
27
|
|
|
24
28
|
Never edit the destination file by hand — edit `library/` resources or
|
|
25
29
|
`scripts/generate-registry/manifests.ts`, then run
|
|
@@ -5,7 +5,7 @@ is intentionally empty. Support is delivered at install time by
|
|
|
5
5
|
`summer setup mistral-vibe` (aliases: `vibe`, `mistral`), which writes:
|
|
6
6
|
|
|
7
7
|
- MCP config: `~/.vibe/config.toml`; Windows `%USERPROFILE%/.vibe/config.toml` (user); `.vibe/config.toml` (project).
|
|
8
|
-
Shape:
|
|
8
|
+
Shape: a `[[mcp_servers]]` entry with `name`, `transport`, `command`, `args` (TOML).
|
|
9
9
|
- Skills: `~/.vibe/skills` (user) or `.agents/skills` (project) as `<skill>/SKILL.md`.
|
|
10
10
|
- After: Restart Vibe so it reloads config.toml.
|
|
11
11
|
|
|
@@ -6,7 +6,7 @@ is intentionally empty. Support is delivered at install time by
|
|
|
6
6
|
|
|
7
7
|
- MCP config: `~/.config/opencode/opencode.json`; Windows `%APPDATA%/opencode/opencode.json` (user); `opencode.json` (project).
|
|
8
8
|
Shape: `mcp.summer-engine = { type: "local", command: [npx, ...], enabled: true }`.
|
|
9
|
-
- Skills: `~/.agents/skills` (user) or `.agents/skills` (project) as `<skill>/SKILL.md`. OpenCode loads skills from this folder on the next session. Summer
|
|
9
|
+
- Skills: `~/.agents/skills` (user) or `.agents/skills` (project) as `<skill>/SKILL.md`. OpenCode loads skills from this folder on the next session. `--force` also removes skill copies that older Summer versions wrote under `opencode/agents/summer` and `opencode/skills`.
|
|
10
10
|
- After: Restart OpenCode so it reloads opencode.json.
|
|
11
11
|
|
|
12
12
|
Source of truth: `src/installer/agent-table.ts` (one row per agent).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Roo Code integration
|
|
2
2
|
|
|
3
|
-
> **Legacy.** Roo Code
|
|
3
|
+
> **Legacy.** Roo Code is no longer maintained. The target still works; consider Cline or Kilo Code.
|
|
4
4
|
|
|
5
5
|
No manifest file is generated in this repo for Roo Code — `manifest-target.json`
|
|
6
6
|
is intentionally empty. Support is delivered at install time by
|
|
@@ -5,7 +5,7 @@ is intentionally empty. Support is delivered at install time by
|
|
|
5
5
|
`summer setup rovo-dev` (aliases: `rovodev`, `rovo`, `atlassian-rovo-dev`), which writes:
|
|
6
6
|
|
|
7
7
|
- MCP config: `~/.rovodev/mcp.json`; Windows `%USERPROFILE%/.rovodev/mcp.json` (user); user scope only (project requests fall back with a warning).
|
|
8
|
-
Shape:
|
|
8
|
+
Shape: `mcpServers.summer-engine = { command, args, transport: "stdio" }`.
|
|
9
9
|
- Skills: `~/.agents/skills` (user) or `.agents/skills` (project) as `<skill>/SKILL.md`.
|
|
10
10
|
- After: Restart Rovo Dev CLI so it reconnects its MCP servers.
|
|
11
11
|
|
|
@@ -4,7 +4,7 @@ No manifest file is generated in this repo for Trae — `manifest-target.json`
|
|
|
4
4
|
is intentionally empty. Support is delivered at install time by
|
|
5
5
|
`summer setup trae` (aliases: `trae-ide`, `bytedance-trae`), which writes:
|
|
6
6
|
|
|
7
|
-
- MCP config: `.trae/mcp.json` (
|
|
7
|
+
- MCP config: `.trae/mcp.json` (project only; Trae manages user-level servers in its UI, so a user-scope request writes the project file with a warning).
|
|
8
8
|
Shape: `mcpServers.summer-engine = { command, args }`.
|
|
9
9
|
- Skills: none. Trae documents no skills folder; the MCP server ships summer_get_agent_playbook for in-chat guidance.
|
|
10
10
|
- After: Restart Trae and open the MCP settings; summer-engine should show as connected.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
# Devin Desktop
|
|
1
|
+
# Devin Desktop integration
|
|
2
2
|
|
|
3
|
-
No manifest file is generated in this repo for Devin Desktop
|
|
3
|
+
No manifest file is generated in this repo for Devin Desktop — `manifest-target.json`
|
|
4
4
|
is intentionally empty. Support is delivered at install time by
|
|
5
5
|
`summer setup windsurf` (aliases: `devin`, `devin-desktop`, `devindesktop`), which writes:
|
|
6
6
|
|
|
7
7
|
- MCP config: `~/.codeium/windsurf/mcp_config.json`; Windows `%USERPROFILE%/.codeium/windsurf/mcp_config.json` (user); user scope only (project requests fall back with a warning).
|
|
8
8
|
Shape: `mcpServers.summer-engine = { command, args }`.
|
|
9
9
|
- Skills: `~/.agents/skills` (user) or `.agents/skills` (project) as `<skill>/SKILL.md`.
|
|
10
|
-
- After: Restart Devin Desktop
|
|
10
|
+
- After: Restart Devin Desktop and refresh MCP servers from the agent settings. Devin's docs say mcp_config.json configures the Cascade agent; for the Devin agent add the server in the app's MCP settings with the same command.
|
|
11
11
|
|
|
12
12
|
Source of truth: `src/installer/agent-table.ts` (one row per agent).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Collaborative Protocol — "May I write?"
|
|
2
2
|
|
|
3
|
-
> Every Summer skill
|
|
3
|
+
> Every Summer skill follows this rule.
|
|
4
4
|
|
|
5
5
|
## The rule
|
|
6
6
|
|
|
@@ -13,7 +13,7 @@ This applies to:
|
|
|
13
13
|
- Setting up project-wide settings (`project.godot`)
|
|
14
14
|
- Installing tools, libraries, or templates
|
|
15
15
|
|
|
16
|
-
Reading
|
|
16
|
+
Reading needs no permission: inspection, scene-tree walks and diagnostics run without asking.
|
|
17
17
|
|
|
18
18
|
## Phrasing
|
|
19
19
|
|
|
@@ -42,9 +42,9 @@ Plain, short, action-first. Examples:
|
|
|
42
42
|
|
|
43
43
|
## Linter check
|
|
44
44
|
|
|
45
|
-
The `
|
|
46
|
-
- "May I"
|
|
45
|
+
The `skill-test` skill's static check looks for one of these phrases:
|
|
46
|
+
- "May I"
|
|
47
47
|
- "I'm about to"
|
|
48
48
|
- "Continue?" / "OK?" / "Proceed?"
|
|
49
49
|
|
|
50
|
-
A skill that
|
|
50
|
+
A skill that triggers user-visible writes but never says any of these fails the check. Read-only skills are exempt.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# GDScript Style — Summer Conventions
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Skills produce GDScript that matches this. Where the upstream GDScript style guide is silent, this file decides.
|
|
4
4
|
|
|
5
5
|
## File structure
|
|
6
6
|
|
|
@@ -43,7 +43,7 @@ func _physics_process(delta: float) -> void:
|
|
|
43
43
|
func _input(event: InputEvent) -> void:
|
|
44
44
|
pass
|
|
45
45
|
|
|
46
|
-
# 7. Public API (
|
|
46
|
+
# 7. Public API (snake_case)
|
|
47
47
|
func take_damage(amount: int) -> void:
|
|
48
48
|
pass
|
|
49
49
|
|
|
@@ -115,7 +115,5 @@ tween.tween_property(self, "modulate", Color.WHITE, 0.3)
|
|
|
115
115
|
|
|
116
116
|
## See also
|
|
117
117
|
|
|
118
|
-
- [
|
|
119
|
-
- `
|
|
120
|
-
- `scripting-patterns/signal-patterns/SKILL.md` — signal usage
|
|
121
|
-
- `scripting-patterns/state-machine-patterns/SKILL.md` — state machine patterns
|
|
118
|
+
- [Upstream GDScript style guide](https://docs.godotengine.org/en/stable/tutorials/scripting/gdscript/gdscript_styleguide.html)
|
|
119
|
+
- The `gdscript-patterns` skill: patterns and idioms, including signals
|
|
@@ -18,8 +18,8 @@ running engine also reports its measured technical version:
|
|
|
18
18
|
<engineBinaryPath> --version # e.g. 4.6.1.stable.mono.custom_build.<hash>
|
|
19
19
|
```
|
|
20
20
|
|
|
21
|
-
Get `engineBinaryPath` from `summer_get_project_context`. Prefer live
|
|
22
|
-
|
|
21
|
+
Get `engineBinaryPath` from `summer_get_project_context`. Prefer the live
|
|
22
|
+
version to a copied version string. Creator onboarding and headlines should
|
|
23
23
|
say Summer Engine, Summer game, Summer SDK, and GDScript. Use the upstream name
|
|
24
24
|
only where technical compatibility, migration, extension APIs, contribution
|
|
25
25
|
routing, attribution, or licensing requires it.
|
|
@@ -40,7 +40,7 @@ routing, attribution, or licensing requires it.
|
|
|
40
40
|
## Summer-specific deltas from the upstream engine
|
|
41
41
|
|
|
42
42
|
- Local API server runs on `localhost:6550` by default (the port increments when several editors are open; each live editor publishes its port in `~/.summer/instances/<id>.json`, and the shared token lives in `~/.summer/api-token`).
|
|
43
|
-
-
|
|
43
|
+
- The editor carries Summer's own modules (including a webview). Do not assume the
|
|
44
44
|
unmodified upstream editor for UI patches.
|
|
45
45
|
- Project root contains `.summer/` for project memory; do not delete it.
|
|
46
46
|
|
|
@@ -15,12 +15,12 @@ Only file, import, scene-read, and game run/stop/logs/screenshot operations work
|
|
|
15
15
|
## Ships dark
|
|
16
16
|
|
|
17
17
|
- Enabled by `SUMMER_HEADLESS_ROUTING=1`. Unset, the module is not loaded at all and nothing changes.
|
|
18
|
-
- Requires an engine build that ships the worker mode and process registry
|
|
18
|
+
- Requires an engine build that ships the worker mode and process registry. On builds without it, leave the flag off.
|
|
19
19
|
- With the flag on and an editor open, the editor path is used unchanged — caching, credential-drift reconnects, and identity binding all behave as before.
|
|
20
20
|
|
|
21
21
|
## What an agent should expect
|
|
22
22
|
|
|
23
|
-
- Errors from this layer are prefixed `[headless:<stage>]` where stage is one of `connect`, `auth`, `op`, `spawn`, so
|
|
23
|
+
- Errors from this layer are prefixed `[headless:<stage>]` where stage is one of `connect`, `auth`, `op`, `spawn`, so "could not reach the worker" and "the worker went quiet mid-import" read differently.
|
|
24
24
|
- A first call with no editor and no worker can take up to two minutes while the worker starts and imports the project. Later calls are fast.
|
|
25
25
|
- **No blind retries.** If a mutating operation (write, import, run, stop) times out or the worker connection drops, the outcome is reported as UNKNOWN and the connection is quarantined. Inspect the target (read the file, check the scene) before retrying. There is deliberately no automatic reconnect or replay.
|
|
26
26
|
- Worker error strings start with a snake_case classifier (`sha256_mismatch`, `already_exists`, `needs_display`). `needs_display` on a screenshot means the machine has no display; open the project in the editor for screenshots.
|
|
@@ -4,10 +4,10 @@ The minimum safe workflow for AI agents building in a Summer Engine project.
|
|
|
4
4
|
|
|
5
5
|
## Build flow (default)
|
|
6
6
|
|
|
7
|
-
1. **Understand** the request
|
|
7
|
+
1. **Understand** the request and outline a short plan.
|
|
8
8
|
2. **Call `summer_get_project_context` first** so you don't guess scene paths or the project language and so the MCP session binds to the open project. Use `projectMemory` to decide which `.summer` files to read.
|
|
9
9
|
3. **Edit through identity-bound Summer tools.** Use `summer_read_file`, `summer_replace_text`, and guarded `summer_write_file` for `.gd`, `.tscn`, `.tres`, `.cs`, `.json`, docs, and config. Write GDScript by default; use C# only if the project already uses it.
|
|
10
|
-
4. **Play and iterate.** After writing code, **play the scene you just made** and read `summer_get_diagnostics`; fix and repeat until it launches clean
|
|
10
|
+
4. **Play and iterate.** After writing code, **play the scene you just made** and read `summer_get_diagnostics`; fix and repeat until it launches clean. Do not wait for the user to find the first error.
|
|
11
11
|
|
|
12
12
|
## When to use Summer MCP (the live engine)
|
|
13
13
|
|