summer-engine 3.0.0 → 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.
Files changed (81) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/.codex-plugin/plugin.json +1 -1
  4. package/.cursor-plugin/plugin.json +1 -1
  5. package/.factory-plugin/plugin.json +1 -1
  6. package/CHANGELOG.md +18 -0
  7. package/README.md +4 -4
  8. package/dist/cli/commands/setup.js +6 -19
  9. package/dist/cli/commands/skills.js +40 -33
  10. package/dist/core/capabilities/runtime-control.d.ts +4 -4
  11. package/dist/core/skills-registry.d.ts +9 -1
  12. package/dist/core/skills-registry.js +25 -2
  13. package/dist/installer/agent-config.d.ts +9 -4
  14. package/dist/installer/agent-config.js +192 -392
  15. package/dist/installer/agent-table.d.ts +103 -0
  16. package/dist/installer/agent-table.js +584 -0
  17. package/dist/installer/setup.js +4 -2
  18. package/dist/installer/skill-locations.d.ts +8 -17
  19. package/dist/installer/skill-locations.js +22 -101
  20. package/dist/installer/version-check.d.ts +5 -1
  21. package/dist/installer/version-check.js +38 -28
  22. package/gemini-extension.json +1 -1
  23. package/integrations/README.md +48 -19
  24. package/integrations/amp/README.md +12 -0
  25. package/integrations/amp/manifest-target.json +3 -0
  26. package/integrations/antigravity/README.md +12 -0
  27. package/integrations/antigravity/manifest-target.json +3 -0
  28. package/integrations/claude-desktop/README.md +12 -0
  29. package/integrations/claude-desktop/manifest-target.json +3 -0
  30. package/integrations/cline/README.md +8 -9
  31. package/integrations/cline-cli/README.md +12 -0
  32. package/integrations/cline-cli/manifest-target.json +3 -0
  33. package/integrations/copilot-jetbrains/README.md +12 -0
  34. package/integrations/copilot-jetbrains/manifest-target.json +3 -0
  35. package/integrations/crush/README.md +12 -0
  36. package/integrations/crush/manifest-target.json +3 -0
  37. package/integrations/github-copilot/README.md +8 -8
  38. package/integrations/goose/README.md +12 -0
  39. package/integrations/goose/manifest-target.json +3 -0
  40. package/integrations/grok-build/README.md +12 -0
  41. package/integrations/grok-build/manifest-target.json +3 -0
  42. package/integrations/hermes/README.md +12 -0
  43. package/integrations/hermes/manifest-target.json +3 -0
  44. package/integrations/junie/README.md +12 -0
  45. package/integrations/junie/manifest-target.json +3 -0
  46. package/integrations/kilo-code/README.md +6 -10
  47. package/integrations/kimi-code/README.md +12 -0
  48. package/integrations/kimi-code/manifest-target.json +3 -0
  49. package/integrations/kiro/README.md +12 -0
  50. package/integrations/kiro/manifest-target.json +3 -0
  51. package/integrations/lm-studio/README.md +8 -8
  52. package/integrations/mistral-vibe/README.md +12 -0
  53. package/integrations/mistral-vibe/manifest-target.json +3 -0
  54. package/integrations/opencode/README.md +9 -12
  55. package/integrations/qoder/README.md +12 -0
  56. package/integrations/qoder/manifest-target.json +3 -0
  57. package/integrations/qwen-code/README.md +12 -0
  58. package/integrations/qwen-code/manifest-target.json +3 -0
  59. package/integrations/roo-code/README.md +8 -7
  60. package/integrations/rovo-dev/README.md +12 -0
  61. package/integrations/rovo-dev/manifest-target.json +3 -0
  62. package/integrations/trae/README.md +12 -0
  63. package/integrations/trae/manifest-target.json +3 -0
  64. package/integrations/visual-studio/README.md +12 -0
  65. package/integrations/visual-studio/manifest-target.json +3 -0
  66. package/integrations/vscode-copilot/README.md +9 -9
  67. package/integrations/warp/README.md +12 -0
  68. package/integrations/warp/manifest-target.json +3 -0
  69. package/integrations/windsurf/README.md +8 -9
  70. package/integrations/zed/README.md +12 -0
  71. package/integrations/zed/manifest-target.json +3 -0
  72. package/library/skills/README.md +242 -0
  73. package/package.json +3 -3
  74. package/registry/generated/gemini-extension.json +1 -1
  75. package/registry/generated/marketplace.claude.json +1 -1
  76. package/registry/generated/plugin.claude.json +1 -1
  77. package/registry/generated/plugin.codex.json +1 -1
  78. package/registry/generated/plugin.cursor.json +1 -1
  79. package/registry/generated/plugin.factory.json +1 -1
  80. package/registry/generated/skills-index.md +242 -0
  81. package/registry/generated/skills-registry.json +492 -94
@@ -0,0 +1,103 @@
1
+ /** Ids `summer setup <agent>` accepts. Legacy ids stay so old commands and
2
+ * configs keep resolving, but they are hidden from help and warn on use. */
3
+ export declare const AGENT_IDS: readonly ["claude-code", "claude-desktop", "codex", "cursor", "windsurf", "antigravity", "gemini", "cline", "cline-cli", "roo-code", "kilo-code", "github-copilot", "vscode-copilot", "visual-studio", "copilot-jetbrains", "opencode", "zed", "kiro", "goose", "hermes", "trae", "qwen-code", "kimi-code", "crush", "amp", "factory", "junie", "warp", "rovo-dev", "qoder", "grok-build", "mistral-vibe", "lm-studio"];
4
+ export type SupportedAgent = (typeof AGENT_IDS)[number];
5
+ export type ConfigScope = "user" | "project";
6
+ /**
7
+ * File shapes the installer can write. One writer per shape in agent-config.ts.
8
+ * json { mcpServers: { <name>: { command, args, env? } } }
9
+ * json-stdio { mcpServers: { <name>: { type: "stdio", command, args, env? } } }
10
+ * json-vscode { servers: { <name>: { type: "stdio", command, args, env? } } }
11
+ * json-copilot { mcpServers: { <name>: { type: "local", command, args, tools: ["*"], env? } } }
12
+ * json-opencode { mcp: { <name>: { type: "local", command: [..], enabled: true, environment? } } }
13
+ * json-servers { servers: { <name>: { command, args, env? } } } (Copilot in JetBrains)
14
+ * json-zed { context_servers: { <name>: { command, args, env } } }
15
+ * json-amp { "amp.mcpServers": { <name>: { command, args, env? } } }
16
+ * json-crush { mcp: { <name>: { type: "stdio", command, args, env? } } }
17
+ * json-transport{ mcpServers: { <name>: { command, args, transport: "stdio", env? } } } (Rovo Dev)
18
+ * toml [mcp_servers.<name>] command/args/env (Codex, Grok Build)
19
+ * toml-array [[mcp_servers]] name/transport/command/args (Mistral Vibe)
20
+ * yaml-goose extensions: <name>: { type: stdio, name, cmd, args, enabled, timeout, envs }
21
+ * yaml-hermes mcp_servers: <name>: { command, args, env? }
22
+ * json-gemini the Gemini extension manifest (legacy)
23
+ */
24
+ export type McpFormat = "json" | "json-stdio" | "json-vscode" | "json-copilot" | "json-opencode" | "json-servers" | "json-zed" | "json-amp" | "json-crush" | "json-transport" | "toml" | "toml-array" | "yaml-goose" | "yaml-hermes" | "json-gemini";
25
+ export type SkillLocationKind = "skill-dir" | "cursor-rule-dir" | "windsurf-rule-file" | "cline-rule-dir" | "opencode-skill-dir";
26
+ export interface PathContext {
27
+ home: string;
28
+ os: NodeJS.Platform;
29
+ env: NodeJS.ProcessEnv;
30
+ cwd: string;
31
+ }
32
+ export interface SkillHome {
33
+ kind: SkillLocationKind;
34
+ user: (ctx: PathContext) => string;
35
+ /** null: the agent reads skills from one user-level place only. */
36
+ project: ((ctx: PathContext) => string) | null;
37
+ /** `summer skills install --agent <id>` without --scope uses this (default "user"). */
38
+ defaultScope?: ConfigScope;
39
+ /** Printed after a skills install when the agent needs a nudge to reload. */
40
+ reloadHint?: string;
41
+ /**
42
+ * Where Summer versions before 3.1 wrote this agent's skills as generated
43
+ * rule files. `skills install --force` deletes the `summer-<skill>` files it
44
+ * finds there so the agent does not load a rule and a skill for the same slug.
45
+ */
46
+ legacyRules?: {
47
+ user: (ctx: PathContext) => string;
48
+ project: ((ctx: PathContext) => string) | null;
49
+ suffix: string;
50
+ };
51
+ }
52
+ export interface AgentSpec {
53
+ id: SupportedAgent;
54
+ label: string;
55
+ /** Extra spellings `summer setup` accepts (the id itself always resolves). */
56
+ aliases: readonly string[];
57
+ /** legacy: product retired or renamed; still writes, but warns and is hidden from help. */
58
+ status: "active" | "legacy";
59
+ legacyNote?: string;
60
+ /** Env var that overrides the MCP config path (tests, unusual installs). */
61
+ envOverride: string;
62
+ format: McpFormat;
63
+ mcp: {
64
+ /** null: user-level servers are managed in the app's UI; a user request writes the project file with a warning. */
65
+ user: ((ctx: PathContext) => string) | null;
66
+ /** null: user-only config; a project request falls back to user with a warning. */
67
+ project: ((ctx: PathContext) => string) | null;
68
+ /** Extra warning printed when project scope is requested (also when it is honoured). */
69
+ projectNote?: string;
70
+ };
71
+ /** What to do after the config is written. */
72
+ restart: string;
73
+ /** null: no skills/rules mechanism — MCP only. */
74
+ skills: SkillHome | null;
75
+ noSkillsNote?: string;
76
+ }
77
+ export declare function agentSpec(id: SupportedAgent): AgentSpec;
78
+ export declare function allAgentSpecs(): readonly AgentSpec[];
79
+ /** Ids shown in help and error messages (legacy ids still parse). */
80
+ export declare const supportedAgents: readonly SupportedAgent[];
81
+ /** Ids with a skills/rules home; `AGENT_CLIENTS` in core mirrors this plus "summer". */
82
+ export declare const skillCapableAgents: readonly SupportedAgent[];
83
+ /** Every spelling → canonical id. Aliases must be unique across the table. */
84
+ export declare function agentAliasMap(): Record<string, SupportedAgent>;
85
+ export declare function agentLabel(id: SupportedAgent): string;
86
+ export declare function defaultPathContext(env?: NodeJS.ProcessEnv, cwd?: string): PathContext;
87
+ export interface ResolvedMcpPath {
88
+ path: string;
89
+ /** The scope actually written (project requests fall back to user when the agent has no project config). */
90
+ scope: ConfigScope;
91
+ warnings: string[];
92
+ }
93
+ /** Where the MCP config goes for an agent and requested scope, with the warnings to show. */
94
+ export declare function resolveMcpPath(spec: AgentSpec, scope: ConfigScope, ctx: PathContext): ResolvedMcpPath;
95
+ /** Rule files a pre-3.1 Summer wrote for this agent at this scope; `null` when the agent never had any. */
96
+ export declare function legacyRuleFiles(spec: AgentSpec, scope: ConfigScope, ctx: PathContext, skillNames: Iterable<string>): string[] | null;
97
+ export interface ResolvedSkillPath {
98
+ kind: SkillLocationKind;
99
+ path: string;
100
+ scope: ConfigScope;
101
+ }
102
+ /** Where skills go for an agent with a skills home. */
103
+ export declare function resolveSkillPath(spec: AgentSpec, scope: ConfigScope, ctx: PathContext): ResolvedSkillPath | null;