@plumpslabs/kuma 2.3.9 → 2.3.10
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/dist/{agentDetector-G4RBMZ6X.js → agentDetector-3OTNKKBS.js} +4 -4
- package/dist/{chunk-L5WU2HTN.js → chunk-J2CBDLXB.js} +46 -5
- package/dist/index.js +7 -7
- package/dist/{init-AJAESUZZ.js → init-LLP6JDFR.js} +1 -1
- package/dist/{skillGenerator-F6YO4H5D.js → skillGenerator-ILZFWO5O.js} +6 -8
- package/package.json +1 -1
|
@@ -36,10 +36,10 @@ var AGENT_DETECTORS = [
|
|
|
36
36
|
},
|
|
37
37
|
{
|
|
38
38
|
type: "windsurf",
|
|
39
|
-
checkFiles: [
|
|
40
|
-
checkDirs: [],
|
|
39
|
+
checkFiles: [],
|
|
40
|
+
checkDirs: [".windsurf"],
|
|
41
41
|
priority: 70,
|
|
42
|
-
label: "Windsurf (.
|
|
42
|
+
label: "Windsurf (.windsurf/)"
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
type: "opencode",
|
|
@@ -156,7 +156,7 @@ function getSkillPath(type) {
|
|
|
156
156
|
case "aider":
|
|
157
157
|
return "CONVENTIONS.md";
|
|
158
158
|
case "windsurf":
|
|
159
|
-
return ".
|
|
159
|
+
return ".windsurf/rules/kuma.md";
|
|
160
160
|
case "copilot":
|
|
161
161
|
return ".github/skills/kuma/SKILL.md";
|
|
162
162
|
case "qwen":
|
|
@@ -23,12 +23,12 @@ var ALL_CONFIG_TYPES = [
|
|
|
23
23
|
var CONFIG_LABELS = {
|
|
24
24
|
claude: "Claude Code (CLAUDE.md / plugin)",
|
|
25
25
|
cursor: "Cursor (.cursor/rules/*.mdc)",
|
|
26
|
-
windsurf: "Windsurf (.
|
|
26
|
+
windsurf: "Windsurf (.windsurf/rules/)",
|
|
27
27
|
copilot: "GitHub Copilot Editor (AGENTS.md + Skill)",
|
|
28
28
|
cline: "Cline (.clinerules/*.md)",
|
|
29
29
|
aider: "Aider (CONVENTIONS.md via .aider.conf.yml)",
|
|
30
30
|
antigravity: "Antigravity CLI (.agents/skills/)",
|
|
31
|
-
opencode: "OpenCode (opencode.json)",
|
|
31
|
+
opencode: "OpenCode (opencode.json + skills)",
|
|
32
32
|
codex: "Codex CLI (AGENTS.md + .codex/config.toml)",
|
|
33
33
|
qwen: "Qwen Code (AGENTS.md + settings.json)",
|
|
34
34
|
kiro: "Kiro (.kiro/steering/*.md)",
|
|
@@ -42,7 +42,7 @@ function configFilePath(type) {
|
|
|
42
42
|
case "cursor":
|
|
43
43
|
return ".cursor/rules/kuma.mdc";
|
|
44
44
|
case "windsurf":
|
|
45
|
-
return ".
|
|
45
|
+
return ".windsurf/rules/kuma.md";
|
|
46
46
|
case "copilot":
|
|
47
47
|
return "AGENTS.md";
|
|
48
48
|
case "cline":
|
|
@@ -97,7 +97,12 @@ function windsurfRulesTemplate() {
|
|
|
97
97
|
return [
|
|
98
98
|
"# Kuma MCP \u2014 Windsurf",
|
|
99
99
|
"",
|
|
100
|
-
|
|
100
|
+
"Windsurf Cascade agent: Kuma MCP tools are installed.",
|
|
101
|
+
"All behavioral rules are in `.kuma/init.md`.",
|
|
102
|
+
"**Before coding, load project context via `kuma_init()`.**",
|
|
103
|
+
"Project knowledge persists in `.kuma/memories/*.md` across sessions.",
|
|
104
|
+
"",
|
|
105
|
+
"Also auto-detected as SKILL.md in `.windsurf/skills/` and `.agents/skills/`."
|
|
101
106
|
].join("\n");
|
|
102
107
|
}
|
|
103
108
|
function copilotTemplate() {
|
|
@@ -337,7 +342,43 @@ var TEMPLATES = {
|
|
|
337
342
|
codewhale: codewhaleTemplate
|
|
338
343
|
};
|
|
339
344
|
var APPEND_SEPARATOR = "\n\n---\n_Generated by Kuma MCP - https://github.com/plumpslabs/kuma_\n\n";
|
|
340
|
-
function handleOpencodeSecondary(
|
|
345
|
+
function handleOpencodeSecondary(root, results) {
|
|
346
|
+
const skillPath = path.resolve(root, ".agents", "skills", "kuma", "SKILL.md");
|
|
347
|
+
if (results.some((r) => r.filePath === ".agents/skills/kuma/SKILL.md")) return;
|
|
348
|
+
try {
|
|
349
|
+
const dir = path.dirname(skillPath);
|
|
350
|
+
const content = [
|
|
351
|
+
"---",
|
|
352
|
+
"name: kuma-mcp",
|
|
353
|
+
"description: Kuma MCP \u2014 safety toolkit for AI coding agents. Research, memory, and safety guard.",
|
|
354
|
+
"---",
|
|
355
|
+
"",
|
|
356
|
+
"Kuma MCP tools are installed. All behavioral rules are in `.kuma/init.md`.",
|
|
357
|
+
"**Before coding, call `kuma_init()` to load project context and session memory.**",
|
|
358
|
+
"Project knowledge persists in `.kuma/memories/*.md` across sessions.",
|
|
359
|
+
"",
|
|
360
|
+
"MCP server configured in `opencode.json`."
|
|
361
|
+
].join("\n");
|
|
362
|
+
if (fs.existsSync(skillPath)) {
|
|
363
|
+
const existing = fs.readFileSync(skillPath, "utf-8");
|
|
364
|
+
if (existing.includes("kuma-mcp")) {
|
|
365
|
+
results.push({ type: "opencode", filePath: ".agents/skills/kuma/SKILL.md", action: "skipped" });
|
|
366
|
+
return;
|
|
367
|
+
}
|
|
368
|
+
results.push({ type: "opencode", filePath: ".agents/skills/kuma/SKILL.md", action: "skipped" });
|
|
369
|
+
} else {
|
|
370
|
+
if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
|
|
371
|
+
fs.writeFileSync(skillPath, content, "utf-8");
|
|
372
|
+
results.push({ type: "opencode", filePath: ".agents/skills/kuma/SKILL.md", action: "created" });
|
|
373
|
+
}
|
|
374
|
+
} catch (err) {
|
|
375
|
+
results.push({
|
|
376
|
+
type: "opencode",
|
|
377
|
+
filePath: ".agents/skills/kuma/SKILL.md",
|
|
378
|
+
action: "error",
|
|
379
|
+
error: err instanceof Error ? err.message : String(err)
|
|
380
|
+
});
|
|
381
|
+
}
|
|
341
382
|
}
|
|
342
383
|
function handleCodexSecondary(root, results) {
|
|
343
384
|
const tomlPath = path.resolve(root, ".codex/config.toml");
|
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
ALL_CONFIG_TYPES,
|
|
9
9
|
formatInitResults,
|
|
10
10
|
runInit
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-J2CBDLXB.js";
|
|
12
12
|
import {
|
|
13
13
|
formatDecisionTemplate,
|
|
14
14
|
getProactiveMemories,
|
|
@@ -2340,7 +2340,7 @@ Usage:
|
|
|
2340
2340
|
Available config files:
|
|
2341
2341
|
--claude CLAUDE.md (Claude Code)
|
|
2342
2342
|
--cursor .cursor/rules/kuma.mdc (Cursor)
|
|
2343
|
-
--windsurf .
|
|
2343
|
+
--windsurf .windsurf/rules/kuma.md (Windsurf)
|
|
2344
2344
|
--copilot AGENTS.md + .github/skills/ (GitHub Copilot Editor)
|
|
2345
2345
|
--cline .clinerules/kuma.md (Cline)
|
|
2346
2346
|
--aider CONVENTIONS.md + .aider.conf.yml (Aider)
|
|
@@ -2556,7 +2556,7 @@ async function main() {
|
|
|
2556
2556
|
const matchaAgentsMd = path7.resolve(process.cwd(), "AGENTS.md");
|
|
2557
2557
|
const matchaWindsurfRules = path7.resolve(
|
|
2558
2558
|
process.cwd(),
|
|
2559
|
-
".
|
|
2559
|
+
".windsurf"
|
|
2560
2560
|
);
|
|
2561
2561
|
if (fs7.existsSync(matchaSkills) || fs7.existsSync(matchaAgents) || fs7.existsSync(matchaRootSkills) || fs7.existsSync(matchaAgentsMd) || fs7.existsSync(matchaWindsurfRules)) {
|
|
2562
2562
|
console.error(
|
|
@@ -2571,7 +2571,7 @@ async function main() {
|
|
|
2571
2571
|
});
|
|
2572
2572
|
(async () => {
|
|
2573
2573
|
try {
|
|
2574
|
-
const { generateInitMdContent } = await import("./init-
|
|
2574
|
+
const { generateInitMdContent } = await import("./init-LLP6JDFR.js");
|
|
2575
2575
|
const fs7 = await import("fs");
|
|
2576
2576
|
const path7 = await import("path");
|
|
2577
2577
|
const initMdPath = path7.resolve(process.cwd(), ".kuma/init.md");
|
|
@@ -2587,8 +2587,8 @@ async function main() {
|
|
|
2587
2587
|
})();
|
|
2588
2588
|
(async () => {
|
|
2589
2589
|
try {
|
|
2590
|
-
const { detectAgent, getSkillPath, getAgentLabel } = await import("./agentDetector-
|
|
2591
|
-
const { generateSkill, getSecondaryFiles } = await import("./skillGenerator-
|
|
2590
|
+
const { detectAgent, getSkillPath, getAgentLabel } = await import("./agentDetector-3OTNKKBS.js");
|
|
2591
|
+
const { generateSkill, getSecondaryFiles } = await import("./skillGenerator-ILZFWO5O.js");
|
|
2592
2592
|
const fs7 = await import("fs");
|
|
2593
2593
|
const path7 = await import("path");
|
|
2594
2594
|
const detection = detectAgent();
|
|
@@ -2745,7 +2745,7 @@ function interactiveSelect() {
|
|
|
2745
2745
|
type: "cursor",
|
|
2746
2746
|
label: "2) Cursor (.cursor/rules/kuma.mdc)"
|
|
2747
2747
|
},
|
|
2748
|
-
{ type: "windsurf", label: "3) Windsurf (.
|
|
2748
|
+
{ type: "windsurf", label: "3) Windsurf (.windsurf/rules/kuma.md)" },
|
|
2749
2749
|
{
|
|
2750
2750
|
type: "copilot",
|
|
2751
2751
|
label: "4) GitHub Copilot Editor (AGENTS.md + Skill)"
|
|
@@ -176,16 +176,14 @@ function generateAiderConfig() {
|
|
|
176
176
|
}
|
|
177
177
|
function generateWindsurfSkill() {
|
|
178
178
|
return [
|
|
179
|
-
"# Kuma MCP \u2014 Windsurf
|
|
179
|
+
"# Kuma MCP \u2014 Windsurf",
|
|
180
180
|
"",
|
|
181
|
-
|
|
181
|
+
"Windsurf Cascade agent: Kuma MCP tools are available.",
|
|
182
|
+
"All behavioral rules are in `.kuma/init.md`.",
|
|
183
|
+
"**Before coding, call `kuma_init()` to load project context.**",
|
|
184
|
+
"Project knowledge persists in `.kuma/memories/*.md` across sessions.",
|
|
182
185
|
"",
|
|
183
|
-
"
|
|
184
|
-
" \u2022 `kuma_init()` \u2014 load project context (call first)",
|
|
185
|
-
' \u2022 `kuma_guard({check: "all"})` \u2014 safety check',
|
|
186
|
-
' \u2022 `kuma_verify({action: "test"})` \u2014 verify after edits',
|
|
187
|
-
" \u2022 `.kuma/init.md` \u2014 full behavioral rules",
|
|
188
|
-
" \u2022 `.kuma/memories/` \u2014 persistent project knowledge"
|
|
186
|
+
"Also auto-detected via `.windsurf/skills/` and `.agents/skills/`."
|
|
189
187
|
].join("\n");
|
|
190
188
|
}
|
|
191
189
|
function generateCopilotSkill() {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@plumpslabs/kuma",
|
|
3
|
-
"version": "2.3.
|
|
3
|
+
"version": "2.3.10",
|
|
4
4
|
"description": "Safety-first context & orchestration engine for AI coding agents. MCP server with mandatory research pipeline, knowledge graph, impact analysis, decision memory, and safety guard — works with any MCP client.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|