summer-engine 2.8.1 → 3.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 +27 -7
- package/.claude-plugin/plugin.json +99 -83
- package/.codex-plugin/plugin.json +112 -82
- package/.cursor-plugin/plugin.json +119 -83
- package/.factory-plugin/plugin.json +100 -3
- package/.mcp.json +6 -1
- package/.opencode/INSTALL.md +7 -4
- package/.opencode/plugins/summer.js +31 -18
- package/AGENTS.md +107 -34
- package/CHANGELOG.md +134 -41
- package/CLAUDE.md +4 -2
- package/GEMINI.md +7 -53
- package/NOTICE +31 -0
- package/README.md +159 -391
- package/assets/api-docs.json.gz +0 -0
- package/assets/autopilot/README.md +20 -6
- package/assets/autopilot/autopilot.gd +80 -26
- package/assets/autopilot/run.sh +132 -7
- package/assets/navigation/web-routes.json +719 -0
- package/commands/gameskill.md +10 -108
- package/commands/summer.md +72 -4
- package/dist/bin/summer.js +6 -87
- package/dist/cli/banner.d.ts +1 -0
- package/dist/cli/banner.js +33 -0
- package/dist/{commands → cli/commands}/config.js +1 -1
- package/dist/cli/commands/create.d.ts +30 -0
- package/dist/cli/commands/create.js +212 -0
- package/dist/{commands → cli/commands}/debug.js +2 -2
- package/dist/cli/commands/doctor.d.ts +2 -0
- package/dist/cli/commands/doctor.js +18 -0
- package/dist/cli/commands/events.d.ts +57 -0
- package/dist/cli/commands/events.js +158 -0
- package/dist/cli/commands/install.d.ts +50 -0
- package/dist/cli/commands/install.js +447 -0
- package/dist/cli/commands/list.js +72 -0
- package/dist/{commands → cli/commands}/login.js +33 -17
- package/dist/{commands → cli/commands}/logout.d.ts +1 -0
- package/dist/cli/commands/logout.js +19 -0
- package/dist/{commands → cli/commands}/memory.d.ts +1 -8
- package/dist/{commands → cli/commands}/memory.js +20 -11
- package/dist/cli/commands/open.d.ts +45 -0
- package/dist/cli/commands/open.js +216 -0
- package/dist/{commands → cli/commands}/plan.js +2 -2
- package/dist/{commands → cli/commands}/publish.js +1 -1
- package/dist/{commands → cli/commands}/releases.js +1 -1
- package/dist/cli/commands/run.d.ts +19 -0
- package/dist/cli/commands/run.js +255 -0
- package/dist/{commands → cli/commands}/setup.js +43 -89
- package/dist/{commands → cli/commands}/skills.js +85 -222
- package/dist/{commands → cli/commands}/status.d.ts +1 -0
- package/dist/cli/commands/status.js +62 -0
- package/dist/cli/commands/tool.d.ts +11 -0
- package/dist/cli/commands/tool.js +121 -0
- package/dist/cli/index.d.ts +6 -0
- package/dist/cli/index.js +89 -0
- package/dist/cli/root-action.d.ts +7 -0
- package/dist/cli/root-action.js +15 -0
- package/dist/{lib → core}/api-client.d.ts +106 -15
- package/dist/{lib → core}/api-client.js +267 -75
- package/dist/{lib → core}/async-op-lifecycle.d.ts +3 -4
- package/dist/{lib → core}/async-op-lifecycle.js +3 -4
- package/dist/{lib → core}/auth.d.ts +14 -6
- package/dist/{lib → core}/auth.js +56 -40
- package/dist/core/capabilities/agent-playbook.d.ts +20 -0
- package/dist/core/capabilities/agent-playbook.js +218 -0
- package/dist/core/capabilities/api-docs.d.ts +36 -0
- package/dist/core/capabilities/api-docs.js +118 -0
- package/dist/core/capabilities/asset-import.d.ts +49 -0
- package/dist/core/capabilities/asset-import.js +134 -0
- package/dist/core/capabilities/camera-view.d.ts +98 -0
- package/dist/core/capabilities/camera-view.js +222 -0
- package/dist/core/capabilities/capture.d.ts +63 -0
- package/dist/core/capabilities/capture.js +67 -0
- package/dist/core/capabilities/console-read.d.ts +17 -0
- package/dist/core/capabilities/console-read.js +21 -0
- package/dist/{lib → core/capabilities}/creator.d.ts +1 -29
- package/dist/{lib → core/capabilities}/creator.js +14 -33
- package/dist/{lib → core/capabilities}/debug-report.d.ts +1 -1
- package/dist/{lib → core/capabilities}/debug-report.js +12 -31
- package/dist/{commands → core/capabilities}/doctor.d.ts +7 -2
- package/dist/{commands → core/capabilities}/doctor.js +47 -73
- package/dist/core/capabilities/engine-fallbacks.d.ts +26 -0
- package/dist/core/capabilities/engine-fallbacks.js +36 -0
- package/dist/core/capabilities/engine-ops.d.ts +33 -0
- package/dist/core/capabilities/engine-ops.js +145 -0
- package/dist/core/capabilities/engine-receipt.d.ts +53 -0
- package/dist/core/capabilities/engine-receipt.js +134 -0
- package/dist/core/capabilities/events.d.ts +200 -0
- package/dist/core/capabilities/events.js +383 -0
- package/dist/core/capabilities/fabricate-mesh.d.ts +111 -0
- package/dist/core/capabilities/fabricate-mesh.js +165 -0
- package/dist/core/capabilities/frame-quality.d.ts +71 -0
- package/dist/core/capabilities/frame-quality.js +449 -0
- package/dist/core/capabilities/game-task-plan.d.ts +66 -0
- package/dist/{lib → core/capabilities}/game-task-plan.js +59 -8
- package/dist/core/capabilities/hdri-import.d.ts +90 -0
- package/dist/core/capabilities/hdri-import.js +250 -0
- package/dist/core/capabilities/image-generation.d.ts +24 -0
- package/dist/core/capabilities/image-generation.js +22 -0
- package/dist/core/capabilities/navigation/open.d.ts +156 -0
- package/dist/core/capabilities/navigation/open.js +567 -0
- package/dist/core/capabilities/navigation/render-product-map.d.ts +1 -0
- package/dist/core/capabilities/navigation/render-product-map.js +84 -0
- package/dist/core/capabilities/navigation/targets.d.ts +87 -0
- package/dist/core/capabilities/navigation/targets.js +250 -0
- package/dist/core/capabilities/play-determinism.d.ts +35 -0
- package/dist/core/capabilities/play-determinism.js +86 -0
- package/dist/core/capabilities/project-context.d.ts +114 -0
- package/dist/core/capabilities/project-context.js +249 -0
- package/dist/core/capabilities/runtime-control.d.ts +540 -0
- package/dist/core/capabilities/runtime-control.js +1011 -0
- package/dist/core/capabilities/scene-kind.d.ts +19 -0
- package/dist/core/capabilities/scene-kind.js +137 -0
- package/dist/core/capabilities/scene-script.d.ts +38 -0
- package/dist/core/capabilities/scene-script.js +45 -0
- package/dist/core/capabilities/tool-dispatch.d.ts +42 -0
- package/dist/core/capabilities/tool-dispatch.js +1490 -0
- package/dist/core/capabilities/ui-control.d.ts +179 -0
- package/dist/core/capabilities/ui-control.js +423 -0
- package/dist/core/capabilities/variant-types.d.ts +22 -0
- package/dist/core/capabilities/variant-types.js +101 -0
- package/dist/core/capability-skew.d.ts +205 -0
- package/dist/core/capability-skew.js +386 -0
- package/dist/{lib → core}/config.d.ts +11 -1
- package/dist/{lib → core}/config.js +13 -2
- package/dist/core/embeddings.d.ts +78 -0
- package/dist/core/embeddings.js +166 -0
- package/dist/core/engine-install.d.ts +105 -0
- package/dist/core/engine-install.js +190 -0
- package/dist/core/engine.d.ts +94 -0
- package/dist/{lib → core}/engine.js +74 -28
- package/dist/core/feedback/client.d.ts +88 -0
- package/dist/core/feedback/client.js +182 -0
- package/dist/{lib → core}/format.d.ts +0 -1
- package/dist/{lib → core}/format.js +1 -1
- package/dist/core/headless/connection.d.ts +86 -0
- package/dist/core/headless/connection.js +97 -0
- package/dist/core/headless/editor-connection.d.ts +26 -0
- package/dist/core/headless/editor-connection.js +81 -0
- package/dist/core/headless/mcp-routing.d.ts +38 -0
- package/dist/core/headless/mcp-routing.js +83 -0
- package/dist/core/headless/registry.d.ts +91 -0
- package/dist/core/headless/registry.js +226 -0
- package/dist/core/headless/resolve.d.ts +46 -0
- package/dist/core/headless/resolve.js +75 -0
- package/dist/core/headless/spawn.d.ts +46 -0
- package/dist/core/headless/spawn.js +205 -0
- package/dist/core/headless/worker-connection.d.ts +96 -0
- package/dist/core/headless/worker-connection.js +353 -0
- package/dist/core/headless/worker-engine-client.d.ts +58 -0
- package/dist/core/headless/worker-engine-client.js +246 -0
- package/dist/core/launch-posture.d.ts +170 -0
- package/dist/core/launch-posture.js +317 -0
- package/dist/core/library-read.d.ts +73 -0
- package/dist/core/library-read.js +279 -0
- package/dist/core/library-search.d.ts +143 -0
- package/dist/core/library-search.js +301 -0
- package/dist/{lib → core}/log-filters.js +4 -2
- package/dist/{lib → core}/mcp-log.js +2 -17
- package/dist/core/package-root.d.ts +9 -0
- package/dist/core/package-root.js +11 -0
- package/dist/core/redact.d.ts +20 -0
- package/dist/core/redact.js +64 -0
- package/dist/core/registry-search.d.ts +167 -0
- package/dist/core/registry-search.js +358 -0
- package/dist/core/skills-registry.d.ts +47 -0
- package/dist/core/skills-registry.js +83 -0
- package/dist/{lib → core}/store.js +11 -7
- package/dist/{lib → core}/summer-compatibility.js +3 -3
- package/dist/{lib → core}/telemetry.js +5 -2
- package/dist/core/templates.d.ts +98 -0
- package/dist/core/templates.js +241 -0
- package/dist/core/tool-errors.d.ts +30 -0
- package/dist/core/tool-errors.js +40 -0
- package/dist/core/trajectory.d.ts +80 -0
- package/dist/core/trajectory.js +307 -0
- package/dist/core/util/http.d.ts +13 -0
- package/dist/core/util/http.js +28 -0
- package/dist/core/util/json.d.ts +12 -0
- package/dist/core/util/json.js +21 -0
- package/dist/core/util/process.d.ts +3 -0
- package/dist/core/util/process.js +13 -0
- package/dist/core/util/sleep.d.ts +1 -0
- package/dist/core/util/sleep.js +3 -0
- package/dist/core/version.d.ts +3 -0
- package/dist/core/version.js +5 -0
- package/dist/{lib → installer}/agent-config.d.ts +20 -1
- package/dist/{lib → installer}/agent-config.js +148 -23
- package/dist/installer/legacy-skills.d.ts +26 -0
- package/dist/installer/legacy-skills.js +53 -0
- package/dist/installer/setup.d.ts +76 -0
- package/dist/installer/setup.js +146 -0
- package/dist/installer/skill-locations.d.ts +45 -0
- package/dist/installer/skill-locations.js +170 -0
- package/dist/installer/version-check.d.ts +174 -0
- package/dist/{lib → installer}/version-check.js +173 -42
- package/dist/{lib/mcp-boot-notice.d.ts → mcp/boot-notice.d.ts} +1 -1
- package/dist/{commands/mcp.js → mcp/command.js} +18 -6
- package/dist/mcp/server.d.ts +23 -3
- package/dist/mcp/server.js +122 -28
- package/dist/mcp/tools/asset-tools.js +62 -142
- package/dist/mcp/tools/creator-tools.js +5 -23
- package/dist/mcp/tools/debug-tools.js +61 -18
- package/dist/mcp/tools/event-tools.d.ts +14 -0
- package/dist/mcp/tools/event-tools.js +41 -0
- package/dist/mcp/tools/fabricate-tools.d.ts +2 -0
- package/dist/mcp/tools/fabricate-tools.js +28 -0
- package/dist/mcp/tools/feedback-tools.d.ts +77 -0
- package/dist/mcp/tools/feedback-tools.js +88 -0
- package/dist/mcp/tools/file-tools.js +6 -53
- package/dist/mcp/tools/generate-tools.js +37 -63
- package/dist/mcp/tools/library-tools.d.ts +11 -0
- package/dist/mcp/tools/library-tools.js +42 -0
- package/dist/mcp/tools/navigation-tools.d.ts +7 -0
- package/dist/mcp/tools/navigation-tools.js +37 -0
- package/dist/mcp/tools/perception-tools.d.ts +20 -0
- package/dist/mcp/tools/perception-tools.js +146 -0
- package/dist/mcp/tools/project-tools.d.ts +14 -0
- package/dist/mcp/tools/project-tools.js +72 -281
- package/dist/mcp/tools/runtime-tools.d.ts +2 -0
- package/dist/mcp/tools/runtime-tools.js +92 -0
- package/dist/mcp/tools/scene-tools.d.ts +3 -0
- package/dist/mcp/tools/scene-tools.js +68 -119
- package/dist/mcp/tools/script-tools.d.ts +3 -0
- package/dist/mcp/tools/script-tools.js +118 -0
- package/dist/mcp/tools/spatial-tools.d.ts +2 -0
- package/dist/mcp/tools/spatial-tools.js +485 -0
- package/dist/mcp/tools/text-json.d.ts +8 -0
- package/dist/mcp/tools/text-json.js +12 -0
- package/dist/mcp/tools/{cloud-tools.d.ts → ui-tools.d.ts} +1 -1
- package/dist/mcp/tools/ui-tools.js +82 -0
- package/dist/mcp/tools/visual-tools.d.ts +2 -7
- package/dist/mcp/tools/visual-tools.js +383 -101
- package/dist/mcp/tools/with-engine.d.ts +9 -15
- package/dist/mcp/tools/with-engine.js +60 -96
- package/dist/project-memory/project-manifest.d.ts +36 -0
- package/dist/project-memory/project-manifest.js +50 -0
- package/dist/project-memory/project-memory.d.ts +57 -0
- package/dist/{lib → project-memory}/project-memory.js +46 -0
- package/gemini-extension.json +103 -2
- package/hooks/hooks-cursor.json +2 -2
- package/hooks/hooks.json +2 -1
- package/hooks/pre-commit-doctor.sh +45 -39
- package/hooks/run-hook.cmd +30 -23
- package/hooks/run-hook.sh +20 -0
- package/hooks/session-start.sh +18 -7
- package/integrations/README.md +70 -0
- package/integrations/claude/README.md +19 -0
- package/integrations/claude/manifest-target.json +16 -0
- package/integrations/cline/README.md +13 -0
- package/integrations/cline/manifest-target.json +3 -0
- package/integrations/codex/README.md +15 -0
- package/integrations/codex/manifest-target.json +5 -0
- package/integrations/cursor/README.md +16 -0
- package/integrations/cursor/manifest-target.json +5 -0
- package/integrations/factory/README.md +26 -0
- package/integrations/factory/manifest-target.json +5 -0
- package/integrations/gemini/README.md +26 -0
- package/integrations/gemini/manifest-target.json +5 -0
- package/integrations/github-copilot/README.md +12 -0
- package/integrations/github-copilot/manifest-target.json +3 -0
- package/integrations/kilo-code/README.md +16 -0
- package/integrations/kilo-code/manifest-target.json +3 -0
- package/integrations/lm-studio/README.md +12 -0
- package/integrations/lm-studio/manifest-target.json +3 -0
- package/integrations/opencode/README.md +15 -0
- package/integrations/opencode/manifest-target.json +3 -0
- package/integrations/roo-code/README.md +13 -0
- package/integrations/roo-code/manifest-target.json +3 -0
- package/integrations/vscode-copilot/README.md +12 -0
- package/integrations/vscode-copilot/manifest-target.json +3 -0
- package/integrations/windsurf/README.md +13 -0
- package/integrations/windsurf/manifest-target.json +3 -0
- package/library/references/collaborative-protocol/resource.yaml +24 -0
- package/library/references/gd-style/resource.yaml +24 -0
- package/{references → library/references/godot-version}/godot-version.md +6 -6
- package/library/references/godot-version/resource.yaml +22 -0
- package/library/references/headless-routing/headless-routing.md +46 -0
- package/library/references/headless-routing/resource.yaml +24 -0
- package/library/references/mcp-fresh-chat-playbook/mcp-fresh-chat-playbook.md +49 -0
- package/library/references/mcp-fresh-chat-playbook/resource.yaml +23 -0
- package/library/references/mcp-tools-reference/mcp-tools-reference.md +271 -0
- package/library/references/mcp-tools-reference/resource.yaml +17 -0
- package/library/references/product-map/product-map.md +103 -0
- package/library/references/product-map/resource.yaml +33 -0
- package/{references → library/references/public-surface-language}/public-surface-language.md +5 -7
- package/library/references/public-surface-language/resource.yaml +17 -0
- package/library/references/summer-folder/resource.yaml +20 -0
- package/{references → library/references/summer-folder}/summer-folder.md +22 -21
- package/{skills/rendering-and-lighting → library/skills}/3d-lighting/SKILL.md +15 -11
- package/library/skills/3d-lighting/resource.yaml +27 -0
- package/{skills/audio → library/skills}/adaptive-music/SKILL.md +1 -1
- package/library/skills/adaptive-music/resource.yaml +28 -0
- package/library/skills/agent-playtesting/SKILL.md +148 -0
- package/library/skills/agent-playtesting/resource.yaml +52 -0
- package/library/skills/ambient-bed/resource.yaml +24 -0
- package/{skills/video → library/skills}/animated-loop/SKILL.md +1 -1
- package/library/skills/animated-loop/resource.yaml +27 -0
- package/{skills/animation → library/skills}/animation-tree/SKILL.md +29 -14
- package/library/skills/animation-tree/resource.yaml +33 -0
- package/{skills/rendering-and-lighting → library/skills}/art-direction/SKILL.md +3 -3
- package/library/skills/art-direction/resource.yaml +29 -0
- package/{skills/asset-pipeline → library/skills}/asset-strategy/SKILL.md +44 -44
- package/library/skills/asset-strategy/resource.yaml +63 -0
- package/{skills/audio → library/skills}/audio-direction/SKILL.md +7 -7
- package/library/skills/audio-direction/resource.yaml +32 -0
- package/library/skills/auto-fire-targeting/resource.yaml +22 -0
- package/{skills/scene-and-project → library/skills}/brainstorm-game/SKILL.md +8 -8
- package/library/skills/brainstorm-game/resource.yaml +30 -0
- package/{skills/workflow → library/skills}/brainstorming/SKILL.md +2 -22
- package/library/skills/brainstorming/resource.yaml +23 -0
- package/{skills/workflow → library/skills}/brainstorming/spec-document-reviewer-prompt.md +1 -1
- package/{skills/scene-and-project → library/skills}/browse-templates/SKILL.md +18 -18
- package/library/skills/browse-templates/resource.yaml +23 -0
- package/library/skills/celeste-momentum-platforming/SKILL.md +366 -0
- package/library/skills/celeste-momentum-platforming/resource.yaml +33 -0
- package/library/skills/character-animation-wiring/SKILL.md +249 -0
- package/library/skills/character-animation-wiring/resource.yaml +39 -0
- package/{skills/3d-assets → library/skills}/character-model/SKILL.md +25 -25
- package/library/skills/character-model/resource.yaml +36 -0
- package/{skills/2d-assets → library/skills}/character-portrait/SKILL.md +14 -14
- package/library/skills/character-portrait/resource.yaml +30 -0
- package/{skills/video → library/skills}/cinematic-cutscene/SKILL.md +2 -2
- package/library/skills/cinematic-cutscene/resource.yaml +29 -0
- package/{skills/2d-assets → library/skills}/concept-art/SKILL.md +15 -15
- package/library/skills/concept-art/resource.yaml +34 -0
- package/{skills/2d-assets → library/skills}/create-asset-sheet/SKILL.md +8 -8
- package/library/skills/create-asset-sheet/resource.yaml +33 -0
- package/{skills/debugging → library/skills}/debug/SKILL.md +3 -3
- package/library/skills/debug/resource.yaml +31 -0
- package/{skills/workflow → library/skills}/debugging-game-feel/SKILL.md +11 -11
- package/library/skills/debugging-game-feel/resource.yaml +25 -0
- package/{skills/level-design → library/skills}/design-level/SKILL.md +6 -6
- package/library/skills/design-level/resource.yaml +31 -0
- package/{skills/gameplay-mechanics → library/skills}/design-mechanic/SKILL.md +3 -3
- package/library/skills/design-mechanic/resource.yaml +31 -0
- package/{skills/ai-and-npcs → library/skills}/design-npc/SKILL.md +7 -3
- package/library/skills/design-npc/resource.yaml +29 -0
- package/{skills/workflow → library/skills}/diagnosing-perf-regressions/SKILL.md +10 -10
- package/library/skills/diagnosing-perf-regressions/resource.yaml +25 -0
- package/{skills/workflow → library/skills}/dispatching-parallel-agents/SKILL.md +8 -8
- package/library/skills/dispatching-parallel-agents/resource.yaml +23 -0
- package/library/skills/driving-the-editor-ui/SKILL.md +85 -0
- package/library/skills/driving-the-editor-ui/resource.yaml +46 -0
- package/{skills/3d-assets → library/skills}/environment-kit/SKILL.md +11 -11
- package/library/skills/environment-kit/resource.yaml +29 -0
- package/{skills/deployment → library/skills}/export-and-ship/SKILL.md +5 -5
- package/library/skills/export-and-ship/resource.yaml +32 -0
- package/library/skills/fabricating-assets/SKILL.md +195 -0
- package/library/skills/fabricating-assets/resource.yaml +52 -0
- package/{skills/animation → library/skills}/facial-and-lipsync/SKILL.md +23 -11
- package/library/skills/facial-and-lipsync/resource.yaml +36 -0
- package/{skills/character-controllers → library/skills}/fps-controller/SKILL.md +8 -4
- package/library/skills/fps-controller/resource.yaml +29 -0
- package/{skills/visual-effects → library/skills}/game-feel/SKILL.md +7 -7
- package/library/skills/game-feel/resource.yaml +27 -0
- package/library/skills/gameskill/SKILL.md +64 -0
- package/library/skills/gameskill/resource.yaml +22 -0
- package/library/skills/gdscript-patterns/resource.yaml +23 -0
- package/{skills/animation → library/skills}/generate-motion/SKILL.md +16 -16
- package/library/skills/generate-motion/resource.yaml +34 -0
- package/library/skills/godogen-visual-proof-game-generation/SKILL.md +223 -0
- package/library/skills/godogen-visual-proof-game-generation/resource.yaml +33 -0
- package/{skills/workflow → library/skills}/headless-scripting/SKILL.md +14 -7
- package/library/skills/headless-scripting/resource.yaml +26 -0
- package/{skills/multiplayer-and-networking → library/skills}/host-authoritative-state/SKILL.md +1 -1
- package/library/skills/host-authoritative-state/resource.yaml +28 -0
- package/{skills/2d-assets → library/skills}/instantiate-asset-pack/SKILL.md +10 -12
- package/library/skills/instantiate-asset-pack/resource.yaml +29 -0
- package/{skills/workflow → library/skills}/investigating-bugs/SKILL.md +4 -4
- package/{skills/workflow → library/skills}/investigating-bugs/condition-based-waiting.md +8 -8
- package/library/skills/investigating-bugs/resource.yaml +24 -0
- package/{skills/workflow → library/skills}/investigating-bugs/root-cause-tracing.md +1 -7
- package/library/skills/lumera-single-image-scene-reconstruction/SKILL.md +164 -0
- package/library/skills/lumera-single-image-scene-reconstruction/resource.yaml +35 -0
- package/{skills/scene-and-project → library/skills}/make-game/SKILL.md +23 -23
- package/library/skills/make-game/resource.yaml +35 -0
- package/library/skills/music-track/resource.yaml +28 -0
- package/library/skills/navigate-summer/SKILL.md +61 -0
- package/library/skills/navigate-summer/resource.yaml +35 -0
- package/{skills/scene-and-project → library/skills}/new-project/SKILL.md +10 -10
- package/library/skills/new-project/resource.yaml +28 -0
- package/{skills/3d-assets → library/skills}/organic-model/SKILL.md +16 -16
- package/library/skills/organic-model/resource.yaml +32 -0
- package/{skills/multiplayer-and-networking → library/skills}/peer-to-peer-multiplayer/SKILL.md +2 -2
- package/library/skills/peer-to-peer-multiplayer/resource.yaml +28 -0
- package/{skills/2d-assets → library/skills}/pixel-art/SKILL.md +13 -13
- package/library/skills/pixel-art/resource.yaml +31 -0
- package/library/skills/play/resource.yaml +26 -0
- package/{skills/workflow → library/skills}/playtesting-a-feature/SKILL.md +41 -22
- package/library/skills/playtesting-a-feature/resource.yaml +31 -0
- package/{skills/animation → library/skills}/procedural-animation/SKILL.md +25 -10
- package/library/skills/procedural-animation/resource.yaml +33 -0
- package/{skills/3d-assets → library/skills}/prop-model/SKILL.md +13 -13
- package/library/skills/prop-model/resource.yaml +33 -0
- package/library/skills/psx-retro-rendering/SKILL.md +416 -0
- package/library/skills/psx-retro-rendering/resource.yaml +36 -0
- package/library/skills/realtime-wet-surfaces/SKILL.md +189 -0
- package/library/skills/realtime-wet-surfaces/resource.yaml +31 -0
- package/{skills/deployment → library/skills}/remote-deploy/SKILL.md +3 -3
- package/library/skills/remote-deploy/resource.yaml +23 -0
- package/{skills/animation → library/skills}/retarget/SKILL.md +15 -14
- package/library/skills/retarget/resource.yaml +33 -0
- package/library/skills/running-in-the-cloud/SKILL.md +103 -0
- package/library/skills/running-in-the-cloud/resource.yaml +33 -0
- package/{skills/scene-and-project → library/skills}/scene-composition/SKILL.md +9 -1
- package/library/skills/scene-composition/resource.yaml +27 -0
- package/library/skills/scene-hierarchy-design/SKILL.md +102 -0
- package/library/skills/scene-hierarchy-design/resource.yaml +31 -0
- package/library/skills/scene-scripting/SKILL.md +764 -0
- package/library/skills/scene-scripting/resource.yaml +58 -0
- package/{skills/level-design → library/skills}/scene-to-level/SKILL.md +16 -17
- package/library/skills/scene-to-level/resource.yaml +33 -0
- package/{skills/multiplayer-and-networking → library/skills}/setup-multiplayer/SKILL.md +1 -1
- package/library/skills/setup-multiplayer/resource.yaml +28 -0
- package/library/skills/skill-create/SKILL.md +138 -0
- package/library/skills/skill-create/resource.yaml +25 -0
- package/{skills/workflow → library/skills}/skill-improve/SKILL.md +2 -2
- package/library/skills/skill-improve/resource.yaml +25 -0
- package/{skills/workflow → library/skills}/skill-test/SKILL.md +4 -4
- package/library/skills/skill-test/resource.yaml +26 -0
- package/library/skills/skintokens-auto-rigging/SKILL.md +200 -0
- package/library/skills/skintokens-auto-rigging/resource.yaml +38 -0
- package/{skills/2d-assets → library/skills}/skybox-panorama/SKILL.md +8 -8
- package/library/skills/skybox-panorama/resource.yaml +28 -0
- package/{skills/audio → library/skills}/sound-effect/SKILL.md +2 -2
- package/library/skills/sound-effect/resource.yaml +27 -0
- package/library/skills/spatial-placement/SKILL.md +74 -0
- package/library/skills/spatial-placement/resource.yaml +42 -0
- package/library/skills/spatial-placement/tests/spec.md +65 -0
- package/{skills/2d-assets → library/skills}/sprite-sheet/SKILL.md +12 -12
- package/library/skills/sprite-sheet/resource.yaml +32 -0
- package/{skills/2d-assets → library/skills}/tileable-texture/SKILL.md +9 -9
- package/library/skills/tileable-texture/resource.yaml +31 -0
- package/{skills/video → library/skills}/trailer-shot/SKILL.md +1 -1
- package/library/skills/trailer-shot/resource.yaml +27 -0
- package/{skills/performance → library/skills}/tune-performance/SKILL.md +6 -6
- package/library/skills/tune-performance/resource.yaml +31 -0
- package/{skills/ui-and-ux → library/skills}/ui-basics/SKILL.md +1 -1
- package/library/skills/ui-basics/resource.yaml +25 -0
- package/{skills/2d-assets → library/skills}/ui-graphics/SKILL.md +11 -11
- package/library/skills/ui-graphics/resource.yaml +29 -0
- package/{skills/2d-assets → library/skills}/use-widget-asset/SKILL.md +4 -4
- package/library/skills/use-widget-asset/resource.yaml +29 -0
- package/{skills/workflow → library/skills}/using-summer/SKILL.md +12 -9
- package/library/skills/using-summer/resource.yaml +41 -0
- package/{skills/3d-assets → library/skills}/vehicle-model/SKILL.md +18 -18
- package/library/skills/vehicle-model/resource.yaml +34 -0
- package/{skills/workflow → library/skills}/verification-before-completion/SKILL.md +10 -10
- package/library/skills/verification-before-completion/resource.yaml +23 -0
- package/library/skills/verifying-scenes/SKILL.md +98 -0
- package/library/skills/verifying-scenes/resource.yaml +42 -0
- package/{skills/visual-effects/recipes/dissolve → library/skills/vfx-dissolve}/SKILL.md +31 -11
- package/library/skills/vfx-dissolve/resource.yaml +33 -0
- package/{skills/visual-effects/recipes/fire → library/skills/vfx-fire}/SKILL.md +43 -12
- package/library/skills/vfx-fire/_building-blocks/noise-3d-fbm.gdshaderinc +45 -0
- package/library/skills/vfx-fire/resource.yaml +35 -0
- package/{skills/visual-effects/recipes/hit-spark → library/skills/vfx-hit-spark}/SKILL.md +16 -10
- package/library/skills/vfx-hit-spark/_building-blocks/additive-billboard-particles.md +37 -0
- package/library/skills/vfx-hit-spark/resource.yaml +34 -0
- package/{skills/visual-effects/recipes/lightning → library/skills/vfx-lightning}/SKILL.md +24 -11
- package/library/skills/vfx-lightning/_building-blocks/additive-billboard-particles.md +37 -0
- package/library/skills/vfx-lightning/resource.yaml +33 -0
- package/{skills/visual-effects/recipes/magic-glow → library/skills/vfx-magic-glow}/SKILL.md +31 -11
- package/library/skills/vfx-magic-glow/_building-blocks/additive-billboard-particles.md +37 -0
- package/library/skills/vfx-magic-glow/resource.yaml +34 -0
- package/{skills/visual-effects/recipes/muzzle-flash → library/skills/vfx-muzzle-flash}/SKILL.md +29 -9
- package/library/skills/vfx-muzzle-flash/_building-blocks/additive-billboard-particles.md +37 -0
- package/library/skills/vfx-muzzle-flash/_building-blocks/trauma-shake-snippet.md +53 -0
- package/library/skills/vfx-muzzle-flash/resource.yaml +35 -0
- package/{skills/visual-effects/recipes/smoke → library/skills/vfx-smoke}/SKILL.md +35 -9
- package/library/skills/vfx-smoke/_building-blocks/noise-3d-fbm.gdshaderinc +45 -0
- package/library/skills/vfx-smoke/resource.yaml +32 -0
- package/{skills/visual-effects/recipes/water-ripple → library/skills/vfx-water-ripple}/SKILL.md +31 -9
- package/library/skills/vfx-water-ripple/_building-blocks/additive-billboard-particles.md +37 -0
- package/library/skills/vfx-water-ripple/resource.yaml +31 -0
- package/library/skills/voice-line/resource.yaml +27 -0
- package/library/skills/world-building-3d/SKILL.md +105 -0
- package/library/skills/world-building-3d/references/spatial-tools.md +50 -0
- package/library/skills/world-building-3d/resource.yaml +44 -0
- package/library/skills/world-building-3d/tests/spec.md +48 -0
- package/{skills/workflow → library/skills}/writing-plans/SKILL.md +19 -14
- package/library/skills/writing-plans/resource.yaml +23 -0
- package/{skills/workflow → library/skills}/writing-skills/SKILL.md +38 -44
- package/library/skills/writing-skills/resource.yaml +29 -0
- package/{skills/workflow → library/skills}/writing-skills/testing-skills-with-subagents.md +13 -14
- package/library/templates/2d-brario-platformer/resource.yaml +21 -0
- package/library/templates/2d-dungeon-roguelike/resource.yaml +23 -0
- package/library/templates/2d-grid-puzzle/resource.yaml +21 -0
- package/library/templates/2d-plants-and-zombies-tower-defense/resource.yaml +21 -0
- package/library/templates/2d-platformer/resource.yaml +24 -0
- package/library/templates/2d-rpg/resource.yaml +21 -0
- package/library/templates/2d-vampire-survivor-roguelike/resource.yaml +21 -0
- package/library/templates/3d-basic/resource.yaml +16 -0
- package/library/templates/3d-city-kit/resource.yaml +24 -0
- package/library/templates/3d-fps-old-school/resource.yaml +21 -0
- package/library/templates/3d-fps-simple-animated-npc/resource.yaml +21 -0
- package/library/templates/3d-lan-multiplayer-starter/resource.yaml +22 -0
- package/library/templates/3d-open-world-explore-tps/resource.yaml +21 -0
- package/library/templates/3d-procedural-road-world/resource.yaml +21 -0
- package/library/templates/3d-racing-game/resource.yaml +21 -0
- package/library/templates/3d-royale-clash-type/resource.yaml +21 -0
- package/library/templates/3d-third-person-controller/resource.yaml +21 -0
- package/library/templates/3d-voxel-sandbox/resource.yaml +24 -0
- package/library/templates/README.md +94 -0
- package/library/templates/empty/resource.yaml +16 -0
- package/library/tools/add-node/resource.yaml +60 -0
- package/library/tools/align-distribute-3d/resource.yaml +87 -0
- package/library/tools/api-docs/resource.yaml +57 -0
- package/library/tools/batch/resource.yaml +52 -0
- package/library/tools/camera-bookmark/resource.yaml +73 -0
- package/library/tools/check-job/resource.yaml +45 -0
- package/library/tools/clear-console/resource.yaml +40 -0
- package/library/tools/connect-signal/resource.yaml +63 -0
- package/library/tools/create-debug-report/resource.yaml +67 -0
- package/library/tools/create-scene/resource.yaml +59 -0
- package/library/tools/creator-config/resource.yaml +63 -0
- package/library/tools/creator-publish/resource.yaml +73 -0
- package/library/tools/creator-releases/resource.yaml +53 -0
- package/library/tools/fabricate-3d/resource.yaml +108 -0
- package/library/tools/game-control/resource.yaml +84 -0
- package/library/tools/game-input/resource.yaml +159 -0
- package/library/tools/game-probe/resource.yaml +90 -0
- package/library/tools/generate-3d/resource.yaml +112 -0
- package/library/tools/generate-audio/resource.yaml +80 -0
- package/library/tools/generate-image/resource.yaml +62 -0
- package/library/tools/generate-motion/resource.yaml +66 -0
- package/library/tools/generate-video/resource.yaml +66 -0
- package/library/tools/get-agent-playbook/resource.yaml +40 -0
- package/library/tools/get-asset/resource.yaml +42 -0
- package/library/tools/get-asset-download-url/resource.yaml +52 -0
- package/library/tools/get-console/resource.yaml +69 -0
- package/library/tools/get-debugger-errors/resource.yaml +56 -0
- package/library/tools/get-debugger-warnings/resource.yaml +52 -0
- package/library/tools/get-diagnostics/resource.yaml +42 -0
- package/library/tools/get-project-context/resource.yaml +45 -0
- package/library/tools/get-runtime-tree/resource.yaml +62 -0
- package/library/tools/get-scene-tree/resource.yaml +52 -0
- package/library/tools/get-script-errors/resource.yaml +45 -0
- package/library/tools/get-studio-workflow/resource.yaml +43 -0
- package/library/tools/import-asset/resource.yaml +73 -0
- package/library/tools/import-asset-by-id/resource.yaml +56 -0
- package/library/tools/import-from-url/resource.yaml +51 -0
- package/library/tools/import-from-url-batch/resource.yaml +60 -0
- package/library/tools/import-hdri/resource.yaml +69 -0
- package/library/tools/input-map-bind/resource.yaml +52 -0
- package/library/tools/inspect-node/resource.yaml +46 -0
- package/library/tools/inspect-resource/resource.yaml +45 -0
- package/library/tools/inspect-runtime-node/resource.yaml +54 -0
- package/library/tools/instantiate-scene/resource.yaml +62 -0
- package/library/tools/is-running/resource.yaml +40 -0
- package/library/tools/library-feedback/resource.yaml +89 -0
- package/library/tools/list-my-assets/resource.yaml +56 -0
- package/library/tools/navigation-probe/resource.yaml +85 -0
- package/library/tools/open/resource.yaml +80 -0
- package/library/tools/open-main-scene/resource.yaml +40 -0
- package/library/tools/open-scene/resource.yaml +46 -0
- package/library/tools/play/resource.yaml +91 -0
- package/library/tools/project-setting/resource.yaml +53 -0
- package/library/tools/read-file/resource.yaml +47 -0
- package/library/tools/read-library/resource.yaml +67 -0
- package/library/tools/recent-events/resource.yaml +71 -0
- package/library/tools/remove-node/resource.yaml +51 -0
- package/library/tools/replace-node/resource.yaml +57 -0
- package/library/tools/replace-text/resource.yaml +61 -0
- package/library/tools/run-editor-script/resource.yaml +61 -0
- package/library/tools/run-script/resource.yaml +73 -0
- package/library/tools/runtime-animate/resource.yaml +140 -0
- package/library/tools/runtime-call/resource.yaml +74 -0
- package/library/tools/runtime-set/resource.yaml +80 -0
- package/library/tools/runtime-spawn/resource.yaml +95 -0
- package/library/tools/save-scene/resource.yaml +50 -0
- package/library/tools/screenshot/resource.yaml +112 -0
- package/library/tools/search-assets/resource.yaml +67 -0
- package/library/tools/search-library/resource.yaml +81 -0
- package/library/tools/select-node/resource.yaml +48 -0
- package/library/tools/set-prop/resource.yaml +64 -0
- package/library/tools/set-resource-property/resource.yaml +66 -0
- package/library/tools/slice-asset-sheet/resource.yaml +47 -0
- package/library/tools/snap-to-surface/resource.yaml +90 -0
- package/library/tools/snapshot-diff/resource.yaml +58 -0
- package/library/tools/starcast/resource.yaml +120 -0
- package/library/tools/start-game-task/resource.yaml +91 -0
- package/library/tools/stop/resource.yaml +51 -0
- package/library/tools/test-placement/resource.yaml +109 -0
- package/library/tools/ui-actions/resource.yaml +77 -0
- package/library/tools/ui-activate/resource.yaml +88 -0
- package/library/tools/ui-screenshot/resource.yaml +63 -0
- package/library/tools/ui-tree/resource.yaml +69 -0
- package/library/tools/wait-for-event/resource.yaml +84 -0
- package/library/tools/world-snapshot/resource.yaml +60 -0
- package/library/tools/write-file/resource.yaml +54 -0
- package/package.json +22 -16
- package/registry/generated/aliases.json +207 -0
- package/registry/generated/counts.json +12 -0
- package/registry/generated/gemini-extension.json +122 -0
- package/registry/generated/index.json +7709 -0
- package/registry/generated/marketplace.claude.json +44 -0
- package/registry/generated/mcp.json +13 -0
- package/registry/generated/plugin.claude.json +135 -0
- package/registry/generated/plugin.codex.json +144 -0
- package/registry/generated/plugin.cursor.json +134 -0
- package/registry/generated/plugin.factory.json +117 -0
- package/registry/generated/skills-registry.json +851 -0
- package/registry/generated/templates-registry.json +455 -0
- package/registry/schemas/allowed-hosts.json +19 -0
- package/registry/schemas/collection.schema.json +68 -0
- package/registry/schemas/domains.json +96 -0
- package/registry/schemas/example.schema.json +11 -0
- package/registry/schemas/reference.schema.json +10 -0
- package/registry/schemas/resource.schema.json +154 -0
- package/registry/schemas/skill.schema.json +14 -0
- package/registry/schemas/template.schema.json +46 -0
- package/registry/schemas/tool.schema.json +61 -0
- package/_persona/summer/SKILL.md +0 -113
- package/dist/bin/postinstall.d.ts +0 -2
- package/dist/bin/postinstall.js +0 -3
- package/dist/commands/cloud.d.ts +0 -2
- package/dist/commands/cloud.js +0 -80
- package/dist/commands/create.d.ts +0 -3
- package/dist/commands/create.js +0 -171
- package/dist/commands/install.d.ts +0 -19
- package/dist/commands/install.js +0 -194
- package/dist/commands/list.js +0 -67
- package/dist/commands/logout.js +0 -13
- package/dist/commands/logs.d.ts +0 -2
- package/dist/commands/logs.js +0 -19
- package/dist/commands/open.d.ts +0 -2
- package/dist/commands/open.js +0 -32
- package/dist/commands/orchestrator.d.ts +0 -8
- package/dist/commands/orchestrator.js +0 -143
- package/dist/commands/run.d.ts +0 -2
- package/dist/commands/run.js +0 -167
- package/dist/commands/status.js +0 -46
- package/dist/lib/banner.d.ts +0 -4
- package/dist/lib/banner.js +0 -122
- package/dist/lib/cloud/api.d.ts +0 -79
- package/dist/lib/cloud/api.js +0 -107
- package/dist/lib/cloud/apply.d.ts +0 -32
- package/dist/lib/cloud/apply.js +0 -294
- package/dist/lib/cloud/checkpoint.d.ts +0 -26
- package/dist/lib/cloud/checkpoint.js +0 -142
- package/dist/lib/cloud/conflicts.d.ts +0 -55
- package/dist/lib/cloud/conflicts.js +0 -131
- package/dist/lib/cloud/containment.d.ts +0 -8
- package/dist/lib/cloud/containment.js +0 -52
- package/dist/lib/cloud/diff.d.ts +0 -39
- package/dist/lib/cloud/diff.js +0 -138
- package/dist/lib/cloud/engine-bridge.d.ts +0 -34
- package/dist/lib/cloud/engine-bridge.js +0 -139
- package/dist/lib/cloud/hash-cache.d.ts +0 -23
- package/dist/lib/cloud/hash-cache.js +0 -44
- package/dist/lib/cloud/hash.d.ts +0 -10
- package/dist/lib/cloud/hash.js +0 -111
- package/dist/lib/cloud/http.d.ts +0 -17
- package/dist/lib/cloud/http.js +0 -47
- package/dist/lib/cloud/lock-path.d.ts +0 -1
- package/dist/lib/cloud/lock-path.js +0 -5
- package/dist/lib/cloud/lock.d.ts +0 -14
- package/dist/lib/cloud/lock.js +0 -143
- package/dist/lib/cloud/manifest.d.ts +0 -6
- package/dist/lib/cloud/manifest.js +0 -41
- package/dist/lib/cloud/paths.d.ts +0 -20
- package/dist/lib/cloud/paths.js +0 -90
- package/dist/lib/cloud/project-godot-merge.d.ts +0 -32
- package/dist/lib/cloud/project-godot-merge.js +0 -185
- package/dist/lib/cloud/rules.d.ts +0 -39
- package/dist/lib/cloud/rules.js +0 -159
- package/dist/lib/cloud/sync.d.ts +0 -21
- package/dist/lib/cloud/sync.js +0 -518
- package/dist/lib/cloud/transfer.d.ts +0 -23
- package/dist/lib/cloud/transfer.js +0 -184
- package/dist/lib/cloud/types.d.ts +0 -62
- package/dist/lib/cloud/types.js +0 -1
- package/dist/lib/cloud/validate-path.d.ts +0 -23
- package/dist/lib/cloud/validate-path.js +0 -103
- package/dist/lib/engine.d.ts +0 -51
- package/dist/lib/game-task-plan.d.ts +0 -42
- package/dist/lib/project-memory.d.ts +0 -33
- package/dist/lib/public-surface-paths.d.ts +0 -13
- package/dist/lib/public-surface-paths.js +0 -42
- package/dist/lib/remote-templates.d.ts +0 -25
- package/dist/lib/remote-templates.js +0 -86
- package/dist/lib/skills-registry.d.ts +0 -572
- package/dist/lib/skills-registry.js +0 -1061
- package/dist/lib/version-check.d.ts +0 -106
- package/dist/mcp/tools/cloud-tools.js +0 -42
- package/references/mcp-tools-reference.md +0 -199
- package/references/template-registry.md +0 -73
- package/skills/README.md +0 -103
- package/skills/scene-and-project/summer-cloud/SKILL.md +0 -92
- package/skills/workflow/brainstorming/scripts/frame-template.html +0 -214
- package/skills/workflow/brainstorming/scripts/helper.js +0 -88
- package/skills/workflow/brainstorming/scripts/server.cjs +0 -354
- package/skills/workflow/brainstorming/scripts/start-server.sh +0 -148
- package/skills/workflow/brainstorming/scripts/stop-server.sh +0 -56
- package/skills/workflow/brainstorming/visual-companion.md +0 -287
- package/skills/workflow/gameskill/SKILL.md +0 -120
- package/skills/workflow/investigating-bugs/CREATION-LOG.md +0 -119
- package/skills/workflow/investigating-bugs/condition-based-waiting-example.ts +0 -158
- package/skills/workflow/investigating-bugs/find-polluter.sh +0 -63
- package/skills/workflow/investigating-bugs/test-academic.md +0 -14
- package/skills/workflow/investigating-bugs/test-pressure-1.md +0 -58
- package/skills/workflow/investigating-bugs/test-pressure-2.md +0 -68
- package/skills/workflow/investigating-bugs/test-pressure-3.md +0 -69
- package/skills/workflow/mcpupdate/SKILL.md +0 -134
- package/skills/workflow/skill-create/SKILL.md +0 -153
- package/skills/workflow/writing-skills/anthropic-best-practices.md +0 -1150
- package/skills/workflow/writing-skills/examples/CLAUDE_MD_TESTING.md +0 -189
- package/skills/workflow/writing-skills/graphviz-conventions.dot +0 -172
- package/skills/workflow/writing-skills/persuasion-principles.md +0 -187
- package/skills/workflow/writing-skills/render-graphs.js +0 -168
- /package/dist/{commands → cli/commands}/config.d.ts +0 -0
- /package/dist/{commands → cli/commands}/debug.d.ts +0 -0
- /package/dist/{commands → cli/commands}/list.d.ts +0 -0
- /package/dist/{commands → cli/commands}/login.d.ts +0 -0
- /package/dist/{commands → cli/commands}/plan.d.ts +0 -0
- /package/dist/{commands → cli/commands}/publish.d.ts +0 -0
- /package/dist/{commands → cli/commands}/releases.d.ts +0 -0
- /package/dist/{commands → cli/commands}/setup.d.ts +0 -0
- /package/dist/{commands → cli/commands}/skills.d.ts +0 -0
- /package/dist/{lib → core}/log-filters.d.ts +0 -0
- /package/dist/{lib → core}/mcp-log.d.ts +0 -0
- /package/dist/{lib → core}/store.d.ts +0 -0
- /package/dist/{lib → core}/summer-compatibility.d.ts +0 -0
- /package/dist/{lib → core}/telemetry.d.ts +0 -0
- /package/dist/{lib/mcp-boot-notice.js → mcp/boot-notice.js} +0 -0
- /package/dist/{commands/mcp.d.ts → mcp/command.d.ts} +0 -0
- /package/{references → library/references/collaborative-protocol}/collaborative-protocol.md +0 -0
- /package/{references → library/references/gd-style}/gd-style.md +0 -0
- /package/{skills/audio → library/skills}/ambient-bed/SKILL.md +0 -0
- /package/{skills/gameplay-mechanics → library/skills}/auto-fire-targeting/SKILL.md +0 -0
- /package/{skills/scripting-patterns → library/skills}/gdscript-patterns/SKILL.md +0 -0
- /package/{skills/scripting-patterns → library/skills}/gdscript-patterns/reference.md +0 -0
- /package/{skills/workflow → library/skills}/investigating-bugs/defense-in-depth.md +0 -0
- /package/{skills/audio → library/skills}/music-track/SKILL.md +0 -0
- /package/{skills/scene-and-project → library/skills}/play/SKILL.md +0 -0
- /package/{skills/visual-effects → library/skills/vfx-dissolve}/_building-blocks/noise-3d-fbm.gdshaderinc +0 -0
- /package/{skills/visual-effects → library/skills/vfx-fire}/_building-blocks/additive-billboard-particles.md +0 -0
- /package/{skills/visual-effects → library/skills/vfx-lightning}/_building-blocks/trauma-shake-snippet.md +0 -0
- /package/{skills/audio → library/skills}/voice-line/SKILL.md +0 -0
- /package/{skills/workflow → library/skills}/writing-plans/plan-document-reviewer-prompt.md +0 -0
|
@@ -0,0 +1,540 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Runtime control & playtest ops (runtime control) — the "see and touch the
|
|
3
|
+
* RUNNING game" surface. One copy of the argument contracts, op builders,
|
|
4
|
+
* client budgets and failure hints, shared by the MCP tools
|
|
5
|
+
* (src/mcp/tools/runtime-tools.ts) and the CLI dispatcher (`summer tool …`) so
|
|
6
|
+
* both faces validate the same inputs, send the same op and wait the same
|
|
7
|
+
* budget.
|
|
8
|
+
*
|
|
9
|
+
* Engine contract (frozen): doc/SUMMER/SCENE_SCRIPTING_CONTRACTS.md "Wave I —
|
|
10
|
+
* Runtime control & playtest ops" + editor/ops/runtime_ops.h. Every op except
|
|
11
|
+
* ListGameInstances is SINGLE-ONLY and ASYNC (a debugger round-trip needs the
|
|
12
|
+
* reply channel), requires a RUNNING game, accepts `instance?` (default
|
|
13
|
+
* "main"), stamps the game frame it describes, rounds floats to 3dp and
|
|
14
|
+
* serialises math values as Godot literal strings ("Vector3(1, 2, 3)").
|
|
15
|
+
*
|
|
16
|
+
* Sixteen engine kinds are grouped into seven tools:
|
|
17
|
+
* summer_runtime_set SetRuntimeProp
|
|
18
|
+
* summer_runtime_call CallRuntimeMethod
|
|
19
|
+
* summer_runtime_spawn SpawnRuntimeScene | FreeRuntimeNode (action)
|
|
20
|
+
* summer_runtime_animate RuntimeAnimation | RuntimeAnimationTree |
|
|
21
|
+
* GetRuntimeBones (target)
|
|
22
|
+
* summer_game_control GamePause | GameStep | GameSpeed |
|
|
23
|
+
* ListGameInstances (action)
|
|
24
|
+
* summer_game_input SimulateInputScript | InputRecordStart |
|
|
25
|
+
* InputRecordStop | InputReplay (action)
|
|
26
|
+
* summer_game_probe GameProbe
|
|
27
|
+
* plus the instance-aware PlayGame / StopGame variants behind summer_play /
|
|
28
|
+
* summer_stop.
|
|
29
|
+
*/
|
|
30
|
+
import { z } from "zod";
|
|
31
|
+
import { type CapabilityAdvertisingClient } from "../capability-skew.js";
|
|
32
|
+
/** The fifteen async single-only kinds (RuntimeOps::async_op_kinds). */
|
|
33
|
+
export declare const RUNTIME_ASYNC_OP_KINDS: readonly string[];
|
|
34
|
+
/** All sixteen runtime-control kinds — the fifteen above plus the synchronous
|
|
35
|
+
* ListGameInstances read. */
|
|
36
|
+
export declare const RUNTIME_CONTROL_OP_KINDS: readonly string[];
|
|
37
|
+
/** Default editor-side watchdog for a runtime op (_RT_DEFAULT_TIMEOUT_SEC). */
|
|
38
|
+
export declare const RUNTIME_WATCHDOG_DEFAULT_SEC = 10;
|
|
39
|
+
/** Hard cap on any runtime watchdog (_RT_MAX_TIMEOUT_SEC). */
|
|
40
|
+
export declare const RUNTIME_WATCHDOG_MAX_SEC = 20;
|
|
41
|
+
/** GameProbe watchdog: screenshot + PNG -> JPEG decode (_RT_PROBE_TIMEOUT_SEC). */
|
|
42
|
+
export declare const RUNTIME_PROBE_WATCHDOG_SEC = 15;
|
|
43
|
+
/** Offscreen child attach budget before the engine kills it (_RT_ATTACH_TIMEOUT_SEC). */
|
|
44
|
+
export declare const RUNTIME_ATTACH_TIMEOUT_SEC = 15;
|
|
45
|
+
/** The op is staged on the editor's async lane and polled over HTTP; the
|
|
46
|
+
* watchdog fires editor-side, so the client always waits longer than it. */
|
|
47
|
+
export declare const RUNTIME_CLIENT_HEADROOM_MS = 15000;
|
|
48
|
+
/** GameStep frames cap (_RT_STEP_MAX_FRAMES). */
|
|
49
|
+
export declare const GAME_STEP_MAX_FRAMES = 600;
|
|
50
|
+
/** SimulateInputScript / InputReplay event cap (_RT_SCRIPT_MAX_EVENTS). */
|
|
51
|
+
export declare const INPUT_SCRIPT_MAX_EVENTS = 1000;
|
|
52
|
+
/** Last-event horizon: 36000 frames = 600 s at 60 fps (_RT_SCRIPT_HORIZON_FRAMES). */
|
|
53
|
+
export declare const INPUT_SCRIPT_HORIZON_FRAMES = 36000;
|
|
54
|
+
/** GameProbe props cap and tree bounds. */
|
|
55
|
+
export declare const GAME_PROBE_MAX_PROPS = 64;
|
|
56
|
+
export declare const GAME_PROBE_MAX_DEPTH = 8;
|
|
57
|
+
export declare const GAME_PROBE_MAX_LIMIT = 4000;
|
|
58
|
+
export declare const GAME_PROBE_MIN_DIM = 16;
|
|
59
|
+
export declare const GAME_PROBE_MAX_DIM = 4096;
|
|
60
|
+
/** Offscreen instance cap (4 debugger sessions total, the run bar's game included). */
|
|
61
|
+
export declare const MAX_OFFSCREEN_INSTANCES = 3;
|
|
62
|
+
/** PlayGame default seed when deterministic and no seed is given (_RT_DEFAULT_SEED). */
|
|
63
|
+
export declare const PLAY_DEFAULT_SEED = 20260725;
|
|
64
|
+
/** Client poll budget for an engine watchdog of `watchdogSec` seconds. */
|
|
65
|
+
export declare function runtimeBudgetMs(watchdogSec: number): number;
|
|
66
|
+
/** Instance-aware PlayGame: the child must attach within 15 s, and a cold
|
|
67
|
+
* load of a large project can take 25-40 s on top — same 60 s as /api/play. */
|
|
68
|
+
export declare const PLAY_INSTANCE_TIMEOUT_MS = 60000;
|
|
69
|
+
/** StopGame {instance}: kills a PID — same 15 s budget as /api/stop. */
|
|
70
|
+
export declare const STOP_INSTANCE_TIMEOUT_MS = 15000;
|
|
71
|
+
export declare const RUNTIME_FALLBACKS: Readonly<Record<string, string>>;
|
|
72
|
+
/** Instance-aware PlayGame rides the same engine wave as ListGameInstances;
|
|
73
|
+
* an engine that lacks the latter would start the MAIN game and silently
|
|
74
|
+
* ignore instance/mode, so the pre-flight keys on this kind. */
|
|
75
|
+
export declare const PLAY_INSTANCE_FALLBACK = "start the main game with summer_play without instance/mode (seed and fixed_fps still apply there) and observe it with summer_screenshot target:'game' or a RunVerification probe \u2014 this engine has no parallel offscreen instances";
|
|
76
|
+
export declare const RUNTIME_FAILURE_HINTS: Readonly<Record<string, string>>;
|
|
77
|
+
/**
|
|
78
|
+
* Amend a runtime-op envelope with prescriptive recovery text. The structured
|
|
79
|
+
* failure_reason stays intact for programmatic callers; on a failure only the
|
|
80
|
+
* model-facing `error` string is taught. A SUCCESSFUL envelope that still
|
|
81
|
+
* carries a reason (SetRuntimeProp applied:false + not_applied, InputReplay's
|
|
82
|
+
* advisory nondeterministic_instance) gets a `hint` field instead — the op
|
|
83
|
+
* did run, so its `error` must not be invented.
|
|
84
|
+
*/
|
|
85
|
+
export declare function withRuntimeFailureHints(result: unknown, extraHints?: Record<string, string>): unknown;
|
|
86
|
+
export interface BuiltRuntimeOp {
|
|
87
|
+
/** Engine op kind the tool resolved to (for pre-flight, hints and tests). */
|
|
88
|
+
kind: string;
|
|
89
|
+
op: Record<string, unknown>;
|
|
90
|
+
/** Client poll budget — always longer than the engine watchdog. */
|
|
91
|
+
timeoutMs: number;
|
|
92
|
+
}
|
|
93
|
+
export declare const runtimeSetArgsSchema: z.ZodObject<{
|
|
94
|
+
path: z.ZodString;
|
|
95
|
+
property: z.ZodString;
|
|
96
|
+
value: z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>;
|
|
97
|
+
field: z.ZodOptional<z.ZodString>;
|
|
98
|
+
instance: z.ZodOptional<z.ZodString>;
|
|
99
|
+
}, "strip", z.ZodTypeAny, {
|
|
100
|
+
path: string;
|
|
101
|
+
value: string | number | boolean;
|
|
102
|
+
property: string;
|
|
103
|
+
instance?: string | undefined;
|
|
104
|
+
field?: string | undefined;
|
|
105
|
+
}, {
|
|
106
|
+
path: string;
|
|
107
|
+
value: string | number | boolean;
|
|
108
|
+
property: string;
|
|
109
|
+
instance?: string | undefined;
|
|
110
|
+
field?: string | undefined;
|
|
111
|
+
}>;
|
|
112
|
+
export type RuntimeSetArgs = z.infer<typeof runtimeSetArgsSchema>;
|
|
113
|
+
export declare function buildRuntimeSetOp(args: RuntimeSetArgs): BuiltRuntimeOp;
|
|
114
|
+
export declare const runtimeCallArgsSchema: z.ZodObject<{
|
|
115
|
+
path: z.ZodString;
|
|
116
|
+
method: z.ZodString;
|
|
117
|
+
args: z.ZodOptional<z.ZodArray<z.ZodUnknown, "many">>;
|
|
118
|
+
instance: z.ZodOptional<z.ZodString>;
|
|
119
|
+
}, "strip", z.ZodTypeAny, {
|
|
120
|
+
path: string;
|
|
121
|
+
method: string;
|
|
122
|
+
args?: unknown[] | undefined;
|
|
123
|
+
instance?: string | undefined;
|
|
124
|
+
}, {
|
|
125
|
+
path: string;
|
|
126
|
+
method: string;
|
|
127
|
+
args?: unknown[] | undefined;
|
|
128
|
+
instance?: string | undefined;
|
|
129
|
+
}>;
|
|
130
|
+
export type RuntimeCallArgs = z.infer<typeof runtimeCallArgsSchema>;
|
|
131
|
+
export declare function buildRuntimeCallOp(args: RuntimeCallArgs): BuiltRuntimeOp;
|
|
132
|
+
export declare const runtimeSpawnArgsSchema: z.ZodObject<{
|
|
133
|
+
action: z.ZodEnum<["spawn", "free"]>;
|
|
134
|
+
parent: z.ZodOptional<z.ZodString>;
|
|
135
|
+
scene: z.ZodOptional<z.ZodString>;
|
|
136
|
+
name: z.ZodOptional<z.ZodString>;
|
|
137
|
+
props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>>;
|
|
138
|
+
path: z.ZodOptional<z.ZodString>;
|
|
139
|
+
mode: z.ZodOptional<z.ZodEnum<["queue_free", "free"]>>;
|
|
140
|
+
instance: z.ZodOptional<z.ZodString>;
|
|
141
|
+
}, "strip", z.ZodTypeAny, {
|
|
142
|
+
action: "spawn" | "free";
|
|
143
|
+
mode?: "free" | "queue_free" | undefined;
|
|
144
|
+
instance?: string | undefined;
|
|
145
|
+
scene?: string | undefined;
|
|
146
|
+
name?: string | undefined;
|
|
147
|
+
path?: string | undefined;
|
|
148
|
+
parent?: string | undefined;
|
|
149
|
+
props?: Record<string, string | number | boolean> | undefined;
|
|
150
|
+
}, {
|
|
151
|
+
action: "spawn" | "free";
|
|
152
|
+
mode?: "free" | "queue_free" | undefined;
|
|
153
|
+
instance?: string | undefined;
|
|
154
|
+
scene?: string | undefined;
|
|
155
|
+
name?: string | undefined;
|
|
156
|
+
path?: string | undefined;
|
|
157
|
+
parent?: string | undefined;
|
|
158
|
+
props?: Record<string, string | number | boolean> | undefined;
|
|
159
|
+
}>;
|
|
160
|
+
export type RuntimeSpawnArgs = z.infer<typeof runtimeSpawnArgsSchema>;
|
|
161
|
+
export declare function buildRuntimeSpawnOp(args: RuntimeSpawnArgs): BuiltRuntimeOp;
|
|
162
|
+
export declare const ANIMATION_PLAYER_CMDS: readonly ["state", "play", "pause", "stop", "seek", "speed"];
|
|
163
|
+
export declare const ANIMATION_TREE_CMDS: readonly ["state", "travel", "start", "stop", "set_param", "get_param"];
|
|
164
|
+
export declare const runtimeAnimateArgsSchema: z.ZodObject<{
|
|
165
|
+
target: z.ZodEnum<["player", "tree", "bones"]>;
|
|
166
|
+
path: z.ZodString;
|
|
167
|
+
cmd: z.ZodOptional<z.ZodEnum<["state", "play", "pause", "stop", "seek", "speed", "travel", "start", "set_param", "get_param"]>>;
|
|
168
|
+
name: z.ZodOptional<z.ZodString>;
|
|
169
|
+
position: z.ZodOptional<z.ZodNumber>;
|
|
170
|
+
speed: z.ZodOptional<z.ZodNumber>;
|
|
171
|
+
from_end: z.ZodOptional<z.ZodBoolean>;
|
|
172
|
+
blend: z.ZodOptional<z.ZodNumber>;
|
|
173
|
+
update: z.ZodOptional<z.ZodBoolean>;
|
|
174
|
+
state: z.ZodOptional<z.ZodString>;
|
|
175
|
+
reset: z.ZodOptional<z.ZodBoolean>;
|
|
176
|
+
param: z.ZodOptional<z.ZodString>;
|
|
177
|
+
value: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodNumber, z.ZodBoolean]>>;
|
|
178
|
+
playback_path: z.ZodOptional<z.ZodString>;
|
|
179
|
+
bones: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
180
|
+
space: z.ZodOptional<z.ZodEnum<["global", "local", "both"]>>;
|
|
181
|
+
include_rest: z.ZodOptional<z.ZodBoolean>;
|
|
182
|
+
instance: z.ZodOptional<z.ZodString>;
|
|
183
|
+
}, "strip", z.ZodTypeAny, {
|
|
184
|
+
path: string;
|
|
185
|
+
target: "tree" | "player" | "bones";
|
|
186
|
+
instance?: string | undefined;
|
|
187
|
+
name?: string | undefined;
|
|
188
|
+
value?: string | number | boolean | undefined;
|
|
189
|
+
blend?: number | undefined;
|
|
190
|
+
state?: string | undefined;
|
|
191
|
+
position?: number | undefined;
|
|
192
|
+
speed?: number | undefined;
|
|
193
|
+
bones?: string[] | undefined;
|
|
194
|
+
cmd?: "pause" | "play" | "stop" | "state" | "seek" | "speed" | "travel" | "start" | "set_param" | "get_param" | undefined;
|
|
195
|
+
from_end?: boolean | undefined;
|
|
196
|
+
update?: boolean | undefined;
|
|
197
|
+
reset?: boolean | undefined;
|
|
198
|
+
param?: string | undefined;
|
|
199
|
+
playback_path?: string | undefined;
|
|
200
|
+
space?: "local" | "global" | "both" | undefined;
|
|
201
|
+
include_rest?: boolean | undefined;
|
|
202
|
+
}, {
|
|
203
|
+
path: string;
|
|
204
|
+
target: "tree" | "player" | "bones";
|
|
205
|
+
instance?: string | undefined;
|
|
206
|
+
name?: string | undefined;
|
|
207
|
+
value?: string | number | boolean | undefined;
|
|
208
|
+
blend?: number | undefined;
|
|
209
|
+
state?: string | undefined;
|
|
210
|
+
position?: number | undefined;
|
|
211
|
+
speed?: number | undefined;
|
|
212
|
+
bones?: string[] | undefined;
|
|
213
|
+
cmd?: "pause" | "play" | "stop" | "state" | "seek" | "speed" | "travel" | "start" | "set_param" | "get_param" | undefined;
|
|
214
|
+
from_end?: boolean | undefined;
|
|
215
|
+
update?: boolean | undefined;
|
|
216
|
+
reset?: boolean | undefined;
|
|
217
|
+
param?: string | undefined;
|
|
218
|
+
playback_path?: string | undefined;
|
|
219
|
+
space?: "local" | "global" | "both" | undefined;
|
|
220
|
+
include_rest?: boolean | undefined;
|
|
221
|
+
}>;
|
|
222
|
+
export type RuntimeAnimateArgs = z.infer<typeof runtimeAnimateArgsSchema>;
|
|
223
|
+
export declare function buildRuntimeAnimateOp(args: RuntimeAnimateArgs): BuiltRuntimeOp;
|
|
224
|
+
export declare const gameControlArgsSchema: z.ZodObject<{
|
|
225
|
+
action: z.ZodEnum<["pause", "resume", "step", "speed", "instances"]>;
|
|
226
|
+
frames: z.ZodOptional<z.ZodNumber>;
|
|
227
|
+
kind: z.ZodOptional<z.ZodEnum<["physics", "process"]>>;
|
|
228
|
+
speed: z.ZodOptional<z.ZodNumber>;
|
|
229
|
+
instance: z.ZodOptional<z.ZodString>;
|
|
230
|
+
}, "strip", z.ZodTypeAny, {
|
|
231
|
+
action: "instances" | "pause" | "resume" | "speed" | "step";
|
|
232
|
+
instance?: string | undefined;
|
|
233
|
+
kind?: "physics" | "process" | undefined;
|
|
234
|
+
speed?: number | undefined;
|
|
235
|
+
frames?: number | undefined;
|
|
236
|
+
}, {
|
|
237
|
+
action: "instances" | "pause" | "resume" | "speed" | "step";
|
|
238
|
+
instance?: string | undefined;
|
|
239
|
+
kind?: "physics" | "process" | undefined;
|
|
240
|
+
speed?: number | undefined;
|
|
241
|
+
frames?: number | undefined;
|
|
242
|
+
}>;
|
|
243
|
+
export type GameControlArgs = z.infer<typeof gameControlArgsSchema>;
|
|
244
|
+
export declare function buildGameControlOp(args: GameControlArgs): BuiltRuntimeOp;
|
|
245
|
+
export declare const inputEventSchema: z.ZodObject<{
|
|
246
|
+
at_frame: z.ZodOptional<z.ZodNumber>;
|
|
247
|
+
at_ms: z.ZodOptional<z.ZodNumber>;
|
|
248
|
+
type: z.ZodEnum<["action", "key", "mouse_click", "axis", "raw"]>;
|
|
249
|
+
action: z.ZodOptional<z.ZodString>;
|
|
250
|
+
pressed: z.ZodOptional<z.ZodBoolean>;
|
|
251
|
+
strength: z.ZodOptional<z.ZodNumber>;
|
|
252
|
+
hold_ms: z.ZodOptional<z.ZodNumber>;
|
|
253
|
+
keycode: z.ZodOptional<z.ZodNumber>;
|
|
254
|
+
physical_keycode: z.ZodOptional<z.ZodNumber>;
|
|
255
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
256
|
+
button: z.ZodOptional<z.ZodNumber>;
|
|
257
|
+
action_negative: z.ZodOptional<z.ZodString>;
|
|
258
|
+
action_positive: z.ZodOptional<z.ZodString>;
|
|
259
|
+
duration_ms: z.ZodOptional<z.ZodNumber>;
|
|
260
|
+
class: z.ZodOptional<z.ZodString>;
|
|
261
|
+
props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
262
|
+
}, "strip", z.ZodTypeAny, {
|
|
263
|
+
type: "key" | "action" | "mouse_click" | "axis" | "raw";
|
|
264
|
+
action?: string | undefined;
|
|
265
|
+
button?: number | undefined;
|
|
266
|
+
class?: string | undefined;
|
|
267
|
+
position?: [number, number] | undefined;
|
|
268
|
+
props?: Record<string, unknown> | undefined;
|
|
269
|
+
at_frame?: number | undefined;
|
|
270
|
+
at_ms?: number | undefined;
|
|
271
|
+
pressed?: boolean | undefined;
|
|
272
|
+
strength?: number | undefined;
|
|
273
|
+
hold_ms?: number | undefined;
|
|
274
|
+
keycode?: number | undefined;
|
|
275
|
+
physical_keycode?: number | undefined;
|
|
276
|
+
action_negative?: string | undefined;
|
|
277
|
+
action_positive?: string | undefined;
|
|
278
|
+
duration_ms?: number | undefined;
|
|
279
|
+
}, {
|
|
280
|
+
type: "key" | "action" | "mouse_click" | "axis" | "raw";
|
|
281
|
+
action?: string | undefined;
|
|
282
|
+
button?: number | undefined;
|
|
283
|
+
class?: string | undefined;
|
|
284
|
+
position?: [number, number] | undefined;
|
|
285
|
+
props?: Record<string, unknown> | undefined;
|
|
286
|
+
at_frame?: number | undefined;
|
|
287
|
+
at_ms?: number | undefined;
|
|
288
|
+
pressed?: boolean | undefined;
|
|
289
|
+
strength?: number | undefined;
|
|
290
|
+
hold_ms?: number | undefined;
|
|
291
|
+
keycode?: number | undefined;
|
|
292
|
+
physical_keycode?: number | undefined;
|
|
293
|
+
action_negative?: string | undefined;
|
|
294
|
+
action_positive?: string | undefined;
|
|
295
|
+
duration_ms?: number | undefined;
|
|
296
|
+
}>;
|
|
297
|
+
export type InputEvent = z.infer<typeof inputEventSchema>;
|
|
298
|
+
export declare const gameInputArgsSchema: z.ZodObject<{
|
|
299
|
+
action: z.ZodEnum<["script", "record_start", "record_stop", "replay"]>;
|
|
300
|
+
events: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
301
|
+
at_frame: z.ZodOptional<z.ZodNumber>;
|
|
302
|
+
at_ms: z.ZodOptional<z.ZodNumber>;
|
|
303
|
+
type: z.ZodEnum<["action", "key", "mouse_click", "axis", "raw"]>;
|
|
304
|
+
action: z.ZodOptional<z.ZodString>;
|
|
305
|
+
pressed: z.ZodOptional<z.ZodBoolean>;
|
|
306
|
+
strength: z.ZodOptional<z.ZodNumber>;
|
|
307
|
+
hold_ms: z.ZodOptional<z.ZodNumber>;
|
|
308
|
+
keycode: z.ZodOptional<z.ZodNumber>;
|
|
309
|
+
physical_keycode: z.ZodOptional<z.ZodNumber>;
|
|
310
|
+
position: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
311
|
+
button: z.ZodOptional<z.ZodNumber>;
|
|
312
|
+
action_negative: z.ZodOptional<z.ZodString>;
|
|
313
|
+
action_positive: z.ZodOptional<z.ZodString>;
|
|
314
|
+
duration_ms: z.ZodOptional<z.ZodNumber>;
|
|
315
|
+
class: z.ZodOptional<z.ZodString>;
|
|
316
|
+
props: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
317
|
+
}, "strip", z.ZodTypeAny, {
|
|
318
|
+
type: "key" | "action" | "mouse_click" | "axis" | "raw";
|
|
319
|
+
action?: string | undefined;
|
|
320
|
+
button?: number | undefined;
|
|
321
|
+
class?: string | undefined;
|
|
322
|
+
position?: [number, number] | undefined;
|
|
323
|
+
props?: Record<string, unknown> | undefined;
|
|
324
|
+
at_frame?: number | undefined;
|
|
325
|
+
at_ms?: number | undefined;
|
|
326
|
+
pressed?: boolean | undefined;
|
|
327
|
+
strength?: number | undefined;
|
|
328
|
+
hold_ms?: number | undefined;
|
|
329
|
+
keycode?: number | undefined;
|
|
330
|
+
physical_keycode?: number | undefined;
|
|
331
|
+
action_negative?: string | undefined;
|
|
332
|
+
action_positive?: string | undefined;
|
|
333
|
+
duration_ms?: number | undefined;
|
|
334
|
+
}, {
|
|
335
|
+
type: "key" | "action" | "mouse_click" | "axis" | "raw";
|
|
336
|
+
action?: string | undefined;
|
|
337
|
+
button?: number | undefined;
|
|
338
|
+
class?: string | undefined;
|
|
339
|
+
position?: [number, number] | undefined;
|
|
340
|
+
props?: Record<string, unknown> | undefined;
|
|
341
|
+
at_frame?: number | undefined;
|
|
342
|
+
at_ms?: number | undefined;
|
|
343
|
+
pressed?: boolean | undefined;
|
|
344
|
+
strength?: number | undefined;
|
|
345
|
+
hold_ms?: number | undefined;
|
|
346
|
+
keycode?: number | undefined;
|
|
347
|
+
physical_keycode?: number | undefined;
|
|
348
|
+
action_negative?: string | undefined;
|
|
349
|
+
action_positive?: string | undefined;
|
|
350
|
+
duration_ms?: number | undefined;
|
|
351
|
+
}>, "many">>;
|
|
352
|
+
clock: z.ZodOptional<z.ZodEnum<["frame", "ms"]>>;
|
|
353
|
+
wait: z.ZodOptional<z.ZodBoolean>;
|
|
354
|
+
include_motion: z.ZodOptional<z.ZodBoolean>;
|
|
355
|
+
save_as: z.ZodOptional<z.ZodString>;
|
|
356
|
+
recording: z.ZodOptional<z.ZodString>;
|
|
357
|
+
seed: z.ZodOptional<z.ZodNumber>;
|
|
358
|
+
instance: z.ZodOptional<z.ZodString>;
|
|
359
|
+
}, "strip", z.ZodTypeAny, {
|
|
360
|
+
action: "script" | "record_start" | "record_stop" | "replay";
|
|
361
|
+
events?: {
|
|
362
|
+
type: "key" | "action" | "mouse_click" | "axis" | "raw";
|
|
363
|
+
action?: string | undefined;
|
|
364
|
+
button?: number | undefined;
|
|
365
|
+
class?: string | undefined;
|
|
366
|
+
position?: [number, number] | undefined;
|
|
367
|
+
props?: Record<string, unknown> | undefined;
|
|
368
|
+
at_frame?: number | undefined;
|
|
369
|
+
at_ms?: number | undefined;
|
|
370
|
+
pressed?: boolean | undefined;
|
|
371
|
+
strength?: number | undefined;
|
|
372
|
+
hold_ms?: number | undefined;
|
|
373
|
+
keycode?: number | undefined;
|
|
374
|
+
physical_keycode?: number | undefined;
|
|
375
|
+
action_negative?: string | undefined;
|
|
376
|
+
action_positive?: string | undefined;
|
|
377
|
+
duration_ms?: number | undefined;
|
|
378
|
+
}[] | undefined;
|
|
379
|
+
instance?: string | undefined;
|
|
380
|
+
seed?: number | undefined;
|
|
381
|
+
wait?: boolean | undefined;
|
|
382
|
+
clock?: "frame" | "ms" | undefined;
|
|
383
|
+
include_motion?: boolean | undefined;
|
|
384
|
+
save_as?: string | undefined;
|
|
385
|
+
recording?: string | undefined;
|
|
386
|
+
}, {
|
|
387
|
+
action: "script" | "record_start" | "record_stop" | "replay";
|
|
388
|
+
events?: {
|
|
389
|
+
type: "key" | "action" | "mouse_click" | "axis" | "raw";
|
|
390
|
+
action?: string | undefined;
|
|
391
|
+
button?: number | undefined;
|
|
392
|
+
class?: string | undefined;
|
|
393
|
+
position?: [number, number] | undefined;
|
|
394
|
+
props?: Record<string, unknown> | undefined;
|
|
395
|
+
at_frame?: number | undefined;
|
|
396
|
+
at_ms?: number | undefined;
|
|
397
|
+
pressed?: boolean | undefined;
|
|
398
|
+
strength?: number | undefined;
|
|
399
|
+
hold_ms?: number | undefined;
|
|
400
|
+
keycode?: number | undefined;
|
|
401
|
+
physical_keycode?: number | undefined;
|
|
402
|
+
action_negative?: string | undefined;
|
|
403
|
+
action_positive?: string | undefined;
|
|
404
|
+
duration_ms?: number | undefined;
|
|
405
|
+
}[] | undefined;
|
|
406
|
+
instance?: string | undefined;
|
|
407
|
+
seed?: number | undefined;
|
|
408
|
+
wait?: boolean | undefined;
|
|
409
|
+
clock?: "frame" | "ms" | undefined;
|
|
410
|
+
include_motion?: boolean | undefined;
|
|
411
|
+
save_as?: string | undefined;
|
|
412
|
+
recording?: string | undefined;
|
|
413
|
+
}>;
|
|
414
|
+
export type GameInputArgs = z.infer<typeof gameInputArgsSchema>;
|
|
415
|
+
/** Last-event horizon in frames (at_ms mapped at 60 fps, like the engine's pre-check). */
|
|
416
|
+
export declare function inputScriptHorizonFrames(events: Array<Record<string, unknown>>): number;
|
|
417
|
+
/** Engine watchdog for a waited script: min(20 s, max(10 s, horizon/60 + 3 s)). */
|
|
418
|
+
export declare function inputScriptWatchdogSec(horizonFrames: number, wait: boolean): number;
|
|
419
|
+
export declare function buildGameInputOp(args: GameInputArgs): BuiltRuntimeOp;
|
|
420
|
+
export declare const gameProbeArgsSchema: z.ZodObject<{
|
|
421
|
+
tree: z.ZodOptional<z.ZodObject<{
|
|
422
|
+
path: z.ZodOptional<z.ZodString>;
|
|
423
|
+
depth: z.ZodOptional<z.ZodNumber>;
|
|
424
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
425
|
+
}, "strip", z.ZodTypeAny, {
|
|
426
|
+
path?: string | undefined;
|
|
427
|
+
limit?: number | undefined;
|
|
428
|
+
depth?: number | undefined;
|
|
429
|
+
}, {
|
|
430
|
+
path?: string | undefined;
|
|
431
|
+
limit?: number | undefined;
|
|
432
|
+
depth?: number | undefined;
|
|
433
|
+
}>>;
|
|
434
|
+
props: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
435
|
+
screenshot: z.ZodOptional<z.ZodBoolean>;
|
|
436
|
+
max_dim: z.ZodOptional<z.ZodNumber>;
|
|
437
|
+
instance: z.ZodOptional<z.ZodString>;
|
|
438
|
+
}, "strip", z.ZodTypeAny, {
|
|
439
|
+
instance?: string | undefined;
|
|
440
|
+
tree?: {
|
|
441
|
+
path?: string | undefined;
|
|
442
|
+
limit?: number | undefined;
|
|
443
|
+
depth?: number | undefined;
|
|
444
|
+
} | undefined;
|
|
445
|
+
props?: string[] | undefined;
|
|
446
|
+
screenshot?: boolean | undefined;
|
|
447
|
+
max_dim?: number | undefined;
|
|
448
|
+
}, {
|
|
449
|
+
instance?: string | undefined;
|
|
450
|
+
tree?: {
|
|
451
|
+
path?: string | undefined;
|
|
452
|
+
limit?: number | undefined;
|
|
453
|
+
depth?: number | undefined;
|
|
454
|
+
} | undefined;
|
|
455
|
+
props?: string[] | undefined;
|
|
456
|
+
screenshot?: boolean | undefined;
|
|
457
|
+
max_dim?: number | undefined;
|
|
458
|
+
}>;
|
|
459
|
+
export type GameProbeArgs = z.infer<typeof gameProbeArgsSchema>;
|
|
460
|
+
export declare function buildGameProbeOp(args: GameProbeArgs): BuiltRuntimeOp;
|
|
461
|
+
/** The GameProbe result inside an ops envelope (or the bare op result). */
|
|
462
|
+
export declare function findProbePayload(result: unknown): Record<string, unknown> | null;
|
|
463
|
+
/** The same envelope with the image bytes removed (for text rendering and logs). */
|
|
464
|
+
export declare function stripProbeImage(result: unknown): unknown;
|
|
465
|
+
/** One-line frame stamp for a probe payload: which frame the state and the
|
|
466
|
+
* pixels describe, so a claim can cite it. */
|
|
467
|
+
export declare function probeFrameStamp(payload: Record<string, unknown>): string;
|
|
468
|
+
export declare const playGameExtensionSchema: {
|
|
469
|
+
instance: z.ZodOptional<z.ZodString>;
|
|
470
|
+
mode: z.ZodOptional<z.ZodEnum<["embedded", "offscreen"]>>;
|
|
471
|
+
deterministic: z.ZodOptional<z.ZodBoolean>;
|
|
472
|
+
seed: z.ZodOptional<z.ZodNumber>;
|
|
473
|
+
fixed_fps: z.ZodOptional<z.ZodNumber>;
|
|
474
|
+
time_scale: z.ZodOptional<z.ZodNumber>;
|
|
475
|
+
speed: z.ZodOptional<z.ZodNumber>;
|
|
476
|
+
focus: z.ZodOptional<z.ZodBoolean>;
|
|
477
|
+
};
|
|
478
|
+
export interface PlayGameArgs {
|
|
479
|
+
scene?: string;
|
|
480
|
+
instance?: string;
|
|
481
|
+
mode?: "embedded" | "offscreen";
|
|
482
|
+
deterministic?: boolean;
|
|
483
|
+
seed?: number;
|
|
484
|
+
fixed_fps?: number;
|
|
485
|
+
time_scale?: number;
|
|
486
|
+
speed?: number;
|
|
487
|
+
/** true = today's toolbar-style launch (Game tab + focus). Absent/false = quiet. */
|
|
488
|
+
focus?: boolean;
|
|
489
|
+
}
|
|
490
|
+
/**
|
|
491
|
+
* Quiet is the default whenever an agent drives play — both faces of this tool
|
|
492
|
+
* (MCP and `summer tool`) ARE agent faces, so the only way to a focus-stealing
|
|
493
|
+
* launch is an explicit focus:true. Quiet travels as PlayGame `agent:true`
|
|
494
|
+
* (debug_ops.cpp play_game -> GameView::set_agent_quiet_play), which the engine
|
|
495
|
+
* has honoured since 0.5.45 (c7c490d84f3, 2026-07-02).
|
|
496
|
+
*/
|
|
497
|
+
export declare function playIsQuiet(args: PlayGameArgs): boolean;
|
|
498
|
+
/** True when the call needs the PlayGame OP (instance-aware / determinism
|
|
499
|
+
* params) rather than the legacy /api/play route, which forwards only `scene`. */
|
|
500
|
+
export declare function playNeedsOp(args: PlayGameArgs): boolean;
|
|
501
|
+
/** True when the call addresses a non-main instance or an offscreen mode —
|
|
502
|
+
* the part of PlayGame that only a runtime-control engine understands. */
|
|
503
|
+
export declare function playTargetsInstance(args: PlayGameArgs): boolean;
|
|
504
|
+
export declare function buildPlayGameOp(args: PlayGameArgs): BuiltRuntimeOp;
|
|
505
|
+
export declare function buildStopGameOp(instance: string): BuiltRuntimeOp;
|
|
506
|
+
/**
|
|
507
|
+
* An engine that predates instance-aware PlayGame ignores `instance`/`mode`
|
|
508
|
+
* and starts the MAIN embedded game. When the caller asked for an instance
|
|
509
|
+
* and the result does not echo one, say so instead of letting the model
|
|
510
|
+
* believe a parallel instance is up.
|
|
511
|
+
*/
|
|
512
|
+
export declare function withPlayInstanceEcho(result: unknown, args: PlayGameArgs): unknown;
|
|
513
|
+
export declare const PLAY_QUIET_NOT_SUPPORTED = "This Summer Engine build did not echo `agent_quiet` in its PlayGame result \u2014 it predates quiet play and has most likely switched the editor to the Game tab and taken focus. Update Summer Engine (restart it after updating) for launches that leave the user's screen alone.";
|
|
514
|
+
/**
|
|
515
|
+
* Quiet was requested: the engine echoes `agent_quiet` when it understood the
|
|
516
|
+
* flag (debug_ops.cpp play_game — in the launch branch AND the already-running
|
|
517
|
+
* branch on current engines). No echo at all means an engine that predates
|
|
518
|
+
* the flag ignored it — say so instead of letting the model believe the user
|
|
519
|
+
* was left alone. The field is the contract; the `note` text is never matched.
|
|
520
|
+
*/
|
|
521
|
+
export declare function withPlayPostureEcho(result: unknown, args: PlayGameArgs): unknown;
|
|
522
|
+
/** The subset of EngineApiClient summer_play drives. Structural so tests can
|
|
523
|
+
* pass bare fakes; the capability getters come from CapabilityAdvertisingClient. */
|
|
524
|
+
export interface PlayGameClient extends CapabilityAdvertisingClient {
|
|
525
|
+
play(scene?: string): Promise<unknown>;
|
|
526
|
+
executeOps(ops: Array<Record<string, unknown>>, options?: undefined, timeoutMs?: number): Promise<unknown>;
|
|
527
|
+
}
|
|
528
|
+
/**
|
|
529
|
+
* summer_play, ONE implementation for both faces (MCP debug-tools.ts and the
|
|
530
|
+
* CLI dispatcher). Throws ToolInputError for a bad parameter combination
|
|
531
|
+
* (nothing sent); returns the engine envelope, a structured engine_lacks_op
|
|
532
|
+
* pre-flight result, or the envelope with the old-engine / posture / instance
|
|
533
|
+
* annotations. Each face only decides how to RENDER failures.
|
|
534
|
+
*
|
|
535
|
+
* Routing: focus:true with no other parameter is the legacy /api/play route,
|
|
536
|
+
* byte-for-byte the v1 call. Everything else — including the quiet default —
|
|
537
|
+
* travels as the explicit PlayGame op, because the /api/play rung copies only
|
|
538
|
+
* `scene` into the op and would drop agent/seed/instance.
|
|
539
|
+
*/
|
|
540
|
+
export declare function playGame(client: PlayGameClient, args: PlayGameArgs): Promise<unknown>;
|