summer-engine 2.8.2 → 3.1.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 +149 -44
- package/CLAUDE.md +4 -2
- package/GEMINI.md +7 -53
- package/NOTICE +31 -0
- package/README.md +161 -393
- 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/cli/commands/setup.js +158 -0
- package/dist/{commands → cli/commands}/skills.js +121 -251
- 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 +55 -0
- package/dist/core/skills-registry.js +106 -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/installer/agent-config.d.ts +63 -0
- package/dist/installer/agent-config.js +540 -0
- package/dist/installer/agent-table.d.ts +103 -0
- package/dist/installer/agent-table.js +584 -0
- 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 +148 -0
- package/dist/installer/skill-locations.d.ts +36 -0
- package/dist/installer/skill-locations.js +91 -0
- package/dist/installer/version-check.d.ts +178 -0
- package/dist/installer/version-check.js +479 -0
- 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 +99 -0
- package/integrations/amp/README.md +12 -0
- package/integrations/amp/manifest-target.json +3 -0
- package/integrations/antigravity/README.md +12 -0
- package/integrations/antigravity/manifest-target.json +3 -0
- package/integrations/claude/README.md +19 -0
- package/integrations/claude/manifest-target.json +16 -0
- package/integrations/claude-desktop/README.md +12 -0
- package/integrations/claude-desktop/manifest-target.json +3 -0
- package/integrations/cline/README.md +12 -0
- package/integrations/cline/manifest-target.json +3 -0
- package/integrations/cline-cli/README.md +12 -0
- package/integrations/cline-cli/manifest-target.json +3 -0
- package/integrations/codex/README.md +15 -0
- package/integrations/codex/manifest-target.json +5 -0
- package/integrations/copilot-jetbrains/README.md +12 -0
- package/integrations/copilot-jetbrains/manifest-target.json +3 -0
- package/integrations/crush/README.md +12 -0
- package/integrations/crush/manifest-target.json +3 -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/goose/README.md +12 -0
- package/integrations/goose/manifest-target.json +3 -0
- package/integrations/grok-build/README.md +12 -0
- package/integrations/grok-build/manifest-target.json +3 -0
- package/integrations/hermes/README.md +12 -0
- package/integrations/hermes/manifest-target.json +3 -0
- package/integrations/junie/README.md +12 -0
- package/integrations/junie/manifest-target.json +3 -0
- package/integrations/kilo-code/README.md +12 -0
- package/integrations/kilo-code/manifest-target.json +3 -0
- package/integrations/kimi-code/README.md +12 -0
- package/integrations/kimi-code/manifest-target.json +3 -0
- package/integrations/kiro/README.md +12 -0
- package/integrations/kiro/manifest-target.json +3 -0
- package/integrations/lm-studio/README.md +12 -0
- package/integrations/lm-studio/manifest-target.json +3 -0
- package/integrations/mistral-vibe/README.md +12 -0
- package/integrations/mistral-vibe/manifest-target.json +3 -0
- package/integrations/opencode/README.md +12 -0
- package/integrations/opencode/manifest-target.json +3 -0
- package/integrations/qoder/README.md +12 -0
- package/integrations/qoder/manifest-target.json +3 -0
- package/integrations/qwen-code/README.md +12 -0
- package/integrations/qwen-code/manifest-target.json +3 -0
- package/integrations/roo-code/README.md +14 -0
- package/integrations/roo-code/manifest-target.json +3 -0
- package/integrations/rovo-dev/README.md +12 -0
- package/integrations/rovo-dev/manifest-target.json +3 -0
- package/integrations/trae/README.md +12 -0
- package/integrations/trae/manifest-target.json +3 -0
- package/integrations/visual-studio/README.md +12 -0
- package/integrations/visual-studio/manifest-target.json +3 -0
- package/integrations/vscode-copilot/README.md +12 -0
- package/integrations/vscode-copilot/manifest-target.json +3 -0
- package/integrations/warp/README.md +12 -0
- package/integrations/warp/manifest-target.json +3 -0
- package/integrations/windsurf/README.md +12 -0
- package/integrations/windsurf/manifest-target.json +3 -0
- package/integrations/zed/README.md +12 -0
- package/integrations/zed/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/library/skills/README.md +242 -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/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 +22 -22
- 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 +8 -0
- 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/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/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 +21 -15
- 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-index.md +242 -0
- package/registry/generated/skills-registry.json +1249 -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/setup.js +0 -217
- package/dist/commands/status.js +0 -46
- package/dist/lib/agent-config.d.ts +0 -39
- package/dist/lib/agent-config.js +0 -626
- 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/lib/version-check.js +0 -338
- 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/multiplayer-and-networking → library/skills}/host-authoritative-state/SKILL.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/multiplayer-and-networking → library/skills}/setup-multiplayer/SKILL.md +0 -0
- /package/{skills/ui-and-ux → library/skills}/ui-basics/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,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engine receipt failure semantics — ONE copy, imported by both faces
|
|
3
|
+
* (src/mcp/tools/with-engine.ts and src/core/capabilities/tool-dispatch.ts).
|
|
4
|
+
*/
|
|
5
|
+
export type OpResult = {
|
|
6
|
+
ok?: boolean;
|
|
7
|
+
status?: string;
|
|
8
|
+
error?: string;
|
|
9
|
+
terminalState?: string;
|
|
10
|
+
errorClass?: string;
|
|
11
|
+
failureReason?: string;
|
|
12
|
+
failure_reason?: string;
|
|
13
|
+
results?: Array<{
|
|
14
|
+
ok?: boolean;
|
|
15
|
+
op?: string;
|
|
16
|
+
error?: string;
|
|
17
|
+
failureReason?: string;
|
|
18
|
+
failure_reason?: string;
|
|
19
|
+
}>;
|
|
20
|
+
};
|
|
21
|
+
export declare function getFailureReason(value: {
|
|
22
|
+
failureReason?: string;
|
|
23
|
+
failure_reason?: string;
|
|
24
|
+
}): string | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Decide whether an engine result envelope represents a FAILURE, and if so
|
|
27
|
+
* return a model-visible message. Returns null only for genuine success.
|
|
28
|
+
*
|
|
29
|
+
* Guards the two web bug classes (publicsummerengine cf17134f + contract.ts
|
|
30
|
+
* `isFailureSignal`):
|
|
31
|
+
* - a failure `terminalState` (anything other than applied/no_op) is a failure
|
|
32
|
+
* even when results[] is absent — the cf17134f "no-results envelope looked
|
|
33
|
+
* applied" masking. The poll loop surfaces timed_out/etc. here.
|
|
34
|
+
* - an explicit ok:false / status:"error" / failed op inside results[].
|
|
35
|
+
*
|
|
36
|
+
* Exported for unit tests.
|
|
37
|
+
*/
|
|
38
|
+
export declare function extractOpError(result: unknown): string | null;
|
|
39
|
+
/**
|
|
40
|
+
* An older engine answers an unknown op with a per-op "unknown op: <Kind>"
|
|
41
|
+
* (ops_executor.cpp fallthrough). Amend the envelope's error so the model gets
|
|
42
|
+
* the upgrade path instead of retrying, and stamp `failure_reason:
|
|
43
|
+
* "engine_lacks_op"` (+ `op`) so the result is detectable the same way as the
|
|
44
|
+
* capability pre-flight's MissingOpResult: programmatic callers read the
|
|
45
|
+
* field (the CLI prints the whole receipt), and extractOpError renders the
|
|
46
|
+
* classified failure as JSON. Engines WITH a capability advert never reach
|
|
47
|
+
* this — the pre-flight in missingEngineOpResult refuses before sending.
|
|
48
|
+
* A chunked mutation (executeSceneMutation) rewrites the envelope error into
|
|
49
|
+
* the "N earlier op(s) already applied" receipt, so the raw per-op text lives
|
|
50
|
+
* only inside results[] — both are read before deciding this is an old engine.
|
|
51
|
+
* Returns the input untouched when there is nothing to rewrite.
|
|
52
|
+
*/
|
|
53
|
+
export declare function withOldEngineHint(result: unknown, opName: string, fallback: string): unknown;
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engine receipt failure semantics — ONE copy, imported by both faces
|
|
3
|
+
* (src/mcp/tools/with-engine.ts and src/core/capabilities/tool-dispatch.ts).
|
|
4
|
+
*/
|
|
5
|
+
export function getFailureReason(value) {
|
|
6
|
+
return typeof value.failureReason === "string"
|
|
7
|
+
? value.failureReason
|
|
8
|
+
: typeof value.failure_reason === "string"
|
|
9
|
+
? value.failure_reason
|
|
10
|
+
: undefined;
|
|
11
|
+
}
|
|
12
|
+
// 0.5.34 Block E contract (publicsummerengine src/lib/tools/contract.ts §0.1).
|
|
13
|
+
// The async lifecycle (async-op-lifecycle.ts pollOpToTerminal) merges
|
|
14
|
+
// terminalState/errorClass onto the apply dict it returns. ONLY these two are
|
|
15
|
+
// "applied something / applied nothing-on-purpose" — every other terminal state
|
|
16
|
+
// means the op did NOT land and must be surfaced as a failure, not masked.
|
|
17
|
+
const SUCCESS_TERMINAL_STATES = new Set(["applied", "no_op"]);
|
|
18
|
+
// Human-readable fallback when the engine reports a failure terminalState but no
|
|
19
|
+
// `error` string (queue-full / lease-reject / identity-mismatch / no-progress
|
|
20
|
+
// timeout frequently arrive with terminalState set and results[] absent).
|
|
21
|
+
const TERMINAL_STATE_MESSAGES = {
|
|
22
|
+
timed_out: "Engine operation timed out. Its final state is unknown; inspect the target before retrying (summer_get_scene_tree / summer_world_snapshot / summer_read_file). To recover: break the work into smaller pieces — several short scripts or batches instead of one long one — raise the tool's max_seconds if it has one, and confirm the engine is still responsive (summer_get_project_context, or `summer doctor` from a shell).",
|
|
23
|
+
still_queued: "Summer Engine accepted the operation, but it was still queued when the client stopped waiting. It may still run; do NOT retry blindly — inspect the target first (summer_get_scene_tree / summer_world_snapshot), and if the queue stays stuck check whether the editor is busy (modal dialog, long import) or run `summer doctor`.",
|
|
24
|
+
still_running: "Summer Engine accepted and started the operation, but no final receipt arrived. It may still be running or may already have applied; inspect the target before retrying (summer_get_scene_tree / summer_world_snapshot / summer_read_file). For long jobs, split the work into smaller scripts/batches so each finishes inside its budget.",
|
|
25
|
+
uncertain: "Summer Engine did not provide a final operation receipt. The current state is uncertain; inspect the target before retrying (summer_get_scene_tree / summer_world_snapshot / summer_read_file), and verify the engine is healthy with summer_get_project_context.",
|
|
26
|
+
not_connected: "Summer Engine is not connected (terminalState: not_connected). Nothing was applied.",
|
|
27
|
+
identity_mismatch: "Operation rejected — wrong project/instance (terminalState: identity_mismatch). Nothing was mutated.",
|
|
28
|
+
content_mismatch: "Operation rejected — content changed since last read (terminalState: content_mismatch). Nothing was applied.",
|
|
29
|
+
denied: "Operation denied (terminalState: denied). Nothing was applied.",
|
|
30
|
+
canceled: "Operation canceled (terminalState: canceled). Nothing was applied.",
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Decide whether an engine result envelope represents a FAILURE, and if so
|
|
34
|
+
* return a model-visible message. Returns null only for genuine success.
|
|
35
|
+
*
|
|
36
|
+
* Guards the two web bug classes (publicsummerengine cf17134f + contract.ts
|
|
37
|
+
* `isFailureSignal`):
|
|
38
|
+
* - a failure `terminalState` (anything other than applied/no_op) is a failure
|
|
39
|
+
* even when results[] is absent — the cf17134f "no-results envelope looked
|
|
40
|
+
* applied" masking. The poll loop surfaces timed_out/etc. here.
|
|
41
|
+
* - an explicit ok:false / status:"error" / failed op inside results[].
|
|
42
|
+
*
|
|
43
|
+
* Exported for unit tests.
|
|
44
|
+
*/
|
|
45
|
+
export function extractOpError(result) {
|
|
46
|
+
if (!result || typeof result !== "object")
|
|
47
|
+
return null;
|
|
48
|
+
const op = result;
|
|
49
|
+
const firstFailed = op.results?.find((r) => r.ok === false);
|
|
50
|
+
// The engine stamps failure classifiers on the envelope OR per-op inside
|
|
51
|
+
// results[] (the batch gate does the latter) — read both.
|
|
52
|
+
const failureReason = getFailureReason(op) ?? (firstFailed ? getFailureReason(firstFailed) : undefined);
|
|
53
|
+
// Classified failures are rendered as JSON so callers can reliably read
|
|
54
|
+
// failure_reason instead of scraping a sentence. A plain-text "Hint:" line may
|
|
55
|
+
// follow the JSON in the final tool text. Unclassified failures stay plain.
|
|
56
|
+
const classify = (message) => {
|
|
57
|
+
if (!failureReason)
|
|
58
|
+
return message;
|
|
59
|
+
return JSON.stringify({
|
|
60
|
+
error: message,
|
|
61
|
+
failure_reason: failureReason,
|
|
62
|
+
...(typeof firstFailed?.error === "string" && firstFailed.error.length > 0 && firstFailed.error !== message
|
|
63
|
+
? { op_error: firstFailed.error }
|
|
64
|
+
: {}),
|
|
65
|
+
...(typeof firstFailed?.op === "string" ? { op: firstFailed.op } : {}),
|
|
66
|
+
...(typeof op.terminalState === "string" ? { terminalState: op.terminalState } : {}),
|
|
67
|
+
...(typeof op.errorClass === "string" ? { errorClass: op.errorClass } : {}),
|
|
68
|
+
}, null, 2);
|
|
69
|
+
};
|
|
70
|
+
// Failure terminalState takes precedence — it is set by the async lifecycle
|
|
71
|
+
// exactly when the op did not land (timeout, backpressure, lease/identity
|
|
72
|
+
// rejection, cancellation), sometimes with NO results[] to inspect. Prefer the
|
|
73
|
+
// precise engine rejection (envelope error, then the failed op's error) over
|
|
74
|
+
// the generic terminal-state sentence.
|
|
75
|
+
const ts = op.terminalState;
|
|
76
|
+
if (typeof ts === "string" && ts.length > 0 && !SUCCESS_TERMINAL_STATES.has(ts)) {
|
|
77
|
+
const message = (typeof op.error === "string" && op.error.length > 0 && op.error) ||
|
|
78
|
+
(typeof firstFailed?.error === "string" && firstFailed.error.length > 0 && firstFailed.error) ||
|
|
79
|
+
TERMINAL_STATE_MESSAGES[ts] ||
|
|
80
|
+
`Engine operation failed (terminalState: ${ts}).`;
|
|
81
|
+
return classify(message);
|
|
82
|
+
}
|
|
83
|
+
// An explicit ok:false / status:"error" / failed op inside results[] is a
|
|
84
|
+
// failure even when the engine omitted an error string — surface it rather
|
|
85
|
+
// than mask it (matches the web contract `isFailureSignal`). The envelope
|
|
86
|
+
// error is kept when present; the failed op's own error backs it up.
|
|
87
|
+
if (op.ok === false || op.status === "error" || firstFailed) {
|
|
88
|
+
const message = (typeof op.error === "string" && op.error.length > 0 && op.error) ||
|
|
89
|
+
(typeof firstFailed?.error === "string" && firstFailed.error.length > 0 && firstFailed.error) ||
|
|
90
|
+
(firstFailed
|
|
91
|
+
? `Engine op failed${firstFailed.op ? ` (${firstFailed.op})` : ""}.`
|
|
92
|
+
: op.ok === false
|
|
93
|
+
? "Engine operation failed (ok: false)."
|
|
94
|
+
: "Engine operation failed (status: error).");
|
|
95
|
+
return classify(message);
|
|
96
|
+
}
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
/** The per-op text an older engine answers for a Kind its dispatch ladder does
|
|
100
|
+
* not know (ops_executor.cpp fallthrough: `unknown op: <Kind>`). */
|
|
101
|
+
const UNKNOWN_OP_PATTERN = /unknown op/i;
|
|
102
|
+
/**
|
|
103
|
+
* An older engine answers an unknown op with a per-op "unknown op: <Kind>"
|
|
104
|
+
* (ops_executor.cpp fallthrough). Amend the envelope's error so the model gets
|
|
105
|
+
* the upgrade path instead of retrying, and stamp `failure_reason:
|
|
106
|
+
* "engine_lacks_op"` (+ `op`) so the result is detectable the same way as the
|
|
107
|
+
* capability pre-flight's MissingOpResult: programmatic callers read the
|
|
108
|
+
* field (the CLI prints the whole receipt), and extractOpError renders the
|
|
109
|
+
* classified failure as JSON. Engines WITH a capability advert never reach
|
|
110
|
+
* this — the pre-flight in missingEngineOpResult refuses before sending.
|
|
111
|
+
* A chunked mutation (executeSceneMutation) rewrites the envelope error into
|
|
112
|
+
* the "N earlier op(s) already applied" receipt, so the raw per-op text lives
|
|
113
|
+
* only inside results[] — both are read before deciding this is an old engine.
|
|
114
|
+
* Returns the input untouched when there is nothing to rewrite.
|
|
115
|
+
*/
|
|
116
|
+
export function withOldEngineHint(result, opName, fallback) {
|
|
117
|
+
const opError = extractOpError(result);
|
|
118
|
+
if (!opError)
|
|
119
|
+
return result;
|
|
120
|
+
const envelope = (result ?? {});
|
|
121
|
+
const failedOpError = envelope.results?.find((entry) => entry.ok === false && typeof entry.error === "string")
|
|
122
|
+
?.error;
|
|
123
|
+
const engineSaid = (typeof envelope.error === "string" && envelope.error) || failedOpError || opError;
|
|
124
|
+
if (!UNKNOWN_OP_PATTERN.test(opError) && !UNKNOWN_OP_PATTERN.test(failedOpError ?? ""))
|
|
125
|
+
return result;
|
|
126
|
+
return {
|
|
127
|
+
...envelope,
|
|
128
|
+
op: opName,
|
|
129
|
+
failure_reason: "engine_lacks_op",
|
|
130
|
+
error: `This Summer Engine build doesn't support ${opName} yet — ` +
|
|
131
|
+
`${fallback}, or update Summer Engine (restart it after updating). ` +
|
|
132
|
+
`Engine said: ${failedOpError ?? engineSaid}`,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Engine events channel — the ONE implementation behind summer_wait_for_event,
|
|
3
|
+
* summer_recent_events (MCP + `summer tool`) and `summer events` (CLI).
|
|
4
|
+
*
|
|
5
|
+
* Transport: GET /api/events/poll, the engine's long-poll route
|
|
6
|
+
* ({events:[{seq, kind, ts, data}], next_seq, last_seq, since, truncated,
|
|
7
|
+
* timed_out}). The SSE route (GET /api/events) is deliberately NOT consumed in
|
|
8
|
+
* v1 — the poll loop is the portable path through MCP hosts and proxies; an
|
|
9
|
+
* SSE client is a follow-up.
|
|
10
|
+
*
|
|
11
|
+
* Two rules every caller inherits:
|
|
12
|
+
* - `seq` is a monotonic cursor. A result's next_seq is the `since` of the
|
|
13
|
+
* next call; events are delivered live from `since`, so a caller who might
|
|
14
|
+
* miss an event that fires immediately takes a cursor FIRST (recentEvents)
|
|
15
|
+
* and passes it as `since`.
|
|
16
|
+
* - timed_out:true is reported as exactly that — no match arrived — never
|
|
17
|
+
* coerced into a failure or a success.
|
|
18
|
+
*
|
|
19
|
+
* Whether the engine HAS the channel is decided before anything is sent by
|
|
20
|
+
* missingEngineEventsResult (core/capability-skew.ts); this module carries the
|
|
21
|
+
* post-hoc twin for engines reached with the pre-flight off (HTTP 404).
|
|
22
|
+
*/
|
|
23
|
+
import { z } from "zod";
|
|
24
|
+
import type { EventsPollParams } from "../api-client.js";
|
|
25
|
+
import { type CapabilityAdvertisingClient } from "../capability-skew.js";
|
|
26
|
+
/** Event kinds v1 (SCENE_SCRIPTING_CONTRACTS.md, the engine scene-scripting contracts). sys.* transport
|
|
27
|
+
* frames (sys.gap, sys.closed) are not kinds: never in the ring, never
|
|
28
|
+
* filterable, surfaced separately below. */
|
|
29
|
+
export declare const EVENT_KINDS_V1: readonly ["op.applied", "op.failed", "script.error", "play.started", "play.stopped", "scene.saved", "scene.opened", "import.completed", "selection.changed", "snapshot.published"];
|
|
30
|
+
export declare const WAIT_DEFAULT_SECONDS = 30;
|
|
31
|
+
export declare const WAIT_MIN_SECONDS = 1;
|
|
32
|
+
export declare const WAIT_MAX_SECONDS = 120;
|
|
33
|
+
/** Each held poll stays under this: below typical proxy/host idle limits and
|
|
34
|
+
* under the engine's own 60 s cap. The wait loop chains slices. */
|
|
35
|
+
export declare const POLL_SLICE_MS = 25000;
|
|
36
|
+
export declare const WAIT_MAX_EVENTS_DEFAULT = 20;
|
|
37
|
+
/** Engine cap on `limit` per poll answer. */
|
|
38
|
+
export declare const POLL_LIMIT_CAP = 500;
|
|
39
|
+
export declare const RECENT_LIMIT_DEFAULT = 50;
|
|
40
|
+
export declare const RECENT_LIMIT_CAP = 200;
|
|
41
|
+
/** Pacing sleep after a zero-event answer that came back before its `wait`
|
|
42
|
+
* elapsed (an engine that answers held polls early would otherwise spin the
|
|
43
|
+
* loop). Exported for the CLI follow loop. */
|
|
44
|
+
export declare const PACING_MS = 250;
|
|
45
|
+
export interface EngineEvent {
|
|
46
|
+
seq: number;
|
|
47
|
+
kind: string;
|
|
48
|
+
/** unix ms */
|
|
49
|
+
ts?: number;
|
|
50
|
+
data?: unknown;
|
|
51
|
+
}
|
|
52
|
+
/** A sys.* transport frame delivered inside a poll page. */
|
|
53
|
+
export interface EventsFrame {
|
|
54
|
+
kind: string;
|
|
55
|
+
data?: unknown;
|
|
56
|
+
}
|
|
57
|
+
/** The client surface this module needs — EngineApiClient satisfies it. */
|
|
58
|
+
export interface EventsClient extends CapabilityAdvertisingClient {
|
|
59
|
+
pollEvents(params?: EventsPollParams, timeoutMs?: number): Promise<unknown>;
|
|
60
|
+
}
|
|
61
|
+
export declare const waitForEventArgsSchema: z.ZodObject<{
|
|
62
|
+
kinds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
63
|
+
since: z.ZodOptional<z.ZodNumber>;
|
|
64
|
+
timeout_seconds: z.ZodOptional<z.ZodNumber>;
|
|
65
|
+
match: z.ZodOptional<z.ZodObject<{
|
|
66
|
+
requestId: z.ZodOptional<z.ZodString>;
|
|
67
|
+
}, "strip", z.ZodTypeAny, {
|
|
68
|
+
requestId?: string | undefined;
|
|
69
|
+
}, {
|
|
70
|
+
requestId?: string | undefined;
|
|
71
|
+
}>>;
|
|
72
|
+
max_events: z.ZodOptional<z.ZodNumber>;
|
|
73
|
+
}, "strip", z.ZodTypeAny, {
|
|
74
|
+
match?: {
|
|
75
|
+
requestId?: string | undefined;
|
|
76
|
+
} | undefined;
|
|
77
|
+
kinds?: string[] | undefined;
|
|
78
|
+
since?: number | undefined;
|
|
79
|
+
timeout_seconds?: number | undefined;
|
|
80
|
+
max_events?: number | undefined;
|
|
81
|
+
}, {
|
|
82
|
+
match?: {
|
|
83
|
+
requestId?: string | undefined;
|
|
84
|
+
} | undefined;
|
|
85
|
+
kinds?: string[] | undefined;
|
|
86
|
+
since?: number | undefined;
|
|
87
|
+
timeout_seconds?: number | undefined;
|
|
88
|
+
max_events?: number | undefined;
|
|
89
|
+
}>;
|
|
90
|
+
export type WaitForEventArgs = z.infer<typeof waitForEventArgsSchema>;
|
|
91
|
+
export declare const recentEventsArgsSchema: z.ZodObject<{
|
|
92
|
+
since: z.ZodOptional<z.ZodNumber>;
|
|
93
|
+
kinds: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
94
|
+
limit: z.ZodOptional<z.ZodNumber>;
|
|
95
|
+
}, "strip", z.ZodTypeAny, {
|
|
96
|
+
kinds?: string[] | undefined;
|
|
97
|
+
since?: number | undefined;
|
|
98
|
+
limit?: number | undefined;
|
|
99
|
+
}, {
|
|
100
|
+
kinds?: string[] | undefined;
|
|
101
|
+
since?: number | undefined;
|
|
102
|
+
limit?: number | undefined;
|
|
103
|
+
}>;
|
|
104
|
+
export type RecentEventsArgs = z.infer<typeof recentEventsArgsSchema>;
|
|
105
|
+
export interface WaitForEventResult {
|
|
106
|
+
ok: true;
|
|
107
|
+
/** True when at least one event matched; events is then non-empty. */
|
|
108
|
+
matched: boolean;
|
|
109
|
+
events: EngineEvent[];
|
|
110
|
+
/** Cursor for the next call. null only when the engine never reported one. */
|
|
111
|
+
next_seq: number | null;
|
|
112
|
+
/** The cursor this wait started from (the engine's live head when omitted). */
|
|
113
|
+
since: number | null;
|
|
114
|
+
/** True when timeout_seconds elapsed with no match. Not a failure — and not
|
|
115
|
+
* evidence the awaited thing did not happen. */
|
|
116
|
+
timed_out: boolean;
|
|
117
|
+
waited_ms: number;
|
|
118
|
+
polls: number;
|
|
119
|
+
kinds: string[] | "all";
|
|
120
|
+
match?: {
|
|
121
|
+
requestId: string;
|
|
122
|
+
};
|
|
123
|
+
/** sys.gap payload when events between since and the oldest retained were
|
|
124
|
+
* evicted — the stream is not gapless; re-read state. */
|
|
125
|
+
gap?: unknown;
|
|
126
|
+
/** The page that produced the match was full; more matches may follow from next_seq. */
|
|
127
|
+
truncated?: boolean;
|
|
128
|
+
hint?: string;
|
|
129
|
+
}
|
|
130
|
+
export interface RecentEventsResult {
|
|
131
|
+
ok: true;
|
|
132
|
+
events: EngineEvent[];
|
|
133
|
+
count: number;
|
|
134
|
+
next_seq: number | null;
|
|
135
|
+
last_seq: number | null;
|
|
136
|
+
/** The cursor the read started from. */
|
|
137
|
+
since: number | null;
|
|
138
|
+
/** How `since` was chosen: the caller's value, or the newest-`limit` window. */
|
|
139
|
+
window: "since" | "newest" | "ring";
|
|
140
|
+
truncated: boolean;
|
|
141
|
+
kinds: string[] | "all";
|
|
142
|
+
gap?: unknown;
|
|
143
|
+
hint: string;
|
|
144
|
+
}
|
|
145
|
+
/** Any structured failure: engine_lacks_events, unknown_event_kind, an
|
|
146
|
+
* identity_mismatch terminalState, a 503, ... Both faces classify it by its
|
|
147
|
+
* fields (MCP isError, CLI ToolResultError). */
|
|
148
|
+
export type EventsFailure = Record<string, unknown> & {
|
|
149
|
+
ok: false;
|
|
150
|
+
};
|
|
151
|
+
/** Trim, drop empties, dedupe, keep order. */
|
|
152
|
+
export declare function normalizeKinds(kinds: readonly string[] | undefined): string[];
|
|
153
|
+
/**
|
|
154
|
+
* Refuse kinds the engine cannot emit — waiting on one would only time out.
|
|
155
|
+
* Decidable only when the engine advertises `capabilities.events.kinds`; an
|
|
156
|
+
* engine without the list lets every kind through (forward-compatible with
|
|
157
|
+
* kinds newer than this CLI).
|
|
158
|
+
*/
|
|
159
|
+
export declare function unknownKindsFailure(kinds: readonly string[], client: CapabilityAdvertisingClient): EventsFailure | null;
|
|
160
|
+
export interface ParsedPollPage {
|
|
161
|
+
events: EngineEvent[];
|
|
162
|
+
frames: EventsFrame[];
|
|
163
|
+
next_seq?: number;
|
|
164
|
+
last_seq?: number;
|
|
165
|
+
since?: number;
|
|
166
|
+
truncated: boolean;
|
|
167
|
+
timed_out: boolean;
|
|
168
|
+
}
|
|
169
|
+
/** Shape-tolerant read of a poll envelope: ring events need a numeric seq and
|
|
170
|
+
* a string kind; sys.* frames are split out (they may carry no seq). */
|
|
171
|
+
export declare function parsePollPage(raw: unknown): ParsedPollPage;
|
|
172
|
+
/**
|
|
173
|
+
* A poll answer that is a structured failure, or null on a 2xx envelope. The
|
|
174
|
+
* post-hoc twin of the missingEngineEventsResult pre-flight: an engine that
|
|
175
|
+
* answers HTTP 404 for the poll route has no channel (reachable only with
|
|
176
|
+
* SUMMER_CAPABILITY_PREFLIGHT=off, or an advert that lies), so the answer is
|
|
177
|
+
* rewritten into the same engine_lacks_events shape the pre-flight returns.
|
|
178
|
+
*/
|
|
179
|
+
export declare function eventsFailure(page: unknown, client: CapabilityAdvertisingClient): EventsFailure | null;
|
|
180
|
+
/** op.* events match only when data.requestId equals the requested id; every
|
|
181
|
+
* other kind passes. */
|
|
182
|
+
export declare function selectMatches(events: readonly EngineEvent[], requestId?: string): EngineEvent[];
|
|
183
|
+
export interface EventsDeps {
|
|
184
|
+
now?: () => number;
|
|
185
|
+
sleep?: (ms: number) => Promise<void>;
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Long-poll the engine in slices of at most POLL_SLICE_MS until an event
|
|
189
|
+
* passes the kinds + match filters, or timeout_seconds elapses. Every poll
|
|
190
|
+
* feeds the engine's next_seq back as `since`, so nothing between slices is
|
|
191
|
+
* skipped; sys.gap frames are surfaced (never counted as a match).
|
|
192
|
+
*/
|
|
193
|
+
export declare function waitForEvent(client: EventsClient, args: WaitForEventArgs, deps?: EventsDeps): Promise<WaitForEventResult | EventsFailure>;
|
|
194
|
+
/**
|
|
195
|
+
* One zero-wait read. `since` given: everything after it (paged by limit).
|
|
196
|
+
* `since` omitted: the newest `limit` sequence numbers — the poll route has no
|
|
197
|
+
* "tail" mode, so this costs two zero-wait calls (learn last_seq, then read
|
|
198
|
+
* from last_seq - limit). `since: 0` pages the retained ring from the oldest.
|
|
199
|
+
*/
|
|
200
|
+
export declare function recentEvents(client: EventsClient, args: RecentEventsArgs): Promise<RecentEventsResult | EventsFailure>;
|