summer-engine 3.7.0 → 3.8.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.
Files changed (59) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +4 -2
  3. package/.codex-plugin/plugin.json +5 -3
  4. package/.cursor-plugin/plugin.json +4 -2
  5. package/.factory-plugin/plugin.json +4 -2
  6. package/CHANGELOG.md +16 -0
  7. package/README.md +11 -1
  8. package/commands/summer.md +2 -1
  9. package/dist/core/capabilities/apps.d.ts +318 -0
  10. package/dist/core/capabilities/apps.js +340 -0
  11. package/dist/core/capabilities/enable-plugin.d.ts +27 -0
  12. package/dist/core/capabilities/enable-plugin.js +75 -0
  13. package/dist/core/capabilities/tool-dispatch.js +49 -0
  14. package/dist/core/capability-skew.js +4 -0
  15. package/dist/mcp/hosted-mount.js +13 -1
  16. package/dist/mcp/server.js +2 -0
  17. package/dist/mcp/tools/app-tools.d.ts +2 -0
  18. package/dist/mcp/tools/app-tools.js +64 -0
  19. package/dist/mcp/tools/generate-tools.js +3 -3
  20. package/gemini-extension.json +3 -1
  21. package/library/references/mcp-tools-reference/mcp-tools-reference.md +23 -1
  22. package/library/skills/README.md +10 -2
  23. package/library/skills/sound-effect/SKILL.md +2 -0
  24. package/library/skills/summer-apps/SKILL.md +152 -0
  25. package/library/skills/summer-apps/manifest.md +57 -0
  26. package/library/skills/summer-apps/minimal-app.md +183 -0
  27. package/library/skills/summer-apps/resource.yaml +36 -0
  28. package/library/skills/summer-apps/sdk-reference.md +135 -0
  29. package/library/skills/summer-apps-design/SKILL.md +197 -0
  30. package/library/skills/summer-apps-design/resource.yaml +23 -0
  31. package/library/skills/using-summer/SKILL.md +1 -0
  32. package/library/tools/app-call/resource.yaml +59 -0
  33. package/library/tools/app-create/resource.yaml +67 -0
  34. package/library/tools/app-data/resource.yaml +74 -0
  35. package/library/tools/app-dock/resource.yaml +59 -0
  36. package/library/tools/app-events/resource.yaml +68 -0
  37. package/library/tools/app-get/resource.yaml +46 -0
  38. package/library/tools/app-guide/resource.yaml +55 -0
  39. package/library/tools/app-list/resource.yaml +48 -0
  40. package/library/tools/app-page/resource.yaml +74 -0
  41. package/library/tools/app-publish/resource.yaml +90 -0
  42. package/library/tools/app-report-gap/resource.yaml +58 -0
  43. package/library/tools/app-screenshot/resource.yaml +85 -0
  44. package/library/tools/app-tools/resource.yaml +46 -0
  45. package/library/tools/app-update/resource.yaml +68 -0
  46. package/library/tools/enable-plugin/resource.yaml +53 -0
  47. package/package.json +1 -1
  48. package/registry/generated/aliases.json +15 -0
  49. package/registry/generated/counts.json +3 -3
  50. package/registry/generated/gemini-extension.json +3 -1
  51. package/registry/generated/index.json +656 -3
  52. package/registry/generated/marketplace.claude.json +2 -2
  53. package/registry/generated/plugin.claude.json +4 -2
  54. package/registry/generated/plugin.codex.json +5 -3
  55. package/registry/generated/plugin.cursor.json +4 -2
  56. package/registry/generated/plugin.factory.json +4 -2
  57. package/registry/generated/skills-index.md +10 -2
  58. package/registry/generated/skills-registry.json +27 -0
  59. package/registry/schemas/allowed-hosts.json +4 -2
@@ -0,0 +1,68 @@
1
+ id: tool/app-events
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: "Wait for what a Summer App sends to agents: summer.agent.send events, app errors, feedback and tool calls."
5
+ use_when:
6
+ - waiting for the person to act in an app you built
7
+ - checking an app for errors after publishing
8
+ facets:
9
+ lifecycle:
10
+ - build
11
+ domains:
12
+ - tools
13
+ - ui
14
+ compatibility:
15
+ engine: ">=4.6"
16
+ related:
17
+ skills:
18
+ - skill/summer-apps
19
+ source: official
20
+ license: MIT
21
+ status: preview
22
+ aliases:
23
+ - summer_app_events
24
+ implementation:
25
+ module: src/mcp/tools/app-tools.ts
26
+ export: registerAppTools
27
+ surfaces:
28
+ mcp:
29
+ tool_name: summer_app_events
30
+ remote: true
31
+ input_schema:
32
+ type: object
33
+ properties:
34
+ appId:
35
+ type: string
36
+ format: uuid
37
+ description: The app id from summer_app_create or summer_app_list
38
+ after:
39
+ type: integer
40
+ minimum: 0
41
+ default: 0
42
+ description: "Return events after this cursor (0: from the start). Pass the returned cursor next time"
43
+ timeoutSeconds:
44
+ type: integer
45
+ minimum: 0
46
+ maximum: 50
47
+ default: 25
48
+ description: Wait up to this long (max 50) for the first new event
49
+ kinds:
50
+ type: array
51
+ items:
52
+ type: string
53
+ enum:
54
+ - agent
55
+ - error
56
+ - feedback
57
+ - tool
58
+ maxItems: 4
59
+ description: "Default: agent, error, feedback"
60
+ required:
61
+ - appId
62
+ additionalProperties: false
63
+ authority:
64
+ filesystem: false
65
+ editor_mutation: false
66
+ network: true
67
+ credentials: false
68
+ publish: false
@@ -0,0 +1,46 @@
1
+ id: tool/app-get
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: Read a Summer App's manifest, current files (or layout) and shared data summary.
5
+ use_when:
6
+ - before changing an existing app
7
+ - '"what does our loot table app do"'
8
+ facets:
9
+ lifecycle:
10
+ - build
11
+ domains:
12
+ - tools
13
+ - ui
14
+ compatibility:
15
+ engine: ">=4.6"
16
+ related:
17
+ skills:
18
+ - skill/summer-apps
19
+ source: official
20
+ license: MIT
21
+ status: preview
22
+ aliases:
23
+ - summer_app_get
24
+ implementation:
25
+ module: src/mcp/tools/app-tools.ts
26
+ export: registerAppTools
27
+ surfaces:
28
+ mcp:
29
+ tool_name: summer_app_get
30
+ remote: true
31
+ input_schema:
32
+ type: object
33
+ properties:
34
+ appId:
35
+ type: string
36
+ format: uuid
37
+ description: The app id from summer_app_create or summer_app_list
38
+ required:
39
+ - appId
40
+ additionalProperties: false
41
+ authority:
42
+ filesystem: false
43
+ editor_mutation: false
44
+ network: true
45
+ credentials: false
46
+ publish: false
@@ -0,0 +1,55 @@
1
+ id: tool/app-guide
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: "Read the Summer Apps build guide: when to build an app, Layout vs code, build loop, manifest, SDK, UI kit, layout format, design rules and worked examples."
5
+ use_when:
6
+ - before building or changing a Summer App
7
+ - '"build us a loot balance tool"'
8
+ - '"make a tool for our team to track creatures"'
9
+ facets:
10
+ lifecycle:
11
+ - build
12
+ domains:
13
+ - tools
14
+ - ui
15
+ compatibility:
16
+ engine: ">=4.6"
17
+ related:
18
+ skills:
19
+ - skill/summer-apps
20
+ source: official
21
+ license: MIT
22
+ status: preview
23
+ aliases:
24
+ - summer_app_guide
25
+ implementation:
26
+ module: src/mcp/tools/app-tools.ts
27
+ export: registerAppTools
28
+ surfaces:
29
+ mcp:
30
+ tool_name: summer_app_guide
31
+ remote: true
32
+ input_schema:
33
+ type: object
34
+ properties:
35
+ section:
36
+ type: string
37
+ enum:
38
+ - all
39
+ - overview
40
+ - manifest
41
+ - sdk
42
+ - kit
43
+ - layout
44
+ - design
45
+ - examples
46
+ - types
47
+ default: all
48
+ description: "One part of the guide: overview, manifest, sdk, kit, layout, design, examples, or types (the SDK's exact TypeScript types, not in all). Default all"
49
+ additionalProperties: false
50
+ authority:
51
+ filesystem: false
52
+ editor_mutation: false
53
+ network: true
54
+ credentials: false
55
+ publish: false
@@ -0,0 +1,48 @@
1
+ id: tool/app-list
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: List the Summer Apps (team tools inside Summer Studio) in the person's workspaces.
5
+ use_when:
6
+ - '"which apps do we have"'
7
+ - finding an app id to change or read
8
+ facets:
9
+ lifecycle:
10
+ - build
11
+ domains:
12
+ - tools
13
+ - ui
14
+ compatibility:
15
+ engine: ">=4.6"
16
+ related:
17
+ skills:
18
+ - skill/summer-apps
19
+ source: official
20
+ license: MIT
21
+ status: preview
22
+ aliases:
23
+ - summer_app_list
24
+ implementation:
25
+ module: src/mcp/tools/app-tools.ts
26
+ export: registerAppTools
27
+ surfaces:
28
+ mcp:
29
+ tool_name: summer_app_list
30
+ remote: true
31
+ input_schema:
32
+ type: object
33
+ properties:
34
+ workspaceId:
35
+ type: string
36
+ format: uuid
37
+ description: "Only this workspace (team). Default: every workspace the person is in"
38
+ q:
39
+ type: string
40
+ maxLength: 200
41
+ description: Search app names and purposes
42
+ additionalProperties: false
43
+ authority:
44
+ filesystem: false
45
+ editor_mutation: false
46
+ network: true
47
+ credentials: false
48
+ publish: false
@@ -0,0 +1,74 @@
1
+ id: tool/app-page
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: Read or use the fields and buttons an open Summer App declared (fill values, press actions).
5
+ use_when:
6
+ - '"set the budget to 60 in the balance app"'
7
+ - reading what the person has selected in an open app
8
+ do_not_use_when:
9
+ - "changing shared data with no app open: summer_app_data"
10
+ facets:
11
+ lifecycle:
12
+ - build
13
+ domains:
14
+ - tools
15
+ - ui
16
+ compatibility:
17
+ engine: ">=4.6"
18
+ related:
19
+ skills:
20
+ - skill/summer-apps
21
+ source: official
22
+ license: MIT
23
+ status: preview
24
+ aliases:
25
+ - summer_app_page
26
+ implementation:
27
+ module: src/mcp/tools/app-tools.ts
28
+ export: registerAppTools
29
+ surfaces:
30
+ mcp:
31
+ tool_name: summer_app_page
32
+ remote: true
33
+ input_schema:
34
+ type: object
35
+ properties:
36
+ appId:
37
+ type: string
38
+ format: uuid
39
+ description: The app id from summer_app_create or summer_app_list
40
+ fill:
41
+ type: array
42
+ items:
43
+ type: object
44
+ properties:
45
+ field:
46
+ type: string
47
+ minLength: 1
48
+ maxLength: 200
49
+ value:
50
+ anyOf:
51
+ - type: string
52
+ maxLength: 10000
53
+ - type: number
54
+ - type: boolean
55
+ required:
56
+ - field
57
+ - value
58
+ additionalProperties: false
59
+ maxItems: 50
60
+ description: "Values to set: [{field, value}] with field ids from a read"
61
+ press:
62
+ type: string
63
+ minLength: 1
64
+ maxLength: 200
65
+ description: An action id to press after filling
66
+ required:
67
+ - appId
68
+ additionalProperties: false
69
+ authority:
70
+ filesystem: false
71
+ editor_mutation: false
72
+ network: true
73
+ credentials: false
74
+ publish: false
@@ -0,0 +1,90 @@
1
+ id: tool/app-publish
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: Publish a new version of a Summer App from a local folder, files or a layout; the person's Studio tab boots it.
5
+ use_when:
6
+ - after writing or changing an app's files
7
+ - fixing an app after a publish error or an app error event
8
+ facets:
9
+ lifecycle:
10
+ - build
11
+ domains:
12
+ - tools
13
+ - ui
14
+ compatibility:
15
+ engine: ">=4.6"
16
+ related:
17
+ skills:
18
+ - skill/summer-apps
19
+ source: official
20
+ license: MIT
21
+ status: preview
22
+ aliases:
23
+ - summer_app_publish
24
+ implementation:
25
+ module: src/mcp/tools/app-tools.ts
26
+ export: registerAppTools
27
+ surfaces:
28
+ mcp:
29
+ tool_name: summer_app_publish
30
+ remote: true
31
+ input_schema:
32
+ type: object
33
+ properties:
34
+ appId:
35
+ type: string
36
+ format: uuid
37
+ description: The app id from summer_app_create or summer_app_list
38
+ dir:
39
+ type: string
40
+ minLength: 1
41
+ description: A local folder holding the app (index.html at its root). Every file under it is published; dotfiles and node_modules are skipped
42
+ files:
43
+ type: array
44
+ items:
45
+ type: object
46
+ properties:
47
+ path:
48
+ type: string
49
+ minLength: 1
50
+ maxLength: 200
51
+ content:
52
+ type: string
53
+ encoding:
54
+ type: string
55
+ enum:
56
+ - utf8
57
+ - base64
58
+ default: utf8
59
+ required:
60
+ - path
61
+ - content
62
+ additionalProperties: false
63
+ maxItems: 300
64
+ description: "The files instead of dir: [{path, content, encoding}]"
65
+ layout:
66
+ type: object
67
+ additionalProperties: {}
68
+ description: "Layout apps: { version: 1, title, root }"
69
+ manifest:
70
+ type: object
71
+ additionalProperties: {}
72
+ description: The manifest {name, purpose, permissions, engineFiles, agentEvents, agentTools} (summer_app_guide section manifest)
73
+ note:
74
+ type: string
75
+ maxLength: 500
76
+ description: What changed, shown in the version list
77
+ idempotencyKey:
78
+ type: string
79
+ minLength: 8
80
+ maxLength: 128
81
+ required:
82
+ - appId
83
+ - manifest
84
+ additionalProperties: false
85
+ authority:
86
+ filesystem: true
87
+ editor_mutation: false
88
+ network: true
89
+ credentials: false
90
+ publish: false
@@ -0,0 +1,58 @@
1
+ id: tool/app-report-gap
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: Report an SDK capability a Summer App needed and did not have, so Summer builds it.
5
+ use_when:
6
+ - an app needed to reach a service or engine feature the SDK does not offer
7
+ - an app needs something the Summer Apps SDK cannot do
8
+ facets:
9
+ lifecycle:
10
+ - build
11
+ domains:
12
+ - tools
13
+ - ui
14
+ compatibility:
15
+ engine: ">=4.6"
16
+ related:
17
+ skills:
18
+ - skill/summer-apps
19
+ source: official
20
+ license: MIT
21
+ status: preview
22
+ aliases:
23
+ - summer_app_report_gap
24
+ implementation:
25
+ module: src/mcp/tools/app-tools.ts
26
+ export: registerAppTools
27
+ surfaces:
28
+ mcp:
29
+ tool_name: summer_app_report_gap
30
+ remote: true
31
+ input_schema:
32
+ type: object
33
+ properties:
34
+ capability:
35
+ type: string
36
+ minLength: 1
37
+ maxLength: 200
38
+ description: What the app needed, e.g. "read Steam reviews"
39
+ detail:
40
+ type: string
41
+ maxLength: 2000
42
+ method:
43
+ type: string
44
+ maxLength: 100
45
+ description: The SDK method name you wished existed
46
+ appId:
47
+ type: string
48
+ format: uuid
49
+ description: The app id from summer_app_create or summer_app_list
50
+ required:
51
+ - capability
52
+ additionalProperties: false
53
+ authority:
54
+ filesystem: false
55
+ editor_mutation: false
56
+ network: true
57
+ credentials: false
58
+ publish: false
@@ -0,0 +1,85 @@
1
+ id: tool/app-screenshot
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: See a Summer App without the person - a headless, read-only render (PNG) with its console, errors, refused calls and declared page.
5
+ use_when:
6
+ - right after every summer_app_publish, to check the app renders with real data
7
+ - '"does my app look right on a phone / in dark mode"'
8
+ - finding why an app shows nothing (SDK not connected, script errors)
9
+ do_not_use_when:
10
+ - "testing writes, sends or paid calls: they are refused in screenshots; they work in Studio"
11
+ facets:
12
+ lifecycle:
13
+ - build
14
+ domains:
15
+ - tools
16
+ - ui
17
+ compatibility:
18
+ engine: ">=4.6"
19
+ related:
20
+ skills:
21
+ - skill/summer-apps
22
+ - skill/summer-apps-design
23
+ source: official
24
+ license: MIT
25
+ status: preview
26
+ aliases:
27
+ - summer_app_screenshot
28
+ implementation:
29
+ module: src/mcp/tools/app-tools.ts
30
+ export: registerAppTools
31
+ surfaces:
32
+ mcp:
33
+ tool_name: summer_app_screenshot
34
+ remote: true
35
+ input_schema:
36
+ type: object
37
+ properties:
38
+ appId:
39
+ type: string
40
+ format: uuid
41
+ description: The app id from summer_app_create or summer_app_list
42
+ version:
43
+ type: integer
44
+ exclusiveMinimum: 0
45
+ description: "A published version. Default: the current one"
46
+ width:
47
+ type: integer
48
+ minimum: 320
49
+ maximum: 1920
50
+ default: 1280
51
+ description: "Viewport width in px: 390 for a phone"
52
+ height:
53
+ type: integer
54
+ minimum: 320
55
+ maximum: 1600
56
+ default: 800
57
+ theme:
58
+ type: string
59
+ enum:
60
+ - light
61
+ - dark
62
+ default: light
63
+ fullPage:
64
+ type: boolean
65
+ default: false
66
+ description: Capture the whole scroll height (up to 4000 px)
67
+ params:
68
+ type: object
69
+ additionalProperties:
70
+ type: string
71
+ maxLength: 500
72
+ description: Launch params, as in /studio/apps/<id>?key=value
73
+ out:
74
+ type: string
75
+ minLength: 1
76
+ description: Also save the PNG to this local path
77
+ required:
78
+ - appId
79
+ additionalProperties: false
80
+ authority:
81
+ filesystem: true
82
+ editor_mutation: false
83
+ network: true
84
+ credentials: false
85
+ publish: false
@@ -0,0 +1,46 @@
1
+ id: tool/app-tools
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: List the agent tools a Summer App declares.
5
+ use_when:
6
+ - before calling app logic with summer_app_call
7
+ - '"what can our balance app do for me"'
8
+ facets:
9
+ lifecycle:
10
+ - build
11
+ domains:
12
+ - tools
13
+ - ui
14
+ compatibility:
15
+ engine: ">=4.6"
16
+ related:
17
+ skills:
18
+ - skill/summer-apps
19
+ source: official
20
+ license: MIT
21
+ status: preview
22
+ aliases:
23
+ - summer_app_tools
24
+ implementation:
25
+ module: src/mcp/tools/app-tools.ts
26
+ export: registerAppTools
27
+ surfaces:
28
+ mcp:
29
+ tool_name: summer_app_tools
30
+ remote: true
31
+ input_schema:
32
+ type: object
33
+ properties:
34
+ appId:
35
+ type: string
36
+ format: uuid
37
+ description: The app id from summer_app_create or summer_app_list
38
+ required:
39
+ - appId
40
+ additionalProperties: false
41
+ authority:
42
+ filesystem: false
43
+ editor_mutation: false
44
+ network: true
45
+ credentials: false
46
+ publish: false
@@ -0,0 +1,68 @@
1
+ id: tool/app-update
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: Rename a Summer App, move it to a folder, or keep, archive or restore it.
5
+ use_when:
6
+ - archiving a scratch app you made that the person did not keep
7
+ - '"rename the loot app to Drop tables"'
8
+ - '"keep this app" (status kept)'
9
+ facets:
10
+ lifecycle:
11
+ - build
12
+ domains:
13
+ - tools
14
+ - ui
15
+ compatibility:
16
+ engine: ">=4.6"
17
+ related:
18
+ skills:
19
+ - skill/summer-apps
20
+ source: official
21
+ license: MIT
22
+ status: preview
23
+ aliases:
24
+ - summer_app_update
25
+ implementation:
26
+ module: src/mcp/tools/app-tools.ts
27
+ export: registerAppTools
28
+ surfaces:
29
+ mcp:
30
+ tool_name: summer_app_update
31
+ remote: true
32
+ input_schema:
33
+ type: object
34
+ properties:
35
+ appId:
36
+ type: string
37
+ format: uuid
38
+ description: The app id from summer_app_create or summer_app_list
39
+ name:
40
+ type: string
41
+ minLength: 1
42
+ maxLength: 80
43
+ purpose:
44
+ type: string
45
+ maxLength: 280
46
+ status:
47
+ type: string
48
+ enum:
49
+ - scratch
50
+ - kept
51
+ - archived
52
+ description: "kept: the team keeps it. archived: hidden from the app list (restore with scratch or kept)"
53
+ folder:
54
+ type:
55
+ - string
56
+ - "null"
57
+ minLength: 1
58
+ maxLength: 80
59
+ description: null takes it out of its folder
60
+ required:
61
+ - appId
62
+ additionalProperties: false
63
+ authority:
64
+ filesystem: false
65
+ editor_mutation: false
66
+ network: true
67
+ credentials: false
68
+ publish: false
@@ -0,0 +1,53 @@
1
+ id: tool/enable-plugin
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: Enable an editor plugin (res://addons/<name>/) and report the real load result, or that an older engine only queued it.
5
+ use_when:
6
+ - an agent wrote or installed an editor plugin and needs it running
7
+ - a Summer App's paired plugin must be enabled before the app can message it
8
+ - '"turn on the quest_tools plugin"'
9
+ facets:
10
+ lifecycle:
11
+ - build
12
+ domains:
13
+ - editor
14
+ - tools
15
+ compatibility:
16
+ engine: ">=4.6"
17
+ related:
18
+ skills:
19
+ - skill/summer-apps
20
+ source: official
21
+ license: MIT
22
+ status: preview
23
+ aliases:
24
+ - summer_enable_plugin
25
+ implementation:
26
+ module: src/mcp/tools/app-tools.ts
27
+ export: registerAppTools
28
+ surfaces:
29
+ mcp:
30
+ tool_name: summer_enable_plugin
31
+ remote: false
32
+ input_schema:
33
+ type: object
34
+ properties:
35
+ plugin:
36
+ type: string
37
+ minLength: 1
38
+ maxLength: 200
39
+ description: The plugin folder under res://addons/ (e.g. 'quest_tools') or its 'res://addons/<name>/plugin.cfg'
40
+ timeoutMs:
41
+ type: integer
42
+ minimum: 1000
43
+ maximum: 120000
44
+ description: How long the engine waits for the plugin to load (default 30000)
45
+ required:
46
+ - plugin
47
+ additionalProperties: false
48
+ authority:
49
+ filesystem: false
50
+ editor_mutation: true
51
+ network: false
52
+ credentials: false
53
+ publish: false
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "summer-engine",
3
- "version": "3.7.0",
3
+ "version": "3.8.0",
4
4
  "description": "Local Summer CLI and MCP server for Summer Engine. Install and run the engine, connect Claude Code, Cursor, Codex, Gemini, and other agents, and build real games with bundled skills, hooks, and plugins.",
5
5
  "keywords": [
6
6
  "summer-engine",