summer-engine 3.7.0 → 4.0.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 +2 -13
- package/.claude-plugin/plugin.json +25 -22
- package/.codex-plugin/plugin.json +8 -14
- package/.cursor-plugin/plugin.json +7 -13
- package/.factory-plugin/plugin.json +7 -13
- package/AGENTS.md +19 -12
- package/CHANGELOG.md +112 -0
- package/GEMINI.md +3 -3
- package/README.md +111 -31
- package/assets/icon.png +0 -0
- package/commands/start.md +71 -0
- package/commands/summer.md +5 -3
- package/dist/cli/banner.js +3 -0
- package/dist/cli/commands/login.d.ts +27 -0
- package/dist/cli/commands/login.js +58 -12
- package/dist/cli/commands/ops.d.ts +47 -0
- package/dist/cli/commands/ops.js +301 -0
- package/dist/cli/commands/setup.d.ts +2 -0
- package/dist/cli/commands/setup.js +37 -12
- package/dist/cli/commands/skills.js +11 -7
- package/dist/cli/index.js +7 -0
- package/dist/core/agent-host.d.ts +65 -0
- package/dist/core/agent-host.js +193 -0
- package/dist/core/capabilities/agent-playbook.d.ts +3 -0
- package/dist/core/capabilities/agent-playbook.js +54 -2
- package/dist/core/capabilities/apps.d.ts +341 -0
- package/dist/core/capabilities/apps.js +353 -0
- package/dist/core/capabilities/doctor.d.ts +3 -0
- package/dist/core/capabilities/doctor.js +20 -15
- package/dist/core/capabilities/enable-plugin.d.ts +27 -0
- package/dist/core/capabilities/enable-plugin.js +75 -0
- package/dist/core/capabilities/fabricate-mesh.d.ts +2 -2
- package/dist/core/capabilities/game-task-plan.d.ts +12 -6
- package/dist/core/capabilities/game-task-plan.js +80 -5
- package/dist/core/capabilities/motion-generation.js +2 -2
- package/dist/core/capabilities/navigation/open.d.ts +6 -2
- package/dist/core/capabilities/navigation/open.js +3 -0
- package/dist/core/capabilities/publish-build.js +2 -0
- package/dist/core/capabilities/runtime-control.d.ts +4 -4
- package/dist/core/capabilities/scene-script-target.d.ts +17 -0
- package/dist/core/capabilities/scene-script-target.js +70 -0
- package/dist/core/capabilities/sfx-choices.d.ts +4 -0
- package/dist/core/capabilities/sfx-choices.js +13 -6
- package/dist/core/capabilities/tool-dispatch.d.ts +12 -3
- package/dist/core/capabilities/tool-dispatch.js +130 -46
- package/dist/core/capability-skew.js +4 -0
- package/dist/core/embeddings.d.ts +2 -0
- package/dist/core/embeddings.js +1 -1
- package/dist/core/error-codes.d.ts +62 -0
- package/dist/core/error-codes.js +97 -0
- package/dist/core/format.d.ts +2 -0
- package/dist/core/format.js +2 -1
- package/dist/core/hosted-mcp.d.ts +22 -0
- package/dist/core/hosted-mcp.js +56 -1
- package/dist/core/library-read.js +5 -0
- package/dist/core/library-search.js +2 -1
- package/dist/core/oauth.js +4 -0
- package/dist/core/ops/catalog.d.ts +41 -0
- package/dist/core/ops/catalog.js +145 -0
- package/dist/core/ops/cloud.d.ts +56 -0
- package/dist/core/ops/cloud.js +175 -0
- package/dist/core/ops/contract.d.ts +119 -0
- package/dist/core/ops/contract.js +142 -0
- package/dist/core/ops/engine-answer.d.ts +25 -0
- package/dist/core/ops/engine-answer.js +117 -0
- package/dist/core/ops/engine.d.ts +55 -0
- package/dist/core/ops/engine.js +649 -0
- package/dist/core/ops/save-files.d.ts +78 -0
- package/dist/core/ops/save-files.js +419 -0
- package/dist/core/ops/search.d.ts +9 -0
- package/dist/core/ops/search.js +55 -0
- package/dist/core/skills-registry.d.ts +16 -1
- package/dist/core/skills-registry.js +35 -2
- package/dist/core/telemetry.d.ts +32 -0
- package/dist/core/telemetry.js +38 -10
- package/dist/core/tool-profiles.d.ts +25 -0
- package/dist/core/tool-profiles.js +41 -0
- package/dist/installer/agent-config.d.ts +17 -4
- package/dist/installer/agent-config.js +22 -6
- package/dist/installer/agent-table.d.ts +3 -0
- package/dist/installer/agent-table.js +10 -7
- package/dist/installer/setup.d.ts +2 -0
- package/dist/installer/setup.js +9 -4
- package/dist/installer/version-check.d.ts +29 -9
- package/dist/installer/version-check.js +81 -28
- package/dist/mcp/command.js +7 -0
- package/dist/mcp/hosted-mount.d.ts +27 -2
- package/dist/mcp/hosted-mount.js +66 -24
- package/dist/mcp/legacy-toolset.d.ts +27 -0
- package/dist/mcp/legacy-toolset.js +43 -0
- package/dist/mcp/ops-surface.d.ts +59 -0
- package/dist/mcp/ops-surface.js +443 -0
- package/dist/mcp/server.d.ts +35 -11
- package/dist/mcp/server.js +236 -89
- package/dist/mcp/tool-results.d.ts +26 -0
- package/dist/mcp/tool-results.js +81 -0
- package/dist/mcp/tool-surface.d.ts +65 -0
- package/dist/mcp/tool-surface.js +317 -0
- package/dist/mcp/tools/app-tools.d.ts +2 -0
- package/dist/mcp/tools/app-tools.js +71 -0
- package/dist/mcp/tools/asset-tools.js +55 -53
- package/dist/mcp/tools/audit-tools.js +21 -21
- package/dist/mcp/tools/debug-tools.js +6 -6
- package/dist/mcp/tools/fabricate-tools.js +6 -6
- package/dist/mcp/tools/generate-tools.js +76 -70
- package/dist/mcp/tools/project-tools.d.ts +9 -4
- package/dist/mcp/tools/project-tools.js +16 -10
- package/dist/mcp/tools/scene-tools.js +12 -23
- package/dist/mcp/tools/script-tools.js +9 -5
- package/dist/mcp/tools/with-engine.d.ts +6 -0
- package/dist/mcp/tools/with-engine.js +19 -0
- package/gemini-extension.json +6 -12
- package/hooks/pre-commit-doctor.sh +5 -4
- package/hooks/session-start.sh +24 -28
- package/integrations/claude-desktop/README.md +1 -1
- package/integrations/copilot-jetbrains/README.md +1 -1
- package/integrations/junie/README.md +1 -1
- package/integrations/lm-studio/README.md +1 -1
- package/integrations/trae/README.md +1 -1
- package/integrations/visual-studio/README.md +1 -1
- package/library/references/mcp-tools-reference/mcp-tools-reference.md +85 -35
- package/library/references/mcp-tools-reference/resource.yaml +1 -1
- package/library/references/product-map/resource.yaml +2 -2
- package/library/skills/3d-lighting/SKILL.md +53 -28
- package/library/skills/3d-lighting/resource.yaml +1 -1
- package/library/skills/README.md +126 -116
- package/library/skills/adaptive-music/SKILL.md +19 -23
- package/library/skills/adaptive-music/resource.yaml +1 -1
- package/library/skills/agent-playtesting/SKILL.md +1 -1
- package/library/skills/agent-playtesting/resource.yaml +1 -1
- package/library/skills/ai-characters-in-games/SKILL.md +1 -1
- package/library/skills/ai-characters-in-games/resource.yaml +1 -1
- package/library/skills/ambient-bed/SKILL.md +22 -13
- package/library/skills/ambient-bed/resource.yaml +1 -1
- package/library/skills/animated-loop/SKILL.md +41 -32
- package/library/skills/animated-loop/resource.yaml +1 -1
- package/library/skills/animation-tree/SKILL.md +1 -1
- package/library/skills/animation-tree/resource.yaml +1 -1
- package/library/skills/art-direction/SKILL.md +3 -3
- package/library/skills/art-direction/resource.yaml +1 -1
- package/library/skills/asset-strategy/SKILL.md +21 -4
- package/library/skills/asset-strategy/resource.yaml +2 -1
- package/library/skills/audio-direction/SKILL.md +10 -10
- package/library/skills/audio-direction/resource.yaml +1 -1
- package/library/skills/auto-fire-targeting/SKILL.md +1 -1
- package/library/skills/auto-fire-targeting/resource.yaml +1 -1
- package/library/skills/bounded-engine-runs/SKILL.md +1 -1
- package/library/skills/bounded-engine-runs/resource.yaml +1 -1
- package/library/skills/brainstorm-game/SKILL.md +1 -1
- package/library/skills/brainstorm-game/resource.yaml +1 -1
- package/library/skills/brainstorming/SKILL.md +1 -1
- package/library/skills/brainstorming/resource.yaml +1 -1
- package/library/skills/browse-templates/SKILL.md +1 -1
- package/library/skills/browse-templates/resource.yaml +1 -1
- package/library/skills/camera-rigs/SKILL.md +2 -2
- package/library/skills/camera-rigs/resource.yaml +1 -1
- package/library/skills/celeste-momentum-platforming/resource.yaml +1 -0
- package/library/skills/character-animation-wiring/SKILL.md +4 -4
- package/library/skills/character-animation-wiring/resource.yaml +1 -1
- package/library/skills/character-model/SKILL.md +55 -47
- package/library/skills/character-model/resource.yaml +1 -1
- package/library/skills/character-movement/SKILL.md +3 -3
- package/library/skills/character-movement/resource.yaml +1 -1
- package/library/skills/character-portrait/SKILL.md +24 -19
- package/library/skills/character-portrait/resource.yaml +1 -1
- package/library/skills/cinematic-cutscene/SKILL.md +58 -46
- package/library/skills/cinematic-cutscene/resource.yaml +1 -1
- package/library/skills/combat-basics/SKILL.md +1 -1
- package/library/skills/combat-basics/resource.yaml +1 -1
- package/library/skills/compatibility-renderer-traps/SKILL.md +1 -1
- package/library/skills/compatibility-renderer-traps/resource.yaml +1 -1
- package/library/skills/concept-art/SKILL.md +16 -12
- package/library/skills/concept-art/resource.yaml +1 -1
- package/library/skills/concept-to-level/SKILL.md +239 -0
- package/library/skills/concept-to-level/references/technical-rules.md +150 -0
- package/library/skills/concept-to-level/resource.yaml +44 -0
- package/library/skills/create-asset-sheet/SKILL.md +19 -13
- package/library/skills/create-asset-sheet/resource.yaml +1 -1
- package/library/skills/debug/SKILL.md +2 -2
- package/library/skills/debug/resource.yaml +1 -1
- package/library/skills/debugging-game-feel/SKILL.md +1 -1
- package/library/skills/debugging-game-feel/resource.yaml +1 -1
- package/library/skills/design-level/SKILL.md +23 -35
- package/library/skills/design-level/resource.yaml +1 -1
- package/library/skills/design-mechanic/SKILL.md +1 -1
- package/library/skills/design-mechanic/resource.yaml +1 -1
- package/library/skills/design-npc/SKILL.md +22 -24
- package/library/skills/design-npc/resource.yaml +1 -1
- package/library/skills/diagnosing-perf-regressions/SKILL.md +1 -1
- package/library/skills/diagnosing-perf-regressions/resource.yaml +1 -1
- package/library/skills/driving-the-editor-ui/SKILL.md +1 -1
- package/library/skills/driving-the-editor-ui/resource.yaml +1 -1
- package/library/skills/environment-kit/SKILL.md +20 -16
- package/library/skills/environment-kit/resource.yaml +1 -1
- package/library/skills/export-and-ship/SKILL.md +6 -6
- package/library/skills/export-and-ship/resource.yaml +1 -1
- package/library/skills/fabricating-assets/SKILL.md +7 -7
- package/library/skills/fabricating-assets/resource.yaml +3 -3
- package/library/skills/facial-and-lipsync/SKILL.md +14 -15
- package/library/skills/facial-and-lipsync/resource.yaml +1 -1
- package/library/skills/fps-controller/SKILL.md +33 -41
- package/library/skills/fps-controller/resource.yaml +1 -1
- package/library/skills/game-feel/SKILL.md +8 -8
- package/library/skills/game-feel/resource.yaml +1 -1
- package/library/skills/gameskill/SKILL.md +4 -4
- package/library/skills/gameskill/resource.yaml +1 -1
- package/library/skills/gdscript-patterns/SKILL.md +1 -1
- package/library/skills/gdscript-patterns/resource.yaml +1 -1
- package/library/skills/generate-motion/SKILL.md +30 -21
- package/library/skills/generate-motion/resource.yaml +1 -1
- package/library/skills/godogen-visual-proof-game-generation/SKILL.md +1 -1
- package/library/skills/godogen-visual-proof-game-generation/resource.yaml +1 -0
- package/library/skills/grow-analytics/SKILL.md +3 -3
- package/library/skills/grow-analytics/resource.yaml +1 -1
- package/library/skills/headless-scripting/SKILL.md +1 -1
- package/library/skills/headless-scripting/resource.yaml +1 -1
- package/library/skills/in-game-purchases/SKILL.md +1 -1
- package/library/skills/in-game-purchases/resource.yaml +1 -1
- package/library/skills/instantiate-asset-pack/SKILL.md +2 -2
- package/library/skills/instantiate-asset-pack/resource.yaml +1 -1
- package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +1 -0
- package/library/skills/make-game/SKILL.md +4 -4
- package/library/skills/make-game/references/2d-platformer.md +1 -1
- package/library/skills/make-game/references/3d-fps.md +1 -1
- package/library/skills/make-game/references/3d-horror.md +1 -1
- package/library/skills/make-game/references/3d-third-person.md +2 -2
- package/library/skills/make-game/resource.yaml +1 -1
- package/library/skills/multiplayer/SKILL.md +1 -1
- package/library/skills/multiplayer/resource.yaml +1 -1
- package/library/skills/multiplayer-movement/SKILL.md +1 -1
- package/library/skills/multiplayer-movement/resource.yaml +1 -1
- package/library/skills/multiplayer-project/SKILL.md +1 -1
- package/library/skills/multiplayer-project/resource.yaml +1 -1
- package/library/skills/multiplayer-publish/SKILL.md +8 -7
- package/library/skills/multiplayer-publish/resource.yaml +3 -3
- package/library/skills/multiplayer-state/SKILL.md +1 -1
- package/library/skills/multiplayer-state/resource.yaml +1 -1
- package/library/skills/multiplayer-testing/SKILL.md +1 -1
- package/library/skills/multiplayer-testing/resource.yaml +1 -1
- package/library/skills/music-track/SKILL.md +22 -13
- package/library/skills/music-track/resource.yaml +1 -1
- package/library/skills/navigate-summer/SKILL.md +11 -9
- package/library/skills/navigate-summer/resource.yaml +1 -1
- package/library/skills/new-project/SKILL.md +1 -1
- package/library/skills/new-project/resource.yaml +1 -1
- package/library/skills/organic-model/SKILL.md +24 -18
- package/library/skills/organic-model/resource.yaml +1 -1
- package/library/skills/pixel-art/SKILL.md +27 -23
- package/library/skills/pixel-art/resource.yaml +1 -1
- package/library/skills/play/SKILL.md +1 -1
- package/library/skills/play/resource.yaml +1 -1
- package/library/skills/playtesting-a-feature/SKILL.md +1 -1
- package/library/skills/playtesting-a-feature/resource.yaml +1 -1
- package/library/skills/procedural-animation/SKILL.md +20 -16
- package/library/skills/procedural-animation/resource.yaml +1 -1
- package/library/skills/prop-model/SKILL.md +25 -19
- package/library/skills/prop-model/resource.yaml +1 -1
- package/library/skills/psx-retro-rendering/resource.yaml +1 -0
- package/library/skills/publish-your-game/SKILL.md +16 -6
- package/library/skills/publish-your-game/resource.yaml +3 -3
- package/library/skills/realtime-wet-surfaces/resource.yaml +1 -0
- package/library/skills/release-readiness/SKILL.md +1 -1
- package/library/skills/release-readiness/resource.yaml +1 -1
- package/library/skills/remote-deploy/SKILL.md +1 -1
- package/library/skills/remote-deploy/resource.yaml +1 -1
- package/library/skills/retarget/SKILL.md +23 -20
- package/library/skills/retarget/resource.yaml +1 -1
- package/library/skills/running-in-the-cloud/SKILL.md +1 -1
- package/library/skills/running-in-the-cloud/resource.yaml +1 -1
- package/library/skills/save-load/SKILL.md +1 -1
- package/library/skills/save-load/resource.yaml +1 -1
- package/library/skills/scene-composition/SKILL.md +1 -1
- package/library/skills/scene-composition/resource.yaml +1 -1
- package/library/skills/scene-hierarchy-design/SKILL.md +2 -2
- package/library/skills/scene-hierarchy-design/resource.yaml +1 -1
- package/library/skills/scene-scripting/SKILL.md +66 -636
- package/library/skills/scene-scripting/references/ctx-api.md +184 -0
- package/library/skills/scene-scripting/references/recipes-2d-ui.md +193 -0
- package/library/skills/scene-scripting/references/recipes-3d.md +280 -0
- package/library/skills/scene-scripting/resource.yaml +4 -4
- package/library/skills/scene-to-level/SKILL.md +2 -2
- package/library/skills/scene-to-level/resource.yaml +1 -1
- package/library/skills/skill-create/resource.yaml +1 -0
- package/library/skills/skill-improve/resource.yaml +1 -0
- package/library/skills/skill-test/SKILL.md +2 -2
- package/library/skills/skill-test/resource.yaml +1 -0
- package/library/skills/skintokens-auto-rigging/resource.yaml +1 -0
- package/library/skills/skybox-panorama/SKILL.md +27 -21
- package/library/skills/skybox-panorama/resource.yaml +1 -1
- package/library/skills/sound-effect/SKILL.md +31 -20
- package/library/skills/sound-effect/resource.yaml +1 -1
- package/library/skills/spatial-placement/SKILL.md +14 -9
- package/library/skills/spatial-placement/resource.yaml +1 -1
- package/library/skills/sprite-sheet/SKILL.md +32 -27
- package/library/skills/sprite-sheet/resource.yaml +1 -1
- package/library/skills/store-art/SKILL.md +3 -3
- package/library/skills/store-art/resource.yaml +2 -2
- package/library/skills/store-listing/SKILL.md +3 -3
- package/library/skills/store-listing/resource.yaml +2 -2
- package/library/skills/summer-analytics/SKILL.md +7 -5
- package/library/skills/summer-analytics/resource.yaml +2 -2
- package/library/skills/summer-apps/SKILL.md +168 -0
- package/library/skills/summer-apps/manifest.md +57 -0
- package/library/skills/summer-apps/minimal-app.md +183 -0
- package/library/skills/summer-apps/resource.yaml +36 -0
- package/library/skills/summer-apps/sdk-reference.md +135 -0
- package/library/skills/summer-apps-design/SKILL.md +197 -0
- package/library/skills/summer-apps-design/resource.yaml +23 -0
- package/library/skills/summer-assets/SKILL.md +56 -0
- package/library/skills/summer-assets/resource.yaml +34 -0
- package/library/skills/summer-store/SKILL.md +1 -1
- package/library/skills/text-to-motion/SKILL.md +30 -23
- package/library/skills/text-to-motion/prompts-and-controls.md +5 -5
- package/library/skills/text-to-motion/resource.yaml +1 -1
- package/library/skills/text-to-motion/rigging-for-text-motion.md +2 -2
- package/library/skills/tileable-texture/SKILL.md +19 -15
- package/library/skills/tileable-texture/resource.yaml +1 -1
- package/library/skills/trailer-shot/SKILL.md +28 -24
- package/library/skills/trailer-shot/resource.yaml +1 -1
- package/library/skills/tune-performance/SKILL.md +6 -6
- package/library/skills/tune-performance/resource.yaml +1 -1
- package/library/skills/ui-basics/SKILL.md +41 -36
- package/library/skills/ui-basics/resource.yaml +1 -1
- package/library/skills/ui-graphics/SKILL.md +47 -38
- package/library/skills/ui-graphics/resource.yaml +1 -1
- package/library/skills/use-widget-asset/SKILL.md +1 -1
- package/library/skills/use-widget-asset/resource.yaml +1 -1
- package/library/skills/using-summer/SKILL.md +7 -5
- package/library/skills/using-summer/resource.yaml +1 -1
- package/library/skills/vehicle-model/SKILL.md +65 -57
- package/library/skills/vehicle-model/resource.yaml +1 -1
- package/library/skills/verification-before-completion/SKILL.md +1 -1
- package/library/skills/verification-before-completion/resource.yaml +1 -1
- package/library/skills/verifying-scenes/SKILL.md +2 -2
- package/library/skills/verifying-scenes/resource.yaml +1 -1
- package/library/skills/vfx-dissolve/SKILL.md +2 -2
- package/library/skills/vfx-dissolve/resource.yaml +1 -1
- package/library/skills/vfx-fire/SKILL.md +15 -41
- package/library/skills/vfx-fire/resource.yaml +1 -1
- package/library/skills/vfx-hit-spark/SKILL.md +1 -1
- package/library/skills/vfx-hit-spark/resource.yaml +1 -1
- package/library/skills/vfx-lightning/SKILL.md +7 -16
- package/library/skills/vfx-lightning/resource.yaml +1 -1
- package/library/skills/vfx-magic-glow/SKILL.md +23 -32
- package/library/skills/vfx-magic-glow/resource.yaml +1 -1
- package/library/skills/vfx-muzzle-flash/SKILL.md +20 -35
- package/library/skills/vfx-muzzle-flash/resource.yaml +1 -1
- package/library/skills/vfx-smoke/SKILL.md +13 -31
- package/library/skills/vfx-smoke/resource.yaml +1 -1
- package/library/skills/vfx-water-ripple/SKILL.md +12 -31
- package/library/skills/vfx-water-ripple/resource.yaml +1 -1
- package/library/skills/voice-line/SKILL.md +71 -40
- package/library/skills/voice-line/resource.yaml +1 -1
- package/library/skills/web-and-touch-input/SKILL.md +1 -1
- package/library/skills/web-and-touch-input/resource.yaml +1 -1
- package/library/skills/web-compatibility-look/SKILL.md +1 -1
- package/library/skills/web-compatibility-look/resource.yaml +1 -1
- package/library/skills/world-building-3d/SKILL.md +1 -1
- package/library/skills/world-building-3d/resource.yaml +1 -1
- package/library/skills/writing-skills/resource.yaml +1 -0
- package/library/tools/add-node/GUIDE.md +14 -0
- package/library/tools/align-distribute-3d/GUIDE.md +7 -0
- package/library/tools/app-call/resource.yaml +59 -0
- package/library/tools/app-create/resource.yaml +67 -0
- package/library/tools/app-data/resource.yaml +74 -0
- package/library/tools/app-dock/resource.yaml +59 -0
- package/library/tools/app-events/resource.yaml +68 -0
- package/library/tools/app-get/resource.yaml +46 -0
- package/library/tools/app-guide/resource.yaml +55 -0
- package/library/tools/app-list/resource.yaml +48 -0
- package/library/tools/app-page/resource.yaml +74 -0
- package/library/tools/app-publish/resource.yaml +90 -0
- package/library/tools/app-report-gap/resource.yaml +58 -0
- package/library/tools/app-screenshot/resource.yaml +103 -0
- package/library/tools/app-tools/resource.yaml +46 -0
- package/library/tools/app-update/resource.yaml +68 -0
- package/library/tools/attach-to-surface/GUIDE.md +15 -0
- package/library/tools/batch/GUIDE.md +27 -0
- package/library/tools/camera-bookmark/GUIDE.md +12 -0
- package/library/tools/capture-gameplay/GUIDE.md +3 -0
- package/library/tools/capture-gameplay/resource.yaml +3 -3
- package/library/tools/check-job/resource.yaml +1 -1
- package/library/tools/clear-console/GUIDE.md +3 -0
- package/library/tools/connect-ports/GUIDE.md +9 -0
- package/library/tools/connect-signal/GUIDE.md +14 -0
- package/library/tools/create-debug-report/GUIDE.md +10 -0
- package/library/tools/create-scene/GUIDE.md +10 -0
- package/library/tools/debug-views/GUIDE.md +7 -0
- package/library/tools/enable-plugin/GUIDE.md +3 -0
- package/library/tools/enable-plugin/resource.yaml +53 -0
- package/library/tools/export-game/GUIDE.md +3 -0
- package/library/tools/export-game/resource.yaml +3 -3
- package/library/tools/export-templates/GUIDE.md +3 -0
- package/library/tools/fabricate-3d/GUIDE.md +19 -0
- package/library/tools/frame-nodes/GUIDE.md +9 -0
- package/library/tools/frame-shot/GUIDE.md +9 -0
- package/library/tools/game-control/GUIDE.md +9 -0
- package/library/tools/game-input/GUIDE.md +9 -0
- package/library/tools/game-probe/GUIDE.md +9 -0
- package/library/tools/generate-3d/resource.yaml +3 -3
- package/library/tools/generate-motion/resource.yaml +2 -2
- package/library/tools/get-console/GUIDE.md +9 -0
- package/library/tools/get-console/resource.yaml +5 -0
- package/library/tools/get-debugger-errors/GUIDE.md +7 -0
- package/library/tools/get-debugger-errors/resource.yaml +5 -0
- package/library/tools/get-debugger-warnings/GUIDE.md +7 -0
- package/library/tools/get-debugger-warnings/resource.yaml +5 -0
- package/library/tools/get-diagnostics/GUIDE.md +13 -0
- package/library/tools/get-project-context/GUIDE.md +25 -0
- package/library/tools/get-runtime-tree/GUIDE.md +7 -0
- package/library/tools/get-runtime-tree/resource.yaml +5 -0
- package/library/tools/get-scene-tree/GUIDE.md +11 -0
- package/library/tools/get-scene-tree/resource.yaml +5 -0
- package/library/tools/get-script-errors/GUIDE.md +5 -0
- package/library/tools/grep/GUIDE.md +11 -0
- package/library/tools/import-asset/GUIDE.md +8 -0
- package/library/tools/import-asset-by-id/GUIDE.md +12 -0
- package/library/tools/import-from-url/GUIDE.md +10 -0
- package/library/tools/import-from-url-batch/GUIDE.md +3 -0
- package/library/tools/import-hdri/GUIDE.md +16 -0
- package/library/tools/input-map-bind/GUIDE.md +11 -0
- package/library/tools/inspect-asset/GUIDE.md +14 -0
- package/library/tools/inspect-asset/resource.yaml +5 -0
- package/library/tools/inspect-node/GUIDE.md +11 -0
- package/library/tools/inspect-node/resource.yaml +5 -0
- package/library/tools/inspect-resource/GUIDE.md +7 -0
- package/library/tools/inspect-resource/resource.yaml +5 -0
- package/library/tools/inspect-runtime-node/GUIDE.md +7 -0
- package/library/tools/inspect-runtime-node/resource.yaml +5 -0
- package/library/tools/instantiate-scene/GUIDE.md +12 -0
- package/library/tools/is-running/GUIDE.md +3 -0
- package/library/tools/measure/GUIDE.md +8 -0
- package/library/tools/navigation-probe/GUIDE.md +9 -0
- package/library/tools/open/resource.yaml +2 -2
- package/library/tools/open-main-scene/GUIDE.md +6 -0
- package/library/tools/open-scene/GUIDE.md +8 -0
- package/library/tools/place-adjacent/GUIDE.md +7 -0
- package/library/tools/play/GUIDE.md +13 -0
- package/library/tools/project-setting/GUIDE.md +9 -0
- package/library/tools/publish-build/resource.yaml +6 -6
- package/library/tools/raycast/GUIDE.md +7 -0
- package/library/tools/read-file/GUIDE.md +10 -0
- package/library/tools/read-library/resource.yaml +5 -0
- package/library/tools/recent-events/GUIDE.md +7 -0
- package/library/tools/remove-node/GUIDE.md +3 -0
- package/library/tools/repeat-along/GUIDE.md +5 -0
- package/library/tools/replace-node/GUIDE.md +9 -0
- package/library/tools/replace-text/GUIDE.md +5 -0
- package/library/tools/run-editor-script/GUIDE.md +16 -0
- package/library/tools/run-script/GUIDE.md +30 -0
- package/library/tools/run-script/resource.yaml +6 -3
- package/library/tools/runtime-animate/GUIDE.md +7 -0
- package/library/tools/runtime-call/GUIDE.md +7 -0
- package/library/tools/runtime-set/GUIDE.md +9 -0
- package/library/tools/runtime-spawn/GUIDE.md +9 -0
- package/library/tools/save-scene/GUIDE.md +3 -0
- package/library/tools/scene-audit/GUIDE.md +29 -0
- package/library/tools/screenshot/GUIDE.md +17 -0
- package/library/tools/select-node/GUIDE.md +3 -0
- package/library/tools/set-prop/GUIDE.md +23 -0
- package/library/tools/set-resource-property/GUIDE.md +8 -0
- package/library/tools/shot-sheet/GUIDE.md +7 -0
- package/library/tools/snap-to-surface/GUIDE.md +17 -0
- package/library/tools/snapshot-diff/GUIDE.md +7 -0
- package/library/tools/starcast/GUIDE.md +12 -0
- package/library/tools/stop/GUIDE.md +3 -0
- package/library/tools/test-placement/GUIDE.md +7 -0
- package/library/tools/ui-actions/GUIDE.md +12 -0
- package/library/tools/ui-activate/GUIDE.md +11 -0
- package/library/tools/ui-screenshot/GUIDE.md +9 -0
- package/library/tools/ui-tree/GUIDE.md +10 -0
- package/library/tools/wait-for-event/GUIDE.md +11 -0
- package/library/tools/world-snapshot/GUIDE.md +9 -0
- package/library/tools/write-file/GUIDE.md +5 -0
- package/library/tools/zoom/GUIDE.md +5 -0
- package/package.json +6 -4
- package/registry/generated/aliases.json +15 -0
- package/registry/generated/counts.json +3 -3
- package/registry/generated/gemini-extension.json +6 -12
- package/registry/generated/index.json +1155 -408
- package/registry/generated/marketplace.claude.json +2 -13
- package/registry/generated/plugin.claude.json +25 -22
- package/registry/generated/plugin.codex.json +8 -14
- package/registry/generated/plugin.cursor.json +7 -13
- package/registry/generated/plugin.factory.json +7 -13
- package/registry/generated/server.json +34 -0
- package/registry/generated/skills-index.md +126 -116
- package/registry/generated/skills-registry.json +178 -113
- package/registry/operations/fixtures/invalid-deprecated-without-replacement.json +60 -0
- package/registry/operations/fixtures/invalid-name.json +60 -0
- package/registry/operations/fixtures/invalid-publish-without-owner.json +82 -0
- package/registry/operations/fixtures/invalid-spend-without-estimate.json +42 -0
- package/registry/operations/fixtures/invalid-unknown-field.json +61 -0
- package/registry/operations/fixtures/valid-player-facing.json +82 -0
- package/registry/operations/fixtures/valid-read.json +60 -0
- package/registry/operations/fixtures/valid-spend.json +43 -0
- package/registry/operations/legacy-names.json +1206 -0
- package/registry/schemas/allowed-hosts.json +4 -2
- package/registry/schemas/operation.schema.json +318 -0
- package/registry/schemas/skill.schema.json +4 -0
- package/CLAUDE.md +0 -7
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
id: tool/app-get
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: Read a Summer App's manifest, current files (or layout) and shared data summary.
|
|
5
|
+
use_when:
|
|
6
|
+
- before changing an existing app
|
|
7
|
+
- '"what does our loot table app do"'
|
|
8
|
+
facets:
|
|
9
|
+
lifecycle:
|
|
10
|
+
- build
|
|
11
|
+
domains:
|
|
12
|
+
- tools
|
|
13
|
+
- ui
|
|
14
|
+
compatibility:
|
|
15
|
+
engine: ">=4.6"
|
|
16
|
+
related:
|
|
17
|
+
skills:
|
|
18
|
+
- skill/summer-apps
|
|
19
|
+
source: official
|
|
20
|
+
license: MIT
|
|
21
|
+
status: preview
|
|
22
|
+
aliases:
|
|
23
|
+
- summer_app_get
|
|
24
|
+
implementation:
|
|
25
|
+
module: src/mcp/tools/app-tools.ts
|
|
26
|
+
export: registerAppTools
|
|
27
|
+
surfaces:
|
|
28
|
+
mcp:
|
|
29
|
+
tool_name: summer_app_get
|
|
30
|
+
remote: true
|
|
31
|
+
input_schema:
|
|
32
|
+
type: object
|
|
33
|
+
properties:
|
|
34
|
+
appId:
|
|
35
|
+
type: string
|
|
36
|
+
format: uuid
|
|
37
|
+
description: The app id from summer_app_create or summer_app_list
|
|
38
|
+
required:
|
|
39
|
+
- appId
|
|
40
|
+
additionalProperties: false
|
|
41
|
+
authority:
|
|
42
|
+
filesystem: false
|
|
43
|
+
editor_mutation: false
|
|
44
|
+
network: true
|
|
45
|
+
credentials: false
|
|
46
|
+
publish: false
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
id: tool/app-guide
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: "Read the Summer Apps build guide: when to build an app, Layout vs code, build loop, manifest, SDK, UI kit, layout format, design rules and worked examples."
|
|
5
|
+
use_when:
|
|
6
|
+
- before building or changing a Summer App
|
|
7
|
+
- '"build us a loot balance tool"'
|
|
8
|
+
- '"make a tool for our team to track creatures"'
|
|
9
|
+
facets:
|
|
10
|
+
lifecycle:
|
|
11
|
+
- build
|
|
12
|
+
domains:
|
|
13
|
+
- tools
|
|
14
|
+
- ui
|
|
15
|
+
compatibility:
|
|
16
|
+
engine: ">=4.6"
|
|
17
|
+
related:
|
|
18
|
+
skills:
|
|
19
|
+
- skill/summer-apps
|
|
20
|
+
source: official
|
|
21
|
+
license: MIT
|
|
22
|
+
status: preview
|
|
23
|
+
aliases:
|
|
24
|
+
- summer_app_guide
|
|
25
|
+
implementation:
|
|
26
|
+
module: src/mcp/tools/app-tools.ts
|
|
27
|
+
export: registerAppTools
|
|
28
|
+
surfaces:
|
|
29
|
+
mcp:
|
|
30
|
+
tool_name: summer_app_guide
|
|
31
|
+
remote: true
|
|
32
|
+
input_schema:
|
|
33
|
+
type: object
|
|
34
|
+
properties:
|
|
35
|
+
section:
|
|
36
|
+
type: string
|
|
37
|
+
enum:
|
|
38
|
+
- all
|
|
39
|
+
- overview
|
|
40
|
+
- manifest
|
|
41
|
+
- sdk
|
|
42
|
+
- kit
|
|
43
|
+
- layout
|
|
44
|
+
- design
|
|
45
|
+
- examples
|
|
46
|
+
- types
|
|
47
|
+
default: overview
|
|
48
|
+
description: "Start with overview (the default), then read what the app needs: examples (a working app to copy), sdk, manifest, kit, design, layout, types (exact SDK TypeScript types). all returns every section but types (about 100 KB)"
|
|
49
|
+
additionalProperties: false
|
|
50
|
+
authority:
|
|
51
|
+
filesystem: false
|
|
52
|
+
editor_mutation: false
|
|
53
|
+
network: true
|
|
54
|
+
credentials: false
|
|
55
|
+
publish: false
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
id: tool/app-list
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: List the Summer Apps (team tools inside Summer Studio) in the person's workspaces.
|
|
5
|
+
use_when:
|
|
6
|
+
- '"which apps do we have"'
|
|
7
|
+
- finding an app id to change or read
|
|
8
|
+
facets:
|
|
9
|
+
lifecycle:
|
|
10
|
+
- build
|
|
11
|
+
domains:
|
|
12
|
+
- tools
|
|
13
|
+
- ui
|
|
14
|
+
compatibility:
|
|
15
|
+
engine: ">=4.6"
|
|
16
|
+
related:
|
|
17
|
+
skills:
|
|
18
|
+
- skill/summer-apps
|
|
19
|
+
source: official
|
|
20
|
+
license: MIT
|
|
21
|
+
status: preview
|
|
22
|
+
aliases:
|
|
23
|
+
- summer_app_list
|
|
24
|
+
implementation:
|
|
25
|
+
module: src/mcp/tools/app-tools.ts
|
|
26
|
+
export: registerAppTools
|
|
27
|
+
surfaces:
|
|
28
|
+
mcp:
|
|
29
|
+
tool_name: summer_app_list
|
|
30
|
+
remote: true
|
|
31
|
+
input_schema:
|
|
32
|
+
type: object
|
|
33
|
+
properties:
|
|
34
|
+
workspaceId:
|
|
35
|
+
type: string
|
|
36
|
+
format: uuid
|
|
37
|
+
description: "Only this workspace (team). Default: every workspace the person is in"
|
|
38
|
+
q:
|
|
39
|
+
type: string
|
|
40
|
+
maxLength: 200
|
|
41
|
+
description: Search app names and purposes
|
|
42
|
+
additionalProperties: false
|
|
43
|
+
authority:
|
|
44
|
+
filesystem: false
|
|
45
|
+
editor_mutation: false
|
|
46
|
+
network: true
|
|
47
|
+
credentials: false
|
|
48
|
+
publish: false
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
id: tool/app-page
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: Read or use the fields and buttons an open Summer App declared (fill values, press actions).
|
|
5
|
+
use_when:
|
|
6
|
+
- '"set the budget to 60 in the balance app"'
|
|
7
|
+
- reading what the person has selected in an open app
|
|
8
|
+
do_not_use_when:
|
|
9
|
+
- "changing shared data with no app open: apps.write_data"
|
|
10
|
+
facets:
|
|
11
|
+
lifecycle:
|
|
12
|
+
- build
|
|
13
|
+
domains:
|
|
14
|
+
- tools
|
|
15
|
+
- ui
|
|
16
|
+
compatibility:
|
|
17
|
+
engine: ">=4.6"
|
|
18
|
+
related:
|
|
19
|
+
skills:
|
|
20
|
+
- skill/summer-apps
|
|
21
|
+
source: official
|
|
22
|
+
license: MIT
|
|
23
|
+
status: preview
|
|
24
|
+
aliases:
|
|
25
|
+
- summer_app_page
|
|
26
|
+
implementation:
|
|
27
|
+
module: src/mcp/tools/app-tools.ts
|
|
28
|
+
export: registerAppTools
|
|
29
|
+
surfaces:
|
|
30
|
+
mcp:
|
|
31
|
+
tool_name: summer_app_page
|
|
32
|
+
remote: true
|
|
33
|
+
input_schema:
|
|
34
|
+
type: object
|
|
35
|
+
properties:
|
|
36
|
+
appId:
|
|
37
|
+
type: string
|
|
38
|
+
format: uuid
|
|
39
|
+
description: The app id from summer_app_create or summer_app_list
|
|
40
|
+
fill:
|
|
41
|
+
type: array
|
|
42
|
+
items:
|
|
43
|
+
type: object
|
|
44
|
+
properties:
|
|
45
|
+
field:
|
|
46
|
+
type: string
|
|
47
|
+
minLength: 1
|
|
48
|
+
maxLength: 200
|
|
49
|
+
value:
|
|
50
|
+
anyOf:
|
|
51
|
+
- type: string
|
|
52
|
+
maxLength: 10000
|
|
53
|
+
- type: number
|
|
54
|
+
- type: boolean
|
|
55
|
+
required:
|
|
56
|
+
- field
|
|
57
|
+
- value
|
|
58
|
+
additionalProperties: false
|
|
59
|
+
maxItems: 50
|
|
60
|
+
description: "Values to set: [{field, value}] with field ids from a read"
|
|
61
|
+
press:
|
|
62
|
+
type: string
|
|
63
|
+
minLength: 1
|
|
64
|
+
maxLength: 200
|
|
65
|
+
description: An action id to press after filling
|
|
66
|
+
required:
|
|
67
|
+
- appId
|
|
68
|
+
additionalProperties: false
|
|
69
|
+
authority:
|
|
70
|
+
filesystem: false
|
|
71
|
+
editor_mutation: false
|
|
72
|
+
network: true
|
|
73
|
+
credentials: false
|
|
74
|
+
publish: false
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
id: tool/app-publish
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: Publish a new version of a Summer App from a local folder, files or a layout; the person's Studio tab boots it.
|
|
5
|
+
use_when:
|
|
6
|
+
- after writing or changing an app's files
|
|
7
|
+
- fixing an app after a publish error or an app error event
|
|
8
|
+
facets:
|
|
9
|
+
lifecycle:
|
|
10
|
+
- build
|
|
11
|
+
domains:
|
|
12
|
+
- tools
|
|
13
|
+
- ui
|
|
14
|
+
compatibility:
|
|
15
|
+
engine: ">=4.6"
|
|
16
|
+
related:
|
|
17
|
+
skills:
|
|
18
|
+
- skill/summer-apps
|
|
19
|
+
source: official
|
|
20
|
+
license: MIT
|
|
21
|
+
status: preview
|
|
22
|
+
aliases:
|
|
23
|
+
- summer_app_publish
|
|
24
|
+
implementation:
|
|
25
|
+
module: src/mcp/tools/app-tools.ts
|
|
26
|
+
export: registerAppTools
|
|
27
|
+
surfaces:
|
|
28
|
+
mcp:
|
|
29
|
+
tool_name: summer_app_publish
|
|
30
|
+
remote: true
|
|
31
|
+
input_schema:
|
|
32
|
+
type: object
|
|
33
|
+
properties:
|
|
34
|
+
appId:
|
|
35
|
+
type: string
|
|
36
|
+
format: uuid
|
|
37
|
+
description: The app id from summer_app_create or summer_app_list
|
|
38
|
+
dir:
|
|
39
|
+
type: string
|
|
40
|
+
minLength: 1
|
|
41
|
+
description: A local folder holding the app (index.html at its root). Every file under it is published; dotfiles and node_modules are skipped
|
|
42
|
+
files:
|
|
43
|
+
type: array
|
|
44
|
+
items:
|
|
45
|
+
type: object
|
|
46
|
+
properties:
|
|
47
|
+
path:
|
|
48
|
+
type: string
|
|
49
|
+
minLength: 1
|
|
50
|
+
maxLength: 200
|
|
51
|
+
content:
|
|
52
|
+
type: string
|
|
53
|
+
encoding:
|
|
54
|
+
type: string
|
|
55
|
+
enum:
|
|
56
|
+
- utf8
|
|
57
|
+
- base64
|
|
58
|
+
default: utf8
|
|
59
|
+
required:
|
|
60
|
+
- path
|
|
61
|
+
- content
|
|
62
|
+
additionalProperties: false
|
|
63
|
+
maxItems: 300
|
|
64
|
+
description: "The files instead of dir: [{path, content, encoding}]"
|
|
65
|
+
layout:
|
|
66
|
+
type: object
|
|
67
|
+
additionalProperties: {}
|
|
68
|
+
description: "Layout apps: { version: 1, title, root }"
|
|
69
|
+
manifest:
|
|
70
|
+
type: object
|
|
71
|
+
additionalProperties: {}
|
|
72
|
+
description: The manifest {name, purpose, permissions, engineFiles, agentEvents, agentTools} (summer_app_guide section manifest)
|
|
73
|
+
note:
|
|
74
|
+
type: string
|
|
75
|
+
maxLength: 500
|
|
76
|
+
description: What changed, shown in the version list
|
|
77
|
+
idempotencyKey:
|
|
78
|
+
type: string
|
|
79
|
+
minLength: 8
|
|
80
|
+
maxLength: 128
|
|
81
|
+
required:
|
|
82
|
+
- appId
|
|
83
|
+
- manifest
|
|
84
|
+
additionalProperties: false
|
|
85
|
+
authority:
|
|
86
|
+
filesystem: true
|
|
87
|
+
editor_mutation: false
|
|
88
|
+
network: true
|
|
89
|
+
credentials: false
|
|
90
|
+
publish: false
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
id: tool/app-report-gap
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: Report an SDK capability a Summer App needed and did not have, so Summer builds it.
|
|
5
|
+
use_when:
|
|
6
|
+
- an app needed to reach a service or engine feature the SDK does not offer
|
|
7
|
+
- an app needs something the Summer Apps SDK cannot do
|
|
8
|
+
facets:
|
|
9
|
+
lifecycle:
|
|
10
|
+
- build
|
|
11
|
+
domains:
|
|
12
|
+
- tools
|
|
13
|
+
- ui
|
|
14
|
+
compatibility:
|
|
15
|
+
engine: ">=4.6"
|
|
16
|
+
related:
|
|
17
|
+
skills:
|
|
18
|
+
- skill/summer-apps
|
|
19
|
+
source: official
|
|
20
|
+
license: MIT
|
|
21
|
+
status: preview
|
|
22
|
+
aliases:
|
|
23
|
+
- summer_app_report_gap
|
|
24
|
+
implementation:
|
|
25
|
+
module: src/mcp/tools/app-tools.ts
|
|
26
|
+
export: registerAppTools
|
|
27
|
+
surfaces:
|
|
28
|
+
mcp:
|
|
29
|
+
tool_name: summer_app_report_gap
|
|
30
|
+
remote: true
|
|
31
|
+
input_schema:
|
|
32
|
+
type: object
|
|
33
|
+
properties:
|
|
34
|
+
capability:
|
|
35
|
+
type: string
|
|
36
|
+
minLength: 1
|
|
37
|
+
maxLength: 200
|
|
38
|
+
description: What the app needed, e.g. "read Steam reviews"
|
|
39
|
+
detail:
|
|
40
|
+
type: string
|
|
41
|
+
maxLength: 2000
|
|
42
|
+
method:
|
|
43
|
+
type: string
|
|
44
|
+
maxLength: 100
|
|
45
|
+
description: The SDK method name you wished existed
|
|
46
|
+
appId:
|
|
47
|
+
type: string
|
|
48
|
+
format: uuid
|
|
49
|
+
description: The app id from summer_app_create or summer_app_list
|
|
50
|
+
required:
|
|
51
|
+
- capability
|
|
52
|
+
additionalProperties: false
|
|
53
|
+
authority:
|
|
54
|
+
filesystem: false
|
|
55
|
+
editor_mutation: false
|
|
56
|
+
network: true
|
|
57
|
+
credentials: false
|
|
58
|
+
publish: false
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
id: tool/app-screenshot
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: See a Summer App without the person - a headless, read-only render (PNG) with its console, errors, refused calls and declared page.
|
|
5
|
+
use_when:
|
|
6
|
+
- right after every apps.publish, to check the app renders with real data
|
|
7
|
+
- '"does my app look right on a phone / in dark mode"'
|
|
8
|
+
- finding why an app shows nothing (SDK not connected, script errors)
|
|
9
|
+
do_not_use_when:
|
|
10
|
+
- "testing writes, sends or paid calls: they are refused in screenshots; they work in Studio"
|
|
11
|
+
facets:
|
|
12
|
+
lifecycle:
|
|
13
|
+
- build
|
|
14
|
+
domains:
|
|
15
|
+
- tools
|
|
16
|
+
- ui
|
|
17
|
+
compatibility:
|
|
18
|
+
engine: ">=4.6"
|
|
19
|
+
related:
|
|
20
|
+
skills:
|
|
21
|
+
- skill/summer-apps
|
|
22
|
+
- skill/summer-apps-design
|
|
23
|
+
source: official
|
|
24
|
+
license: MIT
|
|
25
|
+
status: preview
|
|
26
|
+
aliases:
|
|
27
|
+
- summer_app_screenshot
|
|
28
|
+
implementation:
|
|
29
|
+
module: src/mcp/tools/app-tools.ts
|
|
30
|
+
export: registerAppTools
|
|
31
|
+
surfaces:
|
|
32
|
+
mcp:
|
|
33
|
+
tool_name: summer_app_screenshot
|
|
34
|
+
remote: true
|
|
35
|
+
input_schema:
|
|
36
|
+
type: object
|
|
37
|
+
properties:
|
|
38
|
+
appId:
|
|
39
|
+
type: string
|
|
40
|
+
format: uuid
|
|
41
|
+
description: The app id from summer_app_create or summer_app_list
|
|
42
|
+
version:
|
|
43
|
+
type: integer
|
|
44
|
+
exclusiveMinimum: 0
|
|
45
|
+
description: "A published version. Default: the current one"
|
|
46
|
+
width:
|
|
47
|
+
type: integer
|
|
48
|
+
minimum: 320
|
|
49
|
+
maximum: 1920
|
|
50
|
+
default: 1280
|
|
51
|
+
description: "Viewport width in px: 390 for a phone"
|
|
52
|
+
height:
|
|
53
|
+
type: integer
|
|
54
|
+
minimum: 320
|
|
55
|
+
maximum: 1600
|
|
56
|
+
default: 800
|
|
57
|
+
theme:
|
|
58
|
+
type: string
|
|
59
|
+
enum:
|
|
60
|
+
- light
|
|
61
|
+
- dark
|
|
62
|
+
default: light
|
|
63
|
+
fullPage:
|
|
64
|
+
type: boolean
|
|
65
|
+
default: false
|
|
66
|
+
description: Capture the whole scroll height (up to 4000 px)
|
|
67
|
+
params:
|
|
68
|
+
type: object
|
|
69
|
+
additionalProperties:
|
|
70
|
+
type: string
|
|
71
|
+
maxLength: 500
|
|
72
|
+
description: Launch params, as in /studio/apps/<id>?key=value
|
|
73
|
+
steps:
|
|
74
|
+
type: array
|
|
75
|
+
maxItems: 5
|
|
76
|
+
items:
|
|
77
|
+
type: object
|
|
78
|
+
properties:
|
|
79
|
+
click:
|
|
80
|
+
type: string
|
|
81
|
+
maxLength: 300
|
|
82
|
+
press:
|
|
83
|
+
type: string
|
|
84
|
+
maxLength: 40
|
|
85
|
+
wait:
|
|
86
|
+
type: integer
|
|
87
|
+
minimum: 0
|
|
88
|
+
maximum: 3000
|
|
89
|
+
additionalProperties: false
|
|
90
|
+
description: "Before the capture, in order: click a CSS selector in the app (\">>>\" reaches inside kit components), press a declared action id, or wait ms. Use it to see a dialog or a second state"
|
|
91
|
+
out:
|
|
92
|
+
type: string
|
|
93
|
+
minLength: 1
|
|
94
|
+
description: Also save the PNG to this local path
|
|
95
|
+
required:
|
|
96
|
+
- appId
|
|
97
|
+
additionalProperties: false
|
|
98
|
+
authority:
|
|
99
|
+
filesystem: true
|
|
100
|
+
editor_mutation: false
|
|
101
|
+
network: true
|
|
102
|
+
credentials: false
|
|
103
|
+
publish: false
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
id: tool/app-tools
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: List the agent tools a Summer App declares.
|
|
5
|
+
use_when:
|
|
6
|
+
- before calling app logic with apps.call
|
|
7
|
+
- '"what can our balance app do for me"'
|
|
8
|
+
facets:
|
|
9
|
+
lifecycle:
|
|
10
|
+
- build
|
|
11
|
+
domains:
|
|
12
|
+
- tools
|
|
13
|
+
- ui
|
|
14
|
+
compatibility:
|
|
15
|
+
engine: ">=4.6"
|
|
16
|
+
related:
|
|
17
|
+
skills:
|
|
18
|
+
- skill/summer-apps
|
|
19
|
+
source: official
|
|
20
|
+
license: MIT
|
|
21
|
+
status: preview
|
|
22
|
+
aliases:
|
|
23
|
+
- summer_app_tools
|
|
24
|
+
implementation:
|
|
25
|
+
module: src/mcp/tools/app-tools.ts
|
|
26
|
+
export: registerAppTools
|
|
27
|
+
surfaces:
|
|
28
|
+
mcp:
|
|
29
|
+
tool_name: summer_app_tools
|
|
30
|
+
remote: true
|
|
31
|
+
input_schema:
|
|
32
|
+
type: object
|
|
33
|
+
properties:
|
|
34
|
+
appId:
|
|
35
|
+
type: string
|
|
36
|
+
format: uuid
|
|
37
|
+
description: The app id from summer_app_create or summer_app_list
|
|
38
|
+
required:
|
|
39
|
+
- appId
|
|
40
|
+
additionalProperties: false
|
|
41
|
+
authority:
|
|
42
|
+
filesystem: false
|
|
43
|
+
editor_mutation: false
|
|
44
|
+
network: true
|
|
45
|
+
credentials: false
|
|
46
|
+
publish: false
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
id: tool/app-update
|
|
2
|
+
kind: tool
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
summary: Rename a Summer App, move it to a folder, or keep, archive or restore it.
|
|
5
|
+
use_when:
|
|
6
|
+
- archiving a scratch app you made that the person did not keep
|
|
7
|
+
- '"rename the loot app to Drop tables"'
|
|
8
|
+
- '"keep this app" (status kept)'
|
|
9
|
+
facets:
|
|
10
|
+
lifecycle:
|
|
11
|
+
- build
|
|
12
|
+
domains:
|
|
13
|
+
- tools
|
|
14
|
+
- ui
|
|
15
|
+
compatibility:
|
|
16
|
+
engine: ">=4.6"
|
|
17
|
+
related:
|
|
18
|
+
skills:
|
|
19
|
+
- skill/summer-apps
|
|
20
|
+
source: official
|
|
21
|
+
license: MIT
|
|
22
|
+
status: preview
|
|
23
|
+
aliases:
|
|
24
|
+
- summer_app_update
|
|
25
|
+
implementation:
|
|
26
|
+
module: src/mcp/tools/app-tools.ts
|
|
27
|
+
export: registerAppTools
|
|
28
|
+
surfaces:
|
|
29
|
+
mcp:
|
|
30
|
+
tool_name: summer_app_update
|
|
31
|
+
remote: true
|
|
32
|
+
input_schema:
|
|
33
|
+
type: object
|
|
34
|
+
properties:
|
|
35
|
+
appId:
|
|
36
|
+
type: string
|
|
37
|
+
format: uuid
|
|
38
|
+
description: The app id from summer_app_create or summer_app_list
|
|
39
|
+
name:
|
|
40
|
+
type: string
|
|
41
|
+
minLength: 1
|
|
42
|
+
maxLength: 80
|
|
43
|
+
purpose:
|
|
44
|
+
type: string
|
|
45
|
+
maxLength: 280
|
|
46
|
+
status:
|
|
47
|
+
type: string
|
|
48
|
+
enum:
|
|
49
|
+
- scratch
|
|
50
|
+
- kept
|
|
51
|
+
- archived
|
|
52
|
+
description: "kept: the team keeps it. archived: hidden from the app list (restore with scratch or kept)"
|
|
53
|
+
folder:
|
|
54
|
+
type:
|
|
55
|
+
- string
|
|
56
|
+
- "null"
|
|
57
|
+
minLength: 1
|
|
58
|
+
maxLength: 80
|
|
59
|
+
description: null takes it out of its folder
|
|
60
|
+
required:
|
|
61
|
+
- appId
|
|
62
|
+
additionalProperties: false
|
|
63
|
+
authority:
|
|
64
|
+
filesystem: false
|
|
65
|
+
editor_mutation: false
|
|
66
|
+
network: true
|
|
67
|
+
credentials: false
|
|
68
|
+
publish: false
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# summer_attach_to_surface
|
|
2
|
+
|
|
3
|
+
Mount a piece on a surface: turn it so its given LOCAL backAxis faces into the surface (opposite the hit normal) with its upAxis kept toward worldUp, then seat its measured back face (the extreme of its visible bounds along backAxis, not its origin) at standoff from the surface. Pipes, gutters, lamps, AC units, signs, fire escapes. Place the piece near its mount first (summer_instantiate_scene with position); this tool turns it and pushes it onto the surface.
|
|
4
|
+
|
|
5
|
+
Find the surface with surface (a node: the ray runs from the subject's origin to the nearest point of that node's bounds) or ray {origin, direction} (both: the ray, and hits on other nodes are skipped). The ray is physics first; if physics finds nothing it falls back to visual AABBs and says so (the normal is then an AABB face normal). Get backAxis from summer_inspect_asset (the piece's back plane normal), not from a guess.
|
|
6
|
+
|
|
7
|
+
placeAt "current" (default): the piece keeps its height and its place along the surface and only moves along the surface normal. placeAt "hit": it also slides so the centre of its back face lands on the ray hit point.
|
|
8
|
+
|
|
9
|
+
Steps (existing ops): a read-only probe (RunSceneScript) reads the piece's bounds in its own axes and casts the ray; one SetProp turns the piece and puts its back face 5 cm in front of the planned seat; SnapToSurface sweeps it along -normal (at most standoff + 0.3) and seats it at standoff (its own physics/visual_aabb evidence). Before saving, the seat is checked:
|
|
10
|
+
- with surface: the seat must be on that node (or inside it), else it is refused;
|
|
11
|
+
- with a ray only: a seat on another node is refused unless it lies on the hit plane (a coplanar neighbour module, warned);
|
|
12
|
+
- the piece must end within maxMove (default 2) of where it started; a longer planned move is refused before anything changes, and so is (with placeAt "current") a ray hit farther than maxMove along the surface from the piece (hit_far_from_piece: aim at the piece, or pass placeAt "hit").
|
|
13
|
+
A refused or failed seat puts the piece back where it started (restored: true), saves nothing, and names the cause: seated_on, the seat's failure_reason, blockers {overlapping, overlaps, first_contact} and a next_step.
|
|
14
|
+
|
|
15
|
+
Returns {seated_on, final_gap (collider gap from SnapToSurface), back_face_gap (visible back face to the hit plane), moved_by, surface_hit, orientation, back_face_offset, seat {evidence, supportPath, finalGap, gapErrorBound, initiallyOverlapping, ...}, saved, warnings}. A warning visible_back_X_into_surface means the piece's collider sits behind its visible back: add X to standoff.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# summer_batch
|
|
2
|
+
|
|
3
|
+
Execute multiple operations (a multi-node build) in a single call. Each op is forwarded to the engine VERBATIM: this is also how you reach engine ops without a dedicated tool.
|
|
4
|
+
|
|
5
|
+
UNDO: when nothing in the list forces a split (see SPLITS), the whole batch is ONE undo step (one Ctrl+Z). Single-only ops split the list into sequential requests, and EACH chunk is its own undo step (the receipt shows the chunks).
|
|
6
|
+
|
|
7
|
+
Ops use the individual tools' format:
|
|
8
|
+
- {"op": "AddNode", "parent": "/", "type": "MeshInstance3D", "name": "Floor"}
|
|
9
|
+
- {"op": "SetProp", "path": "Floor", "key": "position", "value": "Vector3(0, -1, 0)"}
|
|
10
|
+
- {"op": "SetProp", "path": "Floor", "key": "mesh", "value": "PlaneMesh"}
|
|
11
|
+
- {"op": "SetResourceProperty", "nodePath": "Floor", "resourceProperty": "mesh", "subProperty": "size", "value": "Vector2(20, 20)"}
|
|
12
|
+
|
|
13
|
+
SPLITS AND SAVE: scenePath selects every mutation target. Send OpenScene (a UI action) separately, never mixed with scene mutations. The tool appends one final SaveScene when the batch mutates a scene; a SaveScene you supply must appear exactly once, as the final op. The engine requires SaveScene, InstantiateScene, ReplaceNode, SimulateInput, the runtime reads (GetRuntimeSceneTree/GetRuntimeNode) and the Run*/Import* ops to travel alone, so the tool splits the list around them; if a later chunk fails, the receipt names the earlier ops that already applied.
|
|
14
|
+
|
|
15
|
+
RAW RUNTIME OPS (structured failure_reason passes through verbatim):
|
|
16
|
+
- RunVerification: a hidden, disposable game instance runs a GDScript probe and dies, never touching the editor: {"op": "RunVerification", "probe_source": "...", "max_seconds": 20} returns {ok, results, frames, out_dir}. Probe API: report(name, value) / save_frame(name) / press(action) / key(keycode) / finish(); save_frame() without a name is a script error. Mount scenes deferred (add_child.call_deferred) or the capture can be black; summer_get_agent_playbook has the probe rules.
|
|
17
|
+
- SimulateInput: inject an action/key/mouse/axis into the RUNNING game (summer_play first), sent ALONE: {"op": "SimulateInput", "type": "action", "action": "jump", "pressed": true}. failure_reason "not_running" = start the game first; "unsupported" = the game build predates the handler: use RunVerification or ask the user.
|
|
18
|
+
|
|
19
|
+
REFUSED: a raw ReplaceNode with scene (it saves the old scene reference; use summer_replace_node) and a raw ConnectSignal (no CONNECT_PERSIST, so the file never holds it; use summer_connect_signal).
|
|
20
|
+
|
|
21
|
+
REPARENTNODE KEEPS ITS SUBTREE AND IS VERIFIED: the engine op re-owns only the moved node and drops its descendants from the saved file, so the tool saves, sends each ReparentNode alone plus an in-place ReparentNode per scene-owned descendant, then reads the saved .tscn back: persisted:true / verified:true only when every moved node and descendant is at its new path, else failure_reason not_persisted. A move onto a parent with a same-named child is refused (name_collision). scenePath must be a .tscn; Undo cannot share the batch.
|
|
22
|
+
|
|
23
|
+
PLACED INSTANCES: an InstantiateScene op may carry position, rotation_degrees, scale ([x, y, z] or "Vector3(...)") or transform ("Transform3D(...)"), set on the created node; one op per piece. Each InstantiateScene is its own request and the transforms of a run follow together (up to 200 per request), so N pieces plus the save cost about N + 2 requests and undo steps. Later ops (SetProp, SnapToSurface, the save) see the pieces placed; if one fails, the pieces before it still get their transforms.
|
|
24
|
+
|
|
25
|
+
RECEIPTS: receipt "summary" returns only counts, failures [{index, op, error}] (index into your ops), created node paths and renames, under 5 KB with any cut declared. Use it for any batch over a few ops: a large full receipt overflows the tool-output limit.
|
|
26
|
+
|
|
27
|
+
scenePersistence.saved means the SaveScene ran, not what the file holds; verified:true is set only where the tool read the file back.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# summer_camera_bookmark
|
|
2
|
+
|
|
3
|
+
Save, list, or delete named camera viewpoints for the edited 3D scene. A bookmark is a fixed pose (position, look_at, fov) stored IN THE PROJECT at res://.summer/camera_bookmarks.json, so it survives sessions and machines — the scene file is never touched.
|
|
4
|
+
|
|
5
|
+
WHY: screenshots taken from a preset framing re-fit the scene bounds every time, so a before/after pair shifts whenever anything moves; a bookmark is the same pose every time, which makes before/after comparison real. Save once, then reuse on every capture: summer_screenshot target:"scene" framing:"bookmark" bookmark_name:"<name>" (add marks:true for numbered labels mapped to node paths).
|
|
6
|
+
|
|
7
|
+
action:
|
|
8
|
+
"save" — name (1-64 of A-Z a-z 0-9 _ -) plus EITHER position + look_at as Godot literals ("Vector3(x, y, z)", optional fov, default 60) OR neither: omit both to capture the CURRENT editor 3D viewport camera (result pose_source: "editor_viewport" vs "explicit"; overwritten says whether a same-named bookmark was replaced).
|
|
9
|
+
"list" — every saved bookmark (names sorted, poses, created timestamps, file path).
|
|
10
|
+
"delete" — remove one by name (result lists the remaining names).
|
|
11
|
+
|
|
12
|
+
Failures are structured: bad_args (name grammar, half-given pose, fov outside 1..179, position == look_at), no_editor_camera (no pose given and no 3D viewport camera to capture), not_found (+ available names), io_failed (file unreadable/unwritable; a malformed file is reported, never overwritten). Edit-time only — no running game needed. If this engine build predates the bookmark ops, the result is a structured engine_lacks_op failure (nothing is sent) naming the fallback.
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
# summer_capture_gameplay
|
|
2
|
+
|
|
3
|
+
Capture real gameplay frames without a running editor: starts the game in Summer Engine's offscreen verify instance (--summer-offscreen: a real renderer, a window parked offscreen with no focus, never on screen), lets it run waitSeconds, runs steps, and saves PNG frames of what the game draws, HUD included. Use for store screenshots (1920x1080 landscape or 1080x1920 portrait). The main scene is often a title menu: pass the game's own flags in args (after "--", e.g. ["--autostart"]), a gameplay scene, or steps that play like a player: [{press:"Play"}, {wait:3000}, {key:"Space"}, {action:"jump"}, {click:[960,540]}, {drag:{from:[400,800],to:[1400,800]}}, {shot:true}]. With a shot step, only shot steps save frames; without one, frames are saved after the steps. A step that cannot run (no such button, key or action) becomes a warning. With an editor open, summer_screenshot target game also works. Returns each frame's path, width and height; look at them before using them.
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
id: tool/capture-gameplay
|
|
2
2
|
kind: tool
|
|
3
|
-
version: 1.0.
|
|
3
|
+
version: 1.0.1
|
|
4
4
|
summary: Capture real gameplay PNGs (HUD included) offscreen without a running editor; game flags and player steps (press, key, click) get past the title screen.
|
|
5
5
|
use_when:
|
|
6
6
|
- '"take gameplay screenshots for my store page"'
|
|
7
7
|
- '"I need screenshots but the editor is not open"'
|
|
8
8
|
- '"capture a 1920x1080 frame of my game"'
|
|
9
|
-
- collecting real gameplay screenshots for
|
|
9
|
+
- collecting real gameplay screenshots for store.set_art desktop.screenshots or mobile.screenshots
|
|
10
10
|
- every capture shows the title screen — pass the game's flags in args or steps like press Play
|
|
11
11
|
do_not_use_when:
|
|
12
12
|
- the editor is open and the game is running — tool/screenshot with target game shows the live game
|
|
@@ -23,7 +23,7 @@ compatibility:
|
|
|
23
23
|
engine: ">=4.6"
|
|
24
24
|
source: official
|
|
25
25
|
license: MIT
|
|
26
|
-
status:
|
|
26
|
+
status: stable
|
|
27
27
|
aliases:
|
|
28
28
|
- summer_capture_gameplay
|
|
29
29
|
implementation:
|