superskill 0.2.2 → 0.2.4

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 (141) hide show
  1. package/.claude-plugin/marketplace.json +23 -0
  2. package/.claude-plugin/plugin.json +12 -0
  3. package/.mcp.json +9 -0
  4. package/LICENSE-COMMERCIAL.md +46 -0
  5. package/dist/setup/configure.js +21 -1
  6. package/dist/setup/configure.js.map +1 -1
  7. package/dist/setup/teardown.js +13 -5
  8. package/dist/setup/teardown.js.map +1 -1
  9. package/package.json +7 -1
  10. package/dist/commands/brainstorm.test.d.ts +0 -1
  11. package/dist/commands/brainstorm.test.js +0 -110
  12. package/dist/commands/brainstorm.test.js.map +0 -1
  13. package/dist/commands/context.test.d.ts +0 -1
  14. package/dist/commands/context.test.js +0 -230
  15. package/dist/commands/context.test.js.map +0 -1
  16. package/dist/commands/decide.test.d.ts +0 -1
  17. package/dist/commands/decide.test.js +0 -109
  18. package/dist/commands/decide.test.js.map +0 -1
  19. package/dist/commands/graph.test.d.ts +0 -1
  20. package/dist/commands/graph.test.js +0 -215
  21. package/dist/commands/graph.test.js.map +0 -1
  22. package/dist/commands/learn.test.d.ts +0 -1
  23. package/dist/commands/learn.test.js +0 -241
  24. package/dist/commands/learn.test.js.map +0 -1
  25. package/dist/commands/read.test.d.ts +0 -1
  26. package/dist/commands/read.test.js +0 -48
  27. package/dist/commands/read.test.js.map +0 -1
  28. package/dist/commands/resume.test.d.ts +0 -1
  29. package/dist/commands/resume.test.js +0 -243
  30. package/dist/commands/resume.test.js.map +0 -1
  31. package/dist/commands/search.test.d.ts +0 -1
  32. package/dist/commands/search.test.js +0 -61
  33. package/dist/commands/search.test.js.map +0 -1
  34. package/dist/commands/session.test.d.ts +0 -1
  35. package/dist/commands/session.test.js +0 -231
  36. package/dist/commands/session.test.js.map +0 -1
  37. package/dist/commands/skill/index.test.d.ts +0 -1
  38. package/dist/commands/skill/index.test.js +0 -137
  39. package/dist/commands/skill/index.test.js.map +0 -1
  40. package/dist/commands/skill/install.test.d.ts +0 -1
  41. package/dist/commands/skill/install.test.js +0 -225
  42. package/dist/commands/skill/install.test.js.map +0 -1
  43. package/dist/commands/skill/list.test.d.ts +0 -1
  44. package/dist/commands/skill/list.test.js +0 -101
  45. package/dist/commands/skill/list.test.js.map +0 -1
  46. package/dist/commands/skill/schema.test.d.ts +0 -1
  47. package/dist/commands/skill/schema.test.js +0 -142
  48. package/dist/commands/skill/schema.test.js.map +0 -1
  49. package/dist/commands/skill/validate.test.d.ts +0 -1
  50. package/dist/commands/skill/validate.test.js +0 -171
  51. package/dist/commands/skill/validate.test.js.map +0 -1
  52. package/dist/commands/task.test.d.ts +0 -1
  53. package/dist/commands/task.test.js +0 -395
  54. package/dist/commands/task.test.js.map +0 -1
  55. package/dist/commands/todo.test.d.ts +0 -1
  56. package/dist/commands/todo.test.js +0 -324
  57. package/dist/commands/todo.test.js.map +0 -1
  58. package/dist/commands/write.test.d.ts +0 -1
  59. package/dist/commands/write.test.js +0 -79
  60. package/dist/commands/write.test.js.map +0 -1
  61. package/dist/config.test.d.ts +0 -1
  62. package/dist/config.test.js +0 -147
  63. package/dist/config.test.js.map +0 -1
  64. package/dist/core/executor.test.d.ts +0 -1
  65. package/dist/core/executor.test.js +0 -206
  66. package/dist/core/executor.test.js.map +0 -1
  67. package/dist/core/registry.test.d.ts +0 -1
  68. package/dist/core/registry.test.js +0 -213
  69. package/dist/core/registry.test.js.map +0 -1
  70. package/dist/integration/coordination.test.d.ts +0 -1
  71. package/dist/integration/coordination.test.js +0 -286
  72. package/dist/integration/coordination.test.js.map +0 -1
  73. package/dist/integration/project-artifacts.test.d.ts +0 -1
  74. package/dist/integration/project-artifacts.test.js +0 -275
  75. package/dist/integration/project-artifacts.test.js.map +0 -1
  76. package/dist/integration/registry-graph.test.d.ts +0 -1
  77. package/dist/integration/registry-graph.test.js +0 -157
  78. package/dist/integration/registry-graph.test.js.map +0 -1
  79. package/dist/integration/vault-lifecycle.test.d.ts +0 -1
  80. package/dist/integration/vault-lifecycle.test.js +0 -183
  81. package/dist/integration/vault-lifecycle.test.js.map +0 -1
  82. package/dist/lib/auto-number.test.d.ts +0 -1
  83. package/dist/lib/auto-number.test.js +0 -88
  84. package/dist/lib/auto-number.test.js.map +0 -1
  85. package/dist/lib/auto-profile.test.d.ts +0 -1
  86. package/dist/lib/auto-profile.test.js +0 -227
  87. package/dist/lib/auto-profile.test.js.map +0 -1
  88. package/dist/lib/escape-regex.test.d.ts +0 -1
  89. package/dist/lib/escape-regex.test.js +0 -27
  90. package/dist/lib/escape-regex.test.js.map +0 -1
  91. package/dist/lib/frontmatter.test.d.ts +0 -1
  92. package/dist/lib/frontmatter.test.js +0 -192
  93. package/dist/lib/frontmatter.test.js.map +0 -1
  94. package/dist/lib/project-detector.test.d.ts +0 -1
  95. package/dist/lib/project-detector.test.js +0 -117
  96. package/dist/lib/project-detector.test.js.map +0 -1
  97. package/dist/lib/safe-external-path.test.d.ts +0 -1
  98. package/dist/lib/safe-external-path.test.js +0 -99
  99. package/dist/lib/safe-external-path.test.js.map +0 -1
  100. package/dist/lib/search-engine.test.d.ts +0 -1
  101. package/dist/lib/search-engine.test.js +0 -120
  102. package/dist/lib/search-engine.test.js.map +0 -1
  103. package/dist/lib/session-registry.test.d.ts +0 -1
  104. package/dist/lib/session-registry.test.js +0 -199
  105. package/dist/lib/session-registry.test.js.map +0 -1
  106. package/dist/lib/stack-detector.test.d.ts +0 -1
  107. package/dist/lib/stack-detector.test.js +0 -110
  108. package/dist/lib/stack-detector.test.js.map +0 -1
  109. package/dist/lib/token-estimator.test.d.ts +0 -1
  110. package/dist/lib/token-estimator.test.js +0 -65
  111. package/dist/lib/token-estimator.test.js.map +0 -1
  112. package/dist/lib/tool-detector.test.d.ts +0 -1
  113. package/dist/lib/tool-detector.test.js +0 -170
  114. package/dist/lib/tool-detector.test.js.map +0 -1
  115. package/dist/lib/vault-fs.test.d.ts +0 -1
  116. package/dist/lib/vault-fs.test.js +0 -210
  117. package/dist/lib/vault-fs.test.js.map +0 -1
  118. package/dist/setup/configure.test.d.ts +0 -1
  119. package/dist/setup/configure.test.js +0 -112
  120. package/dist/setup/configure.test.js.map +0 -1
  121. package/dist/setup/detect.test.d.ts +0 -1
  122. package/dist/setup/detect.test.js +0 -44
  123. package/dist/setup/detect.test.js.map +0 -1
  124. package/dist/setup/instructions.test.d.ts +0 -1
  125. package/dist/setup/instructions.test.js +0 -84
  126. package/dist/setup/instructions.test.js.map +0 -1
  127. package/dist/setup/json-config.test.d.ts +0 -1
  128. package/dist/setup/json-config.test.js +0 -92
  129. package/dist/setup/json-config.test.js.map +0 -1
  130. package/dist/setup/setup-integration.test.d.ts +0 -1
  131. package/dist/setup/setup-integration.test.js +0 -72
  132. package/dist/setup/setup-integration.test.js.map +0 -1
  133. package/dist/setup/teardown.test.d.ts +0 -1
  134. package/dist/setup/teardown.test.js +0 -105
  135. package/dist/setup/teardown.test.js.map +0 -1
  136. package/dist/setup/toml-config.test.d.ts +0 -1
  137. package/dist/setup/toml-config.test.js +0 -49
  138. package/dist/setup/toml-config.test.js.map +0 -1
  139. package/dist/test-helpers.test.d.ts +0 -1
  140. package/dist/test-helpers.test.js +0 -90
  141. package/dist/test-helpers.test.js.map +0 -1
@@ -1,142 +0,0 @@
1
- import { describe, it, expect } from "vitest";
2
- import { isSkillFrontmatter, validateSkillFrontmatter, } from "./schema.js";
3
- describe("isSkillFrontmatter", () => {
4
- it("returns true for valid minimal frontmatter", () => {
5
- expect(isSkillFrontmatter({ name: "test", description: "A test" })).toBe(true);
6
- });
7
- it("returns true for valid full frontmatter", () => {
8
- const fm = {
9
- name: "full",
10
- description: "Full skill",
11
- version: "1.0.0",
12
- author: "author",
13
- tags: ["a", "b"],
14
- depends_on: ["other"],
15
- };
16
- expect(isSkillFrontmatter(fm)).toBe(true);
17
- });
18
- it("returns false for null", () => {
19
- expect(isSkillFrontmatter(null)).toBe(false);
20
- });
21
- it("returns false for non-object", () => {
22
- expect(isSkillFrontmatter("string")).toBe(false);
23
- expect(isSkillFrontmatter(42)).toBe(false);
24
- expect(isSkillFrontmatter(true)).toBe(false);
25
- expect(isSkillFrontmatter(undefined)).toBe(false);
26
- });
27
- it("returns false when name is missing", () => {
28
- expect(isSkillFrontmatter({ description: "test" })).toBe(false);
29
- });
30
- it("returns false when description is missing", () => {
31
- expect(isSkillFrontmatter({ name: "test" })).toBe(false);
32
- });
33
- it("returns false when name is not a string", () => {
34
- expect(isSkillFrontmatter({ name: 123, description: "test" })).toBe(false);
35
- expect(isSkillFrontmatter({ name: null, description: "test" })).toBe(false);
36
- });
37
- it("returns false when description is not a string", () => {
38
- expect(isSkillFrontmatter({ name: "test", description: 123 })).toBe(false);
39
- });
40
- it("returns false when version is not a string", () => {
41
- expect(isSkillFrontmatter({ name: "test", description: "test", version: 1 })).toBe(false);
42
- });
43
- it("returns false when author is not a string", () => {
44
- expect(isSkillFrontmatter({ name: "test", description: "test", author: {} })).toBe(false);
45
- });
46
- it("returns false when tags is not a string array", () => {
47
- expect(isSkillFrontmatter({ name: "test", description: "test", tags: "not-array" })).toBe(false);
48
- expect(isSkillFrontmatter({ name: "test", description: "test", tags: [1, 2] })).toBe(false);
49
- });
50
- it("returns false when depends_on is not a string array", () => {
51
- expect(isSkillFrontmatter({ name: "test", description: "test", depends_on: "string" })).toBe(false);
52
- expect(isSkillFrontmatter({ name: "test", description: "test", depends_on: [123] })).toBe(false);
53
- });
54
- it("returns true for empty optional arrays", () => {
55
- expect(isSkillFrontmatter({ name: "test", description: "test", tags: [], depends_on: [] })).toBe(true);
56
- });
57
- });
58
- describe("validateSkillFrontmatter", () => {
59
- it("returns valid for correct minimal frontmatter", () => {
60
- const result = validateSkillFrontmatter({ name: "test", description: "desc" });
61
- expect(result.valid).toBe(true);
62
- expect(result.errors).toEqual([]);
63
- });
64
- it("returns valid for full frontmatter", () => {
65
- const result = validateSkillFrontmatter({
66
- name: "test",
67
- description: "desc",
68
- version: "1.0.0",
69
- author: "author",
70
- tags: ["a"],
71
- depends_on: ["base"],
72
- });
73
- expect(result.valid).toBe(true);
74
- expect(result.errors).toEqual([]);
75
- });
76
- it("returns error for null input", () => {
77
- const result = validateSkillFrontmatter(null);
78
- expect(result.valid).toBe(false);
79
- expect(result.errors).toContain("Frontmatter must be an object");
80
- });
81
- it("returns error for non-object input", () => {
82
- const result = validateSkillFrontmatter("string");
83
- expect(result.valid).toBe(false);
84
- expect(result.errors).toContain("Frontmatter must be an object");
85
- });
86
- it("returns error for missing name", () => {
87
- const result = validateSkillFrontmatter({ description: "desc" });
88
- expect(result.valid).toBe(false);
89
- expect(result.errors.some((e) => e.includes("name"))).toBe(true);
90
- });
91
- it("returns error for empty name", () => {
92
- const result = validateSkillFrontmatter({ name: " ", description: "desc" });
93
- expect(result.valid).toBe(false);
94
- expect(result.errors.some((e) => e.includes("name"))).toBe(true);
95
- });
96
- it("returns error for missing description", () => {
97
- const result = validateSkillFrontmatter({ name: "test" });
98
- expect(result.valid).toBe(false);
99
- expect(result.errors.some((e) => e.includes("description"))).toBe(true);
100
- });
101
- it("returns error for empty description", () => {
102
- const result = validateSkillFrontmatter({ name: "test", description: "" });
103
- expect(result.valid).toBe(false);
104
- expect(result.errors.some((e) => e.includes("description"))).toBe(true);
105
- });
106
- it("returns error for non-string version", () => {
107
- const result = validateSkillFrontmatter({ name: "test", description: "desc", version: 123 });
108
- expect(result.valid).toBe(false);
109
- expect(result.errors.some((e) => e.includes("version"))).toBe(true);
110
- });
111
- it("returns error for non-string author", () => {
112
- const result = validateSkillFrontmatter({ name: "test", description: "desc", author: 42 });
113
- expect(result.valid).toBe(false);
114
- expect(result.errors.some((e) => e.includes("author"))).toBe(true);
115
- });
116
- it("returns error for non-array tags", () => {
117
- const result = validateSkillFrontmatter({ name: "test", description: "desc", tags: "bad" });
118
- expect(result.valid).toBe(false);
119
- expect(result.errors.some((e) => e.includes("tags"))).toBe(true);
120
- });
121
- it("returns error for non-string-array tags", () => {
122
- const result = validateSkillFrontmatter({ name: "test", description: "desc", tags: [1, 2] });
123
- expect(result.valid).toBe(false);
124
- expect(result.errors.some((e) => e.includes("tags"))).toBe(true);
125
- });
126
- it("returns error for non-array depends_on", () => {
127
- const result = validateSkillFrontmatter({ name: "test", description: "desc", depends_on: "dep" });
128
- expect(result.valid).toBe(false);
129
- expect(result.errors.some((e) => e.includes("depends_on"))).toBe(true);
130
- });
131
- it("returns multiple errors at once", () => {
132
- const result = validateSkillFrontmatter({});
133
- expect(result.valid).toBe(false);
134
- expect(result.errors.length).toBeGreaterThanOrEqual(2);
135
- });
136
- it("allows empty object to collect all errors", () => {
137
- const result = validateSkillFrontmatter({ name: "", description: "", version: 1, author: 2, tags: "bad", depends_on: "bad" });
138
- expect(result.valid).toBe(false);
139
- expect(result.errors).toHaveLength(6);
140
- });
141
- });
142
- //# sourceMappingURL=schema.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema.test.js","sourceRoot":"","sources":["../../../src/commands/skill/schema.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,171 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach, vi } from "vitest";
2
- import { mkdir, rm, writeFile } from "fs/promises";
3
- import { homedir } from "os";
4
- import { join } from "path";
5
- import { validateSkill } from "./validate.js";
6
- describe("validateSkill", () => {
7
- let vaultRoot;
8
- beforeEach(async () => {
9
- vaultRoot = join(homedir(), `.vault-skill-validate-test-${Date.now()}-${Math.random().toString(36).slice(2)}`);
10
- await mkdir(vaultRoot, { recursive: true });
11
- });
12
- afterEach(async () => {
13
- await rm(vaultRoot, { recursive: true, force: true });
14
- });
15
- describe("valid skill files", () => {
16
- const cases = [
17
- {
18
- name: "minimal valid frontmatter",
19
- content: "---\nname: my-skill\ndescription: Does something\n---\n\n# My Skill",
20
- expectedName: "my-skill",
21
- expectedDesc: "Does something",
22
- },
23
- {
24
- name: "full frontmatter with all optional fields",
25
- content: `---
26
- name: full-skill
27
- description: Full skill with all fields
28
- version: "2.1.0"
29
- author: test-author
30
- tags:
31
- - category
32
- - utility
33
- depends_on:
34
- - base-skill
35
- ---
36
-
37
- # Full Skill
38
- `,
39
- expectedName: "full-skill",
40
- expectedVersion: "2.1.0",
41
- },
42
- {
43
- name: "frontmatter with body content",
44
- content: "---\nname: body-skill\ndescription: Has body\n---\n\nSome body content here",
45
- expectedName: "body-skill",
46
- },
47
- ];
48
- for (const { name, content, expectedName, expectedDesc, expectedVersion } of cases) {
49
- it(name, async () => {
50
- const skillPath = join(vaultRoot, "skill.md");
51
- await writeFile(skillPath, content);
52
- const result = await validateSkill({ skillPath });
53
- expect(result.valid).toBe(true);
54
- expect(result.errors).toEqual([]);
55
- expect(result.frontmatter?.name).toBe(expectedName);
56
- if (expectedDesc)
57
- expect(result.frontmatter?.description).toBe(expectedDesc);
58
- if (expectedVersion)
59
- expect(result.frontmatter?.version).toBe(expectedVersion);
60
- });
61
- }
62
- });
63
- describe("invalid skill files", () => {
64
- const cases = [
65
- {
66
- name: "missing name field",
67
- content: "---\ndescription: No name\n---\n\n# Skill",
68
- expectedError: "name",
69
- },
70
- {
71
- name: "missing description field",
72
- content: "---\nname: no-desc\n---\n\n# Skill",
73
- expectedError: "description",
74
- },
75
- {
76
- name: "empty frontmatter",
77
- content: "---\n---\n\n# Skill",
78
- expectedErrorCount: 2,
79
- },
80
- {
81
- name: "no frontmatter at all",
82
- content: "# Just a heading\n\nNo frontmatter here",
83
- expectedErrorCount: 2,
84
- },
85
- {
86
- name: "non-string version",
87
- content: "---\nname: bad-ver\ndescription: Test\nversion: 123\n---\n\n# Skill",
88
- expectedError: "version",
89
- },
90
- {
91
- name: "non-string author",
92
- content: "---\nname: bad-author\ndescription: Test\nauthor: 42\n---\n\n# Skill",
93
- expectedError: "author",
94
- },
95
- {
96
- name: "non-array tags",
97
- content: "---\nname: bad-tags\ndescription: Test\ntags: not-array\n---\n\n# Skill",
98
- expectedError: "tags",
99
- },
100
- {
101
- name: "non-string array tags",
102
- content: "---\nname: bad-tags2\ndescription: Test\ntags: [1, 2]\n---\n\n# Skill",
103
- expectedError: "tags",
104
- },
105
- {
106
- name: "non-array depends_on",
107
- content: "---\nname: bad-deps\ndescription: Test\ndepends_on: string-val\n---\n\n# Skill",
108
- expectedError: "depends_on",
109
- },
110
- ];
111
- for (const { name, content, expectedError, expectedErrorCount } of cases) {
112
- it(name, async () => {
113
- const skillPath = join(vaultRoot, "invalid.md");
114
- await writeFile(skillPath, content);
115
- const result = await validateSkill({ skillPath });
116
- expect(result.valid).toBe(false);
117
- if (expectedError) {
118
- expect(result.errors.some((e) => e.includes(expectedError))).toBe(true);
119
- }
120
- if (expectedErrorCount) {
121
- expect(result.errors.length).toBe(expectedErrorCount);
122
- }
123
- expect(result.frontmatter).toBeUndefined();
124
- });
125
- }
126
- });
127
- describe("file read errors", () => {
128
- it("returns error for nonexistent file", async () => {
129
- const result = await validateSkill({ skillPath: "/nonexistent/path/skill.md" });
130
- expect(result.valid).toBe(false);
131
- expect(result.errors[0]).toContain("Failed to read file");
132
- });
133
- });
134
- describe("URL sources", () => {
135
- it("validates skill from URL", async () => {
136
- const mockContent = "---\nname: url-skill\ndescription: From URL\n---\n\n# URL Skill";
137
- vi.stubGlobal("fetch", vi.fn().mockResolvedValue({
138
- ok: true,
139
- text: () => Promise.resolve(mockContent),
140
- }));
141
- const result = await validateSkill({ skillPath: "https://example.com/skill.md" });
142
- expect(result.valid).toBe(true);
143
- expect(result.frontmatter?.name).toBe("url-skill");
144
- vi.unstubAllGlobals();
145
- });
146
- it("returns error when fetch fails", async () => {
147
- vi.stubGlobal("fetch", vi.fn().mockResolvedValue({
148
- ok: false,
149
- status: 404,
150
- statusText: "Not Found",
151
- }));
152
- const result = await validateSkill({ skillPath: "https://example.com/missing.md" });
153
- expect(result.valid).toBe(false);
154
- expect(result.errors[0]).toContain("Failed to fetch");
155
- vi.unstubAllGlobals();
156
- });
157
- it("returns error when fetch throws", async () => {
158
- vi.stubGlobal("fetch", vi.fn().mockRejectedValue(new Error("Network error")));
159
- const result = await validateSkill({ skillPath: "https://example.com/error.md" });
160
- expect(result.valid).toBe(false);
161
- expect(result.errors[0]).toContain("Failed to read file");
162
- vi.unstubAllGlobals();
163
- });
164
- it("does not treat non-http paths as URLs", async () => {
165
- const result = await validateSkill({ skillPath: "/local/path.md" });
166
- expect(result.valid).toBe(false);
167
- expect(result.errors[0]).toContain("Failed to read file");
168
- });
169
- });
170
- });
171
- //# sourceMappingURL=validate.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validate.test.js","sourceRoot":"","sources":["../../../src/commands/skill/validate.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};