summer-engine 3.6.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 (83) 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 +24 -0
  7. package/README.md +11 -5
  8. package/commands/summer.md +2 -1
  9. package/dist/cli/commands/login.d.ts +0 -10
  10. package/dist/cli/commands/login.js +2 -82
  11. package/dist/cli/index.js +0 -4
  12. package/dist/core/auth.d.ts +0 -8
  13. package/dist/core/auth.js +5 -35
  14. package/dist/core/capabilities/apps.d.ts +318 -0
  15. package/dist/core/capabilities/apps.js +340 -0
  16. package/dist/core/capabilities/enable-plugin.d.ts +27 -0
  17. package/dist/core/capabilities/enable-plugin.js +75 -0
  18. package/dist/core/capabilities/seeing/args.d.ts +2 -2
  19. package/dist/core/capabilities/seeing/seeing.d.ts +1 -1
  20. package/dist/core/capabilities/sfx-choices.d.ts +2 -15
  21. package/dist/core/capabilities/sfx-choices.js +26 -64
  22. package/dist/core/capabilities/tool-dispatch.js +51 -54
  23. package/dist/core/capability-skew.js +4 -0
  24. package/dist/core/config.d.ts +1 -7
  25. package/dist/core/config.js +5 -75
  26. package/dist/mcp/hosted-mount.js +13 -1
  27. package/dist/mcp/server.d.ts +2 -1
  28. package/dist/mcp/server.js +8 -5
  29. package/dist/mcp/tools/app-tools.d.ts +2 -0
  30. package/dist/mcp/tools/app-tools.js +64 -0
  31. package/dist/mcp/tools/creator-tools.js +0 -71
  32. package/dist/mcp/tools/generate-tools.js +6 -7
  33. package/gemini-extension.json +3 -1
  34. package/library/references/mcp-tools-reference/mcp-tools-reference.md +24 -5
  35. package/library/skills/README.md +10 -2
  36. package/library/skills/publish-your-game/SKILL.md +2 -0
  37. package/library/skills/sound-effect/SKILL.md +2 -0
  38. package/library/skills/summer-apps/SKILL.md +152 -0
  39. package/library/skills/summer-apps/manifest.md +57 -0
  40. package/library/skills/summer-apps/minimal-app.md +183 -0
  41. package/library/skills/summer-apps/resource.yaml +36 -0
  42. package/library/skills/summer-apps/sdk-reference.md +135 -0
  43. package/library/skills/summer-apps-design/SKILL.md +197 -0
  44. package/library/skills/summer-apps-design/resource.yaml +23 -0
  45. package/library/skills/using-summer/SKILL.md +1 -0
  46. package/library/tools/app-call/resource.yaml +59 -0
  47. package/library/tools/app-create/resource.yaml +67 -0
  48. package/library/tools/app-data/resource.yaml +74 -0
  49. package/library/tools/app-dock/resource.yaml +59 -0
  50. package/library/tools/app-events/resource.yaml +68 -0
  51. package/library/tools/app-get/resource.yaml +46 -0
  52. package/library/tools/app-guide/resource.yaml +55 -0
  53. package/library/tools/app-list/resource.yaml +48 -0
  54. package/library/tools/app-page/resource.yaml +74 -0
  55. package/library/tools/app-publish/resource.yaml +90 -0
  56. package/library/tools/app-report-gap/resource.yaml +58 -0
  57. package/library/tools/app-screenshot/resource.yaml +85 -0
  58. package/library/tools/app-tools/resource.yaml +46 -0
  59. package/library/tools/app-update/resource.yaml +68 -0
  60. package/library/tools/enable-plugin/resource.yaml +53 -0
  61. package/library/tools/generate-sfx-choices/resource.yaml +2 -2
  62. package/package.json +1 -1
  63. package/registry/generated/aliases.json +15 -3
  64. package/registry/generated/counts.json +3 -3
  65. package/registry/generated/gemini-extension.json +3 -1
  66. package/registry/generated/index.json +759 -209
  67. package/registry/generated/marketplace.claude.json +2 -2
  68. package/registry/generated/plugin.claude.json +4 -2
  69. package/registry/generated/plugin.codex.json +5 -3
  70. package/registry/generated/plugin.cursor.json +4 -2
  71. package/registry/generated/plugin.factory.json +4 -2
  72. package/registry/generated/skills-index.md +10 -2
  73. package/registry/generated/skills-registry.json +27 -0
  74. package/registry/schemas/allowed-hosts.json +4 -2
  75. package/dist/cli/commands/publish.d.ts +0 -2
  76. package/dist/cli/commands/publish.js +0 -21
  77. package/dist/cli/commands/releases.d.ts +0 -2
  78. package/dist/cli/commands/releases.js +0 -20
  79. package/dist/core/capabilities/creator.d.ts +0 -65
  80. package/dist/core/capabilities/creator.js +0 -374
  81. package/library/tools/creator-config/resource.yaml +0 -63
  82. package/library/tools/creator-publish/resource.yaml +0 -74
  83. package/library/tools/creator-releases/resource.yaml +0 -53
@@ -0,0 +1,67 @@
1
+ id: tool/app-create
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: Create a new scratch Summer App (a tool for the person's team inside Summer Studio) and open it in their Studio tab.
5
+ use_when:
6
+ - '"build me a tool for…" / "make an app that…"'
7
+ - the person needs a UI to decide or edit something they will come back to
8
+ do_not_use_when:
9
+ - "a one-off answer: reply in chat"
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_create
26
+ implementation:
27
+ module: src/mcp/tools/app-tools.ts
28
+ export: registerAppTools
29
+ surfaces:
30
+ mcp:
31
+ tool_name: summer_app_create
32
+ remote: true
33
+ input_schema:
34
+ type: object
35
+ properties:
36
+ name:
37
+ type: string
38
+ minLength: 1
39
+ maxLength: 80
40
+ purpose:
41
+ type: string
42
+ maxLength: 280
43
+ description: "One line: what the tool does and where its data goes"
44
+ format:
45
+ type: string
46
+ enum:
47
+ - code
48
+ - layout
49
+ default: code
50
+ description: "code: index.html + JS/CSS (default). layout: a JSON layout of kit nodes, for quick decision UIs"
51
+ workspaceId:
52
+ type: string
53
+ format: uuid
54
+ description: "A workspace id. Default: the person's team (the one their Studio tab is on, else their latest team, else personal); the result's workspace says which"
55
+ folder:
56
+ type: string
57
+ minLength: 1
58
+ maxLength: 80
59
+ required:
60
+ - name
61
+ additionalProperties: false
62
+ authority:
63
+ filesystem: false
64
+ editor_mutation: false
65
+ network: true
66
+ credentials: false
67
+ publish: false
@@ -0,0 +1,74 @@
1
+ id: tool/app-data
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: Read or write a Summer App's shared data collections; works with no app open and the team sees writes live.
5
+ use_when:
6
+ - '"nerf the bow in our balance sheet"'
7
+ - seeding an app with data
8
+ - reading what the team entered in an app
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_data
25
+ implementation:
26
+ module: src/mcp/tools/app-tools.ts
27
+ export: registerAppTools
28
+ surfaces:
29
+ mcp:
30
+ tool_name: summer_app_data
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
+ collection:
40
+ type: string
41
+ maxLength: 48
42
+ description: "Read: one collection. Default: all"
43
+ after:
44
+ type: string
45
+ maxLength: 200
46
+ description: "Read: the next cursor from the previous page"
47
+ limit:
48
+ type: integer
49
+ minimum: 1
50
+ maximum: 500
51
+ default: 200
52
+ ops:
53
+ type: array
54
+ items:
55
+ type: object
56
+ additionalProperties: {}
57
+ minItems: 1
58
+ maxItems: 100
59
+ description: "Write: [{op: put, collection, recordId, data}, {op: patch, collection, recordId, patch}, {op: remove, collection, recordId}]; ifRevision on an op applies it only at that record revision (0: must not exist)"
60
+ as:
61
+ type: string
62
+ enum:
63
+ - agent
64
+ - seed
65
+ description: "Write: seed for starter data that belongs to the team (no author). Default: agent"
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,59 @@
1
+ id: tool/app-dock
2
+ kind: tool
3
+ version: 1.0.0
4
+ summary: Dock a Summer App as a panel in the running Summer Engine editor, close it, or list docked apps.
5
+ use_when:
6
+ - '"put the quest editor next to my scene"'
7
+ - keeping a team tool open while editing
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_dock
24
+ implementation:
25
+ module: src/mcp/tools/app-tools.ts
26
+ export: registerAppTools
27
+ surfaces:
28
+ mcp:
29
+ tool_name: summer_app_dock
30
+ remote: false
31
+ input_schema:
32
+ type: object
33
+ properties:
34
+ action:
35
+ type: string
36
+ enum:
37
+ - open
38
+ - close
39
+ - list
40
+ default: open
41
+ appId:
42
+ type: string
43
+ format: uuid
44
+ description: "open, close: the app"
45
+ slot:
46
+ type: string
47
+ enum:
48
+ - left
49
+ - right
50
+ - bottom
51
+ default: right
52
+ description: "open: left, right or bottom"
53
+ additionalProperties: false
54
+ authority:
55
+ filesystem: false
56
+ editor_mutation: true
57
+ network: false
58
+ credentials: false
59
+ publish: false
@@ -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