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,76 @@
|
|
|
1
|
+
import { SupportedAgent } from "./agent-config.js";
|
|
2
|
+
export interface SkillSetupResult {
|
|
3
|
+
status: "installed" | "planned" | "skipped" | "failed";
|
|
4
|
+
message: string;
|
|
5
|
+
command?: string[];
|
|
6
|
+
stdout?: string;
|
|
7
|
+
stderr?: string;
|
|
8
|
+
/** Number of skills selected for install (all, or the recommended subset). */
|
|
9
|
+
count?: number;
|
|
10
|
+
/** Preview skills installed alongside the stable ones (the default). */
|
|
11
|
+
previewIncluded?: number;
|
|
12
|
+
/** Preview skills left out because --stable-only was given. */
|
|
13
|
+
previewSkipped?: number;
|
|
14
|
+
/** Where the skills land, e.g. "~/.claude/skills/<skill>/SKILL.md". */
|
|
15
|
+
destination?: string;
|
|
16
|
+
/** Post-install tallies parsed from `skills install` output. */
|
|
17
|
+
installed?: {
|
|
18
|
+
total: number;
|
|
19
|
+
added: number;
|
|
20
|
+
updated: number;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export interface SkillInstallInvocation {
|
|
24
|
+
command: string;
|
|
25
|
+
args: string[];
|
|
26
|
+
display: string[];
|
|
27
|
+
}
|
|
28
|
+
export interface SkillSetupOptions {
|
|
29
|
+
dryRun: boolean;
|
|
30
|
+
yes: boolean;
|
|
31
|
+
force: boolean;
|
|
32
|
+
/** Skills scope; defaults to the MCP scope so both land in the same place. */
|
|
33
|
+
scope?: "user" | "project";
|
|
34
|
+
/** Install only `recommended: true` skills instead of the whole library. */
|
|
35
|
+
recommended?: boolean;
|
|
36
|
+
/** Skip `status: preview` skills. By default they install like any other
|
|
37
|
+
* skill — preview is a label carried in the skill's guidance, not a gate. */
|
|
38
|
+
stableOnly?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The preview clause of the setup summary — one wording for the result message
|
|
42
|
+
* and the CLI line, e.g. "10 preview — labelled in each skill's guidance; use
|
|
43
|
+
* --stable-only to skip". Empty when there is nothing to say.
|
|
44
|
+
*/
|
|
45
|
+
export declare function previewNote(result: {
|
|
46
|
+
previewIncluded?: number;
|
|
47
|
+
previewSkipped?: number;
|
|
48
|
+
}): string;
|
|
49
|
+
/**
|
|
50
|
+
* Install the Summer skill library for an agent as part of `summer setup`.
|
|
51
|
+
*
|
|
52
|
+
* Installs EVERY library skill by default: skills are progressive-disclosure
|
|
53
|
+
* (name + description in context, body on activation), and the session entry
|
|
54
|
+
* skill `using-summer` is not in the recommended subset, so a
|
|
55
|
+
* recommended-only default left the documented starting point uninstalled.
|
|
56
|
+
* `--recommended` keeps the smaller subset as an opt-in; `--stable-only` drops
|
|
57
|
+
* the preview skills (installed by default, labelled in their guidance).
|
|
58
|
+
*/
|
|
59
|
+
export declare function setupSkills(agent: SupportedAgent, options: SkillSetupOptions): SkillSetupResult;
|
|
60
|
+
/** @deprecated use setupSkills; kept for older callers. */
|
|
61
|
+
export declare const setupRecommendedSkills: (agent: SupportedAgent, options: {
|
|
62
|
+
dryRun: boolean;
|
|
63
|
+
yes: boolean;
|
|
64
|
+
force: boolean;
|
|
65
|
+
}) => SkillSetupResult;
|
|
66
|
+
/**
|
|
67
|
+
* Count `skills install` result lines. Directory installs print
|
|
68
|
+
* "Installed <skill> -> <path>" for new copies and "Updated <skill> -> <path>"
|
|
69
|
+
* for re-installs; rule-file agents (Cursor, Cline, ...) always print
|
|
70
|
+
* "Generated <skill> -> <path>" and are counted as updated-or-new (added).
|
|
71
|
+
*/
|
|
72
|
+
export declare function tallyInstallOutput(stdout: string): {
|
|
73
|
+
total: number;
|
|
74
|
+
added: number;
|
|
75
|
+
updated: number;
|
|
76
|
+
};
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { spawnSync } from "child_process";
|
|
2
|
+
import { AGENT_CLIENTS, getSkillRegistry, selectSkillsForBulkInstall, } from "../core/skills-registry.js";
|
|
3
|
+
import { describeInstallLocation, resolveInstallLocation } from "./skill-locations.js";
|
|
4
|
+
import { agentSpec } from "./agent-table.js";
|
|
5
|
+
/**
|
|
6
|
+
* The preview clause of the setup summary — one wording for the result message
|
|
7
|
+
* and the CLI line, e.g. "10 preview — labelled in each skill's guidance; use
|
|
8
|
+
* --stable-only to skip". Empty when there is nothing to say.
|
|
9
|
+
*/
|
|
10
|
+
export function previewNote(result) {
|
|
11
|
+
if (result.previewIncluded) {
|
|
12
|
+
return `${result.previewIncluded} preview — labelled in each skill's guidance; use --stable-only to skip`;
|
|
13
|
+
}
|
|
14
|
+
if (result.previewSkipped) {
|
|
15
|
+
return `${result.previewSkipped} preview skipped by --stable-only`;
|
|
16
|
+
}
|
|
17
|
+
return "";
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Install the Summer skill library for an agent as part of `summer setup`.
|
|
21
|
+
*
|
|
22
|
+
* Installs EVERY library skill by default: skills are progressive-disclosure
|
|
23
|
+
* (name + description in context, body on activation), and the session entry
|
|
24
|
+
* skill `using-summer` is not in the recommended subset, so a
|
|
25
|
+
* recommended-only default left the documented starting point uninstalled.
|
|
26
|
+
* `--recommended` keeps the smaller subset as an opt-in; `--stable-only` drops
|
|
27
|
+
* the preview skills (installed by default, labelled in their guidance).
|
|
28
|
+
*/
|
|
29
|
+
export function setupSkills(agent, options) {
|
|
30
|
+
const spec = agentSpec(agent);
|
|
31
|
+
if (!spec.skills) {
|
|
32
|
+
return {
|
|
33
|
+
status: "skipped",
|
|
34
|
+
message: spec.noSkillsNote ?? `${spec.label} has no skills folder; the MCP server alone is configured.`,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const scope = options.scope ?? "user";
|
|
38
|
+
const recommended = Boolean(options.recommended);
|
|
39
|
+
const stableOnly = Boolean(options.stableOnly);
|
|
40
|
+
const invocation = skillInstallInvocation(agent, {
|
|
41
|
+
force: options.force,
|
|
42
|
+
scope,
|
|
43
|
+
recommended,
|
|
44
|
+
stableOnly,
|
|
45
|
+
});
|
|
46
|
+
if (!invocation) {
|
|
47
|
+
return {
|
|
48
|
+
status: "skipped",
|
|
49
|
+
message: "No automatic skill installer is available for this agent yet. Run `summer skills install --all` and point the agent at the installed SKILL.md files.",
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const { selected, previewIncluded, previewSkipped } = selectSkillsForBulkInstall(getSkillRegistry(), { recommended, stableOnly });
|
|
53
|
+
const count = selected.length;
|
|
54
|
+
const note = previewNote({ previewIncluded, previewSkipped });
|
|
55
|
+
const destination = isAgentClient(agent)
|
|
56
|
+
? describeInstallLocation(resolveInstallLocation(agent, scope))
|
|
57
|
+
: undefined;
|
|
58
|
+
const subset = recommended ? "recommended " : "";
|
|
59
|
+
if (options.dryRun || !options.yes) {
|
|
60
|
+
return {
|
|
61
|
+
status: "planned",
|
|
62
|
+
command: invocation.display,
|
|
63
|
+
count,
|
|
64
|
+
previewIncluded,
|
|
65
|
+
previewSkipped,
|
|
66
|
+
destination,
|
|
67
|
+
message: `Would install ${count} ${subset}skills${note ? ` (${note})` : ""} to ${destination ?? "the agent's skills directory"} with: ${invocation.display.join(" ")}`,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
const result = spawnSync(invocation.command, invocation.args, {
|
|
71
|
+
env: process.env,
|
|
72
|
+
encoding: "utf-8",
|
|
73
|
+
});
|
|
74
|
+
if (result.status === 0) {
|
|
75
|
+
const installed = tallyInstallOutput(result.stdout);
|
|
76
|
+
return {
|
|
77
|
+
status: "installed",
|
|
78
|
+
command: invocation.display,
|
|
79
|
+
count,
|
|
80
|
+
previewIncluded,
|
|
81
|
+
previewSkipped,
|
|
82
|
+
destination,
|
|
83
|
+
installed,
|
|
84
|
+
message: `Installed ${installed.total} ${subset}skills (${installed.added} new, ${installed.updated} updated${note ? `; ${note}` : ""}).`,
|
|
85
|
+
stdout: result.stdout.trim(),
|
|
86
|
+
stderr: result.stderr.trim(),
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
return {
|
|
90
|
+
status: "failed",
|
|
91
|
+
command: invocation.display,
|
|
92
|
+
count,
|
|
93
|
+
destination,
|
|
94
|
+
message: `Skill install failed with exit code ${result.status ?? "unknown"}.`,
|
|
95
|
+
stdout: result.stdout.trim(),
|
|
96
|
+
stderr: result.stderr.trim(),
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
/** @deprecated use setupSkills; kept for older callers. */
|
|
100
|
+
export const setupRecommendedSkills = (agent, options) => setupSkills(agent, { ...options, recommended: true });
|
|
101
|
+
function isAgentClient(agent) {
|
|
102
|
+
return AGENT_CLIENTS.includes(agent);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Count `skills install` result lines. Directory installs print
|
|
106
|
+
* "Installed <skill> -> <path>" for new copies and "Updated <skill> -> <path>"
|
|
107
|
+
* for re-installs; rule-file agents (Cursor, Cline, ...) always print
|
|
108
|
+
* "Generated <skill> -> <path>" and are counted as updated-or-new (added).
|
|
109
|
+
*/
|
|
110
|
+
export function tallyInstallOutput(stdout) {
|
|
111
|
+
let added = 0;
|
|
112
|
+
let updated = 0;
|
|
113
|
+
for (const line of stdout.split("\n")) {
|
|
114
|
+
const m = line.match(/^\s*(Installed|Updated|Generated)\s+([a-z0-9-]+)\s+->/i);
|
|
115
|
+
if (!m)
|
|
116
|
+
continue;
|
|
117
|
+
if (m[1].toLowerCase() === "updated")
|
|
118
|
+
updated += 1;
|
|
119
|
+
else
|
|
120
|
+
added += 1;
|
|
121
|
+
}
|
|
122
|
+
return { total: added + updated, added, updated };
|
|
123
|
+
}
|
|
124
|
+
function skillInstallInvocation(agent, opts) {
|
|
125
|
+
const cliPath = process.argv[1];
|
|
126
|
+
if (!cliPath)
|
|
127
|
+
return null;
|
|
128
|
+
const command = cliPath.endsWith(".js") ? process.execPath : cliPath;
|
|
129
|
+
const prefix = cliPath.endsWith(".js") ? [cliPath] : [];
|
|
130
|
+
const baseArgs = [
|
|
131
|
+
"skills",
|
|
132
|
+
"install",
|
|
133
|
+
opts.recommended ? "--recommended" : "--all",
|
|
134
|
+
"--agent",
|
|
135
|
+
agent,
|
|
136
|
+
"--scope",
|
|
137
|
+
opts.scope,
|
|
138
|
+
];
|
|
139
|
+
if (opts.force)
|
|
140
|
+
baseArgs.push("--force");
|
|
141
|
+
if (opts.stableOnly)
|
|
142
|
+
baseArgs.push("--stable-only");
|
|
143
|
+
return {
|
|
144
|
+
command,
|
|
145
|
+
args: [...prefix, ...baseArgs],
|
|
146
|
+
display: [cliPath, ...baseArgs],
|
|
147
|
+
};
|
|
148
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where `summer skills install` puts skills for each agent client.
|
|
3
|
+
*
|
|
4
|
+
* Lives in the installer layer (not cli/) so `summer setup` can report the
|
|
5
|
+
* destination and count without importing the CLI (import-direction contract
|
|
6
|
+
* §2: shared layers never import cli or mcp). The per-agent paths come from
|
|
7
|
+
* the one agent table (agent-table.ts); only the `summer` pseudo-client is
|
|
8
|
+
* resolved here.
|
|
9
|
+
*/
|
|
10
|
+
import { type AgentClient } from "../core/skills-registry.js";
|
|
11
|
+
import { type SkillLocationKind } from "./agent-table.js";
|
|
12
|
+
export declare const SKILL_SCOPES: readonly ["user", "project"];
|
|
13
|
+
export type SkillScope = (typeof SKILL_SCOPES)[number];
|
|
14
|
+
/** The agent/scope flags `summer skills install` accepts (legacy aliases included). */
|
|
15
|
+
export interface SkillInstallSelection {
|
|
16
|
+
agent?: string;
|
|
17
|
+
scope?: string;
|
|
18
|
+
asClaudeSkill?: boolean;
|
|
19
|
+
asCursorSkill?: boolean;
|
|
20
|
+
}
|
|
21
|
+
/** Throws with a user-facing message on an unknown agent. */
|
|
22
|
+
export declare function parseSkillAgent(value: string): AgentClient;
|
|
23
|
+
/** Throws with a user-facing message on an unknown scope. */
|
|
24
|
+
export declare function parseSkillScope(value: string): SkillScope;
|
|
25
|
+
/** Pick the agent from --agent / legacy --as-claude-skill / --as-cursor-skill
|
|
26
|
+
* (default "summer"); throws on conflicting flags. */
|
|
27
|
+
export declare function resolveSkillAgent(opts: SkillInstallSelection): AgentClient;
|
|
28
|
+
/** Explicit --scope wins; otherwise the agent's default (rule-file agents default to "project"). */
|
|
29
|
+
export declare function resolveSkillScope(agent: AgentClient, opts: SkillInstallSelection): SkillScope;
|
|
30
|
+
export interface InstallLocation {
|
|
31
|
+
kind: SkillLocationKind;
|
|
32
|
+
path: string;
|
|
33
|
+
}
|
|
34
|
+
export declare function resolveInstallLocation(agent: AgentClient, scope: SkillScope): InstallLocation;
|
|
35
|
+
/** One-line, human path pattern for where an install location puts skills. */
|
|
36
|
+
export declare function describeInstallLocation(location: InstallLocation): string;
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where `summer skills install` puts skills for each agent client.
|
|
3
|
+
*
|
|
4
|
+
* Lives in the installer layer (not cli/) so `summer setup` can report the
|
|
5
|
+
* destination and count without importing the CLI (import-direction contract
|
|
6
|
+
* §2: shared layers never import cli or mcp). The per-agent paths come from
|
|
7
|
+
* the one agent table (agent-table.ts); only the `summer` pseudo-client is
|
|
8
|
+
* resolved here.
|
|
9
|
+
*/
|
|
10
|
+
import { join } from "path";
|
|
11
|
+
import { homedir } from "os";
|
|
12
|
+
import { AGENT_CLIENTS } from "../core/skills-registry.js";
|
|
13
|
+
import { tildeify } from "../core/format.js";
|
|
14
|
+
import { agentSpec, defaultPathContext, resolveSkillPath, } from "./agent-table.js";
|
|
15
|
+
export const SKILL_SCOPES = ["user", "project"];
|
|
16
|
+
function isAgentClient(value) {
|
|
17
|
+
return AGENT_CLIENTS.includes(value);
|
|
18
|
+
}
|
|
19
|
+
function isSkillScope(value) {
|
|
20
|
+
return SKILL_SCOPES.includes(value);
|
|
21
|
+
}
|
|
22
|
+
/** Throws with a user-facing message on an unknown agent. */
|
|
23
|
+
export function parseSkillAgent(value) {
|
|
24
|
+
if (isAgentClient(value))
|
|
25
|
+
return value;
|
|
26
|
+
throw new Error(`Unknown agent: ${value}. Use one of: ${AGENT_CLIENTS.join(", ")}.`);
|
|
27
|
+
}
|
|
28
|
+
/** Throws with a user-facing message on an unknown scope. */
|
|
29
|
+
export function parseSkillScope(value) {
|
|
30
|
+
if (isSkillScope(value))
|
|
31
|
+
return value;
|
|
32
|
+
throw new Error(`Unknown scope: ${value}. Use user or project.`);
|
|
33
|
+
}
|
|
34
|
+
/** Pick the agent from --agent / legacy --as-claude-skill / --as-cursor-skill
|
|
35
|
+
* (default "summer"); throws on conflicting flags. */
|
|
36
|
+
export function resolveSkillAgent(opts) {
|
|
37
|
+
if (opts.asClaudeSkill && opts.asCursorSkill) {
|
|
38
|
+
throw new Error("Use only one legacy alias: --as-claude-skill or --as-cursor-skill.");
|
|
39
|
+
}
|
|
40
|
+
const legacyAgent = opts.asClaudeSkill
|
|
41
|
+
? "claude-code"
|
|
42
|
+
: opts.asCursorSkill
|
|
43
|
+
? "cursor"
|
|
44
|
+
: undefined;
|
|
45
|
+
if (opts.agent && legacyAgent && opts.agent !== legacyAgent) {
|
|
46
|
+
throw new Error(`Conflicting agent options: --agent ${opts.agent} with legacy alias for ${legacyAgent}.`);
|
|
47
|
+
}
|
|
48
|
+
return parseSkillAgent(opts.agent ?? legacyAgent ?? "summer");
|
|
49
|
+
}
|
|
50
|
+
/** Explicit --scope wins; otherwise the agent's default (rule-file agents default to "project"). */
|
|
51
|
+
export function resolveSkillScope(agent, opts) {
|
|
52
|
+
if (opts.scope)
|
|
53
|
+
return parseSkillScope(opts.scope);
|
|
54
|
+
if (agent === "summer")
|
|
55
|
+
return "user";
|
|
56
|
+
return agentSpec(agent).skills?.defaultScope ?? "user";
|
|
57
|
+
}
|
|
58
|
+
export function resolveInstallLocation(agent, scope) {
|
|
59
|
+
const overrideDir = process.env.SUMMER_SKILLS_DIR;
|
|
60
|
+
if (agent === "summer") {
|
|
61
|
+
const root = scope === "user" ? homedir() : process.cwd();
|
|
62
|
+
return { kind: "skill-dir", path: overrideDir ?? join(root, ".summer", "skills") };
|
|
63
|
+
}
|
|
64
|
+
const spec = agentSpec(agent);
|
|
65
|
+
const resolved = resolveSkillPath(spec, scope, defaultPathContext());
|
|
66
|
+
if (!resolved) {
|
|
67
|
+
throw new Error(`${spec.label} has no skills folder. ${spec.noSkillsNote ?? ""}`.trim());
|
|
68
|
+
}
|
|
69
|
+
if (overrideDir) {
|
|
70
|
+
return {
|
|
71
|
+
kind: resolved.kind,
|
|
72
|
+
path: resolved.kind === "windsurf-rule-file" ? join(overrideDir, ".windsurfrules") : overrideDir,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
return { kind: resolved.kind, path: resolved.path };
|
|
76
|
+
}
|
|
77
|
+
/** One-line, human path pattern for where an install location puts skills. */
|
|
78
|
+
export function describeInstallLocation(location) {
|
|
79
|
+
const p = tildeify(location.path);
|
|
80
|
+
switch (location.kind) {
|
|
81
|
+
case "skill-dir":
|
|
82
|
+
return `${p}/<skill>/SKILL.md`;
|
|
83
|
+
case "cursor-rule-dir":
|
|
84
|
+
return `${p}/summer-<skill>.mdc`;
|
|
85
|
+
case "cline-rule-dir":
|
|
86
|
+
case "opencode-skill-dir":
|
|
87
|
+
return `${p}/summer-<skill>.md`;
|
|
88
|
+
case "windsurf-rule-file":
|
|
89
|
+
return p;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Version drift detection helpers used by `summer doctor` and the MCP server
|
|
3
|
+
* boot path.
|
|
4
|
+
*
|
|
5
|
+
* Two checks are exposed:
|
|
6
|
+
* - cli-version-current: compares installed package.json version against the
|
|
7
|
+
* latest published `summer-engine` on the npm registry.
|
|
8
|
+
* - skills-version-stale: reads a `.summer-version` marker written into the
|
|
9
|
+
* skill install dir (per-agent) and compares against the current CLI.
|
|
10
|
+
*
|
|
11
|
+
* Both are designed to be silent on offline / network errors — we never want
|
|
12
|
+
* to false-alarm a user just because their wifi is flaky.
|
|
13
|
+
*/
|
|
14
|
+
import { type McpFormat } from "./agent-table.js";
|
|
15
|
+
import { type StdioMcpServerConfig } from "./agent-config.js";
|
|
16
|
+
export interface SemverParts {
|
|
17
|
+
major: number;
|
|
18
|
+
minor: number;
|
|
19
|
+
patch: number;
|
|
20
|
+
}
|
|
21
|
+
export type DriftSeverity = "ok" | "warning" | "fail";
|
|
22
|
+
export interface DriftClassification {
|
|
23
|
+
severity: DriftSeverity;
|
|
24
|
+
reason: "current" | "ahead" | "patch-only" | "minor-drift" | "major-drift" | "behind";
|
|
25
|
+
}
|
|
26
|
+
export declare function parseSemver(version: string): SemverParts | null;
|
|
27
|
+
export declare function compareSemver(a: SemverParts, b: SemverParts): number;
|
|
28
|
+
/**
|
|
29
|
+
* Classify drift between an installed and a target version.
|
|
30
|
+
*
|
|
31
|
+
* ok installed >= target, OR installed is behind only on patch
|
|
32
|
+
* OR installed differs only in pre-release/build metadata.
|
|
33
|
+
* warning one minor version behind on the same major.
|
|
34
|
+
* fail two or more minors behind, or any major-version drift behind.
|
|
35
|
+
*/
|
|
36
|
+
export declare function classifyDrift(installed: SemverParts, target: SemverParts): DriftClassification;
|
|
37
|
+
export interface RegistryFetchOptions {
|
|
38
|
+
/** Override the default fetch (used in tests). Must implement the global fetch shape. */
|
|
39
|
+
fetchImpl?: typeof fetch;
|
|
40
|
+
/** Override the timeout. */
|
|
41
|
+
timeoutMs?: number;
|
|
42
|
+
/** Override the URL (used in tests). */
|
|
43
|
+
url?: string;
|
|
44
|
+
}
|
|
45
|
+
export interface RegistryFetchResult {
|
|
46
|
+
ok: true;
|
|
47
|
+
version: string;
|
|
48
|
+
}
|
|
49
|
+
export interface RegistryFetchFailure {
|
|
50
|
+
ok: false;
|
|
51
|
+
reason: "registry-unreachable";
|
|
52
|
+
message?: string;
|
|
53
|
+
}
|
|
54
|
+
export declare function fetchLatestRegistryVersion(options?: RegistryFetchOptions): Promise<RegistryFetchResult | RegistryFetchFailure>;
|
|
55
|
+
/**
|
|
56
|
+
* Build the `cli-version-current` doctor check. Pure helper so tests can drive
|
|
57
|
+
* registry responses through `fetchImpl` rather than touching the network.
|
|
58
|
+
*/
|
|
59
|
+
export interface CliVersionCheckInput {
|
|
60
|
+
installedVersion: string;
|
|
61
|
+
registry: RegistryFetchResult | RegistryFetchFailure;
|
|
62
|
+
}
|
|
63
|
+
export interface CliVersionCheckOutput {
|
|
64
|
+
status: DriftSeverity;
|
|
65
|
+
message: string;
|
|
66
|
+
details: Record<string, unknown>;
|
|
67
|
+
}
|
|
68
|
+
export declare function buildCliVersionCheck(input: CliVersionCheckInput): CliVersionCheckOutput;
|
|
69
|
+
export declare const SKILL_VERSION_MARKER_FILENAME = ".summer-version";
|
|
70
|
+
export interface SkillVersionMarker {
|
|
71
|
+
version: string;
|
|
72
|
+
installedAt: string;
|
|
73
|
+
}
|
|
74
|
+
export declare function readSkillMarker(dir: string): SkillVersionMarker | null;
|
|
75
|
+
export declare function writeSkillMarker(dir: string, version: string, now?: Date): string;
|
|
76
|
+
/**
|
|
77
|
+
* Candidate locations for skill-version markers. Listed roughly in order of
|
|
78
|
+
* how likely a Summer user is to have them populated. We probe every candidate,
|
|
79
|
+
* not just the first one — if multiple agents have markers, the most-stale one
|
|
80
|
+
* wins so we surface the worst case to the user.
|
|
81
|
+
*/
|
|
82
|
+
export interface SkillMarkerCandidate {
|
|
83
|
+
agent: string;
|
|
84
|
+
dir: string;
|
|
85
|
+
}
|
|
86
|
+
export declare function defaultSkillMarkerCandidates(): SkillMarkerCandidate[];
|
|
87
|
+
/**
|
|
88
|
+
* How the agent's Summer MCP entry was recorded by `summer setup`
|
|
89
|
+
* (agent-config.ts createSummerMcpServerConfig): a `--local-dev` link runs
|
|
90
|
+
* `node <checkout>/dist/bin/summer.js mcp`; a normal install runs
|
|
91
|
+
* `npx -y summer-engine@latest mcp`. The refresh command doctor recommends
|
|
92
|
+
* must keep that shape — the npx form on a local-dev machine would replace
|
|
93
|
+
* the checkout link with the published package (E2E 2026-09-03 F-09).
|
|
94
|
+
*/
|
|
95
|
+
export interface RecordedInstall {
|
|
96
|
+
localDev: boolean;
|
|
97
|
+
/** The CLI entry point the agent runs, when local-dev. */
|
|
98
|
+
cliPath: string | null;
|
|
99
|
+
/** Where the answer came from: the agent's config file, or — when it has
|
|
100
|
+
* no readable Summer entry — the nature of the CLI running this check. */
|
|
101
|
+
source: "agent-config" | "running-cli";
|
|
102
|
+
}
|
|
103
|
+
export type RefreshChannel = "latest" | "next";
|
|
104
|
+
/** The npm dist-tag a refresh command should name. A CLI that is AHEAD of
|
|
105
|
+
* npm `latest` was installed from `next` (a soaking release); telling that
|
|
106
|
+
* user to run `summer-engine@latest` would silently downgrade the MCP server
|
|
107
|
+
* while leaving the newer skills in place (release review P1-3). */
|
|
108
|
+
export declare function refreshChannel(installedVersion: string, latestVersion: string | undefined): RefreshChannel;
|
|
109
|
+
/** Default `summer setup` channel when neither --channel nor SUMMER_CHANNEL is
|
|
110
|
+
* given: `next` while this CLI is ahead of npm latest, else `latest`. Network
|
|
111
|
+
* failure means `latest` (never blocks setup). */
|
|
112
|
+
export declare function resolveDefaultChannel(installedVersion: string): Promise<{
|
|
113
|
+
channel: RefreshChannel;
|
|
114
|
+
note?: string;
|
|
115
|
+
}>;
|
|
116
|
+
export interface SkillsVersionCheckInput {
|
|
117
|
+
installedCliVersion: string;
|
|
118
|
+
candidates: SkillMarkerCandidate[];
|
|
119
|
+
/** npm latest, when known, so the refresh command names the right dist-tag. */
|
|
120
|
+
latestRegistryVersion?: string;
|
|
121
|
+
/** Resolves how the stale agent's MCP entry was recorded; defaults to
|
|
122
|
+
* detectRecordedInstall. Seam for tests. */
|
|
123
|
+
recordedInstall?: (agent: string) => Promise<RecordedInstall | null> | RecordedInstall | null;
|
|
124
|
+
}
|
|
125
|
+
export interface SkillsVersionCheckOutput {
|
|
126
|
+
/** "ok" or "warning" — stale skills never fail doctor (TESTING.md §d). */
|
|
127
|
+
status: DriftSeverity;
|
|
128
|
+
message: string;
|
|
129
|
+
details: Record<string, unknown>;
|
|
130
|
+
}
|
|
131
|
+
export declare function buildSkillsVersionCheck(input: SkillsVersionCheckInput): Promise<SkillsVersionCheckOutput>;
|
|
132
|
+
/**
|
|
133
|
+
* The command that refreshes an agent's skills without changing how its MCP
|
|
134
|
+
* entry was recorded: the local-dev form re-links the same checkout
|
|
135
|
+
* (`setup --local-dev --force` re-copies the checkout's skills); the npx form
|
|
136
|
+
* is for installs that already run the published package.
|
|
137
|
+
*/
|
|
138
|
+
export declare function skillsRefreshCommand(agent: string, install: RecordedInstall | null, channel?: RefreshChannel): string;
|
|
139
|
+
/** The shape `summer setup --local-dev` writes: `node <…>/dist/bin/summer.js mcp`
|
|
140
|
+
* (createSummerMcpServerConfig(true)). */
|
|
141
|
+
export declare function isLocalDevServerConfig(server: StdioMcpServerConfig): boolean;
|
|
142
|
+
/**
|
|
143
|
+
* Read the Summer MCP entry an agent's config records, shape-tolerantly
|
|
144
|
+
* (this is the read side of agent-config.ts's per-format writers):
|
|
145
|
+
* json {"mcpServers": {"summer-engine": {command, args}}} Claude Code, Cursor, …
|
|
146
|
+
* json-copilot {"mcpServers": {"summer-engine": {type, command, args}}}
|
|
147
|
+
* json-vscode {"servers": {"summer-engine": {type, command, args}}}
|
|
148
|
+
* json-opencode {"mcp": {"summer-engine": {type, command: [cmd, ...args]}}}
|
|
149
|
+
* json-zed {"context_servers": {"summer-engine": {source, command, args}}}
|
|
150
|
+
* yaml-goose extensions: summer-engine: {cmd, args}
|
|
151
|
+
* yaml-hermes mcp_servers: summer-engine: {command, args}
|
|
152
|
+
* toml (codex) [mcp_servers.summer-engine]\ncommand = "…"\nargs = ["…", …]
|
|
153
|
+
* Returns null when the file is missing, unparsable, or has no Summer entry.
|
|
154
|
+
*/
|
|
155
|
+
export declare function readRecordedMcpServer(text: string, format: McpFormat): StdioMcpServerConfig | null;
|
|
156
|
+
/** Is the CLI running this check a source checkout rather than an installed
|
|
157
|
+
* package? npm/npx/global installs all live under a node_modules directory. */
|
|
158
|
+
export declare function runningCliIsCheckout(packageRoot?: string): boolean;
|
|
159
|
+
/**
|
|
160
|
+
* How `summer setup` recorded the agent's Summer MCP entry. Resolves the
|
|
161
|
+
* agent's user-scope config path through agent-config's own target
|
|
162
|
+
* resolution (print mode: no file is written or read there), then reads the
|
|
163
|
+
* entry. Marker agents without an agent config ("summer") and agents whose
|
|
164
|
+
* config has no readable Summer entry fall back to the nature of the running
|
|
165
|
+
* CLI: a checkout recommends re-linking itself, an installed package the npx form.
|
|
166
|
+
*/
|
|
167
|
+
export declare function detectRecordedInstall(agent: string): Promise<RecordedInstall | null>;
|
|
168
|
+
/**
|
|
169
|
+
* Helper used by the MCP server boot path to render a one-line drift notice.
|
|
170
|
+
* Returns null when no notice is needed (fresh, ahead, patch-only, offline).
|
|
171
|
+
*/
|
|
172
|
+
export interface BootDriftNotice {
|
|
173
|
+
installedVersion: string;
|
|
174
|
+
latestVersion: string;
|
|
175
|
+
agent?: string;
|
|
176
|
+
text: string;
|
|
177
|
+
}
|
|
178
|
+
export declare function buildBootDriftNotice(installedVersion: string, registry: RegistryFetchResult | RegistryFetchFailure, agent?: string): BootDriftNotice | null;
|