@jaypie/mcp 0.7.0 → 0.7.1

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.
@@ -9,7 +9,7 @@ import { gt } from 'semver';
9
9
  /**
10
10
  * Docs Suite - Documentation services (skill, version, release_notes)
11
11
  */
12
- const BUILD_VERSION_STRING = "@jaypie/mcp@0.7.0#e0ca7c9f"
12
+ const BUILD_VERSION_STRING = "@jaypie/mcp@0.7.1#82d19d8a"
13
13
  ;
14
14
  const __filename$1 = fileURLToPath(import.meta.url);
15
15
  const __dirname$1 = path.dirname(__filename$1);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jaypie/mcp",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "Jaypie MCP",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,11 @@
1
+ ---
2
+ version: 1.2.25
3
+ date: 2025-01-28
4
+ summary: Add streaming support to JaypieNextJs construct
5
+ ---
6
+
7
+ ## Changes
8
+
9
+ - Add `streaming` prop to `JaypieNextJs` construct for Lambda response streaming
10
+ - When `streaming: true`, enables faster Time To First Byte (TTFB) via Lambda response streaming
11
+ - Passes through to underlying `cdk-nextjs-standalone` Nextjs construct
@@ -0,0 +1,10 @@
1
+ ---
2
+ version: 0.7.1
3
+ date: 2025-01-28
4
+ summary: Add tildeskill documentation
5
+ ---
6
+
7
+ ## Changes
8
+
9
+ - Add `tildeskill` skill documentation for the new `@jaypie/tildeskill` package
10
+ - Update skills index with tildeskill reference
@@ -0,0 +1,12 @@
1
+ ---
2
+ version: 1.2.20
3
+ date: 2025-01-28
4
+ summary: Updated tildeskill mocks for extended schema
5
+ ---
6
+
7
+ ## Changes
8
+
9
+ - Updated `createMemoryStore` and `createMarkdownStore` mocks with new methods:
10
+ - `getByNickname`: Returns `null` by default
11
+ - `search`: Returns empty array by default
12
+ - Added `expandIncludes` mock that returns `record.content` by default
@@ -0,0 +1,28 @@
1
+ ---
2
+ version: 0.2.0
3
+ date: 2025-01-28
4
+ summary: Extended schema with nicknames, tags, includes and enhanced store interface
5
+ ---
6
+
7
+ ## New Features
8
+
9
+ ### Extended SkillRecord Schema
10
+
11
+ - `name`: Display title for the skill
12
+ - `nicknames`: Alternate lookup keys for `getByNickname()`
13
+ - `tags`: Categorization tags for filtering
14
+ - `includes`: Auto-expand other skill content on lookup
15
+
16
+ ### Enhanced SkillStore Interface
17
+
18
+ - `getByNickname(nickname)`: Look up skills by alternate names
19
+ - `list(filter)`: Filter by namespace prefix or tag
20
+ - `search(term)`: Search across alias, name, description, content, and tags
21
+
22
+ ### Include Expansion
23
+
24
+ New `expandIncludes(store, record)` utility that:
25
+ - Prepends included skills' content before the record's content
26
+ - Recursively expands nested includes
27
+ - Prevents circular references
28
+ - Skips missing includes silently
package/skills/skills.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  description: About the Jaypie skill system
3
- related: agents, index
3
+ related: agents, index, tildeskill
4
4
  ---
5
5
 
6
6
  # Jaypie Skills
@@ -0,0 +1,172 @@
1
+ ---
2
+ description: Skill/vocabulary storage with pluggable backends (pre-1.0)
3
+ related: fabric, mcp, tools
4
+ ---
5
+
6
+ # @jaypie/tildeskill
7
+
8
+ Skill/vocabulary management with pluggable storage backends for AI assistants and documentation systems.
9
+
10
+ ## Overview
11
+
12
+ This package provides a storage abstraction for skill/vocabulary documents with markdown frontmatter support. It enables:
13
+ - Loading skills from markdown files with YAML frontmatter
14
+ - In-memory storage for testing
15
+ - Consistent alias normalization and validation
16
+ - Filtering by namespace and tags
17
+ - Searching across alias, name, description, content, and tags
18
+ - Include expansion for composable skills
19
+
20
+ ## Installation
21
+
22
+ ```bash
23
+ npm install @jaypie/tildeskill
24
+ ```
25
+
26
+ ## Core Types
27
+
28
+ ```typescript
29
+ interface SkillRecord {
30
+ alias: string; // Lookup key (normalized lowercase)
31
+ content: string; // Markdown body
32
+ description?: string; // Brief description from frontmatter
33
+ includes?: string[]; // Auto-expand these skill aliases on lookup
34
+ name?: string; // Display title for the skill
35
+ nicknames?: string[]; // Alternate lookup keys for getByNickname
36
+ related?: string[]; // Related skill aliases
37
+ tags?: string[]; // Categorization tags
38
+ }
39
+
40
+ interface ListFilter {
41
+ namespace?: string; // Namespace prefix matching (e.g., "kit:*")
42
+ tag?: string; // Filter by tag
43
+ }
44
+
45
+ interface SkillStore {
46
+ get(alias: string): Promise<SkillRecord | null>;
47
+ getByNickname(nickname: string): Promise<SkillRecord | null>;
48
+ list(filter?: ListFilter): Promise<SkillRecord[]>;
49
+ put(record: SkillRecord): Promise<SkillRecord>;
50
+ search(term: string): Promise<SkillRecord[]>;
51
+ }
52
+ ```
53
+
54
+ ## Store Factories
55
+
56
+ ### Markdown Store (File-based)
57
+
58
+ ```typescript
59
+ import { createMarkdownStore } from "@jaypie/tildeskill";
60
+
61
+ const store = createMarkdownStore({ path: "./skills" });
62
+
63
+ // Get a specific skill
64
+ const skill = await store.get("aws");
65
+ if (skill) {
66
+ console.log(skill.content);
67
+ }
68
+
69
+ // List all skills
70
+ const skills = await store.list();
71
+ skills.forEach(s => console.log(`${s.alias}: ${s.description}`));
72
+ ```
73
+
74
+ ### Memory Store (Testing)
75
+
76
+ ```typescript
77
+ import { createMemoryStore } from "@jaypie/tildeskill";
78
+
79
+ const store = createMemoryStore([
80
+ { alias: "test", content: "# Test\n\nContent", description: "Test skill" }
81
+ ]);
82
+
83
+ const skill = await store.get("test");
84
+ ```
85
+
86
+ ## Include Expansion
87
+
88
+ ```typescript
89
+ import { expandIncludes, createMemoryStore } from "@jaypie/tildeskill";
90
+
91
+ const store = createMemoryStore([
92
+ { alias: "base", content: "Base content" },
93
+ { alias: "main", content: "Main content", includes: ["base"] },
94
+ ]);
95
+
96
+ const record = await store.get("main");
97
+ const expanded = await expandIncludes(store, record);
98
+ // expanded = "Base content\n\nMain content"
99
+ ```
100
+
101
+ ## Filtering and Search
102
+
103
+ ```typescript
104
+ // Filter by namespace prefix
105
+ const kitSkills = await store.list({ namespace: "kit:" });
106
+
107
+ // Filter by tag
108
+ const cloudSkills = await store.list({ tag: "cloud" });
109
+
110
+ // Search across alias, name, description, content, and tags
111
+ const results = await store.search("lambda");
112
+
113
+ // Lookup by nickname
114
+ const skill = await store.getByNickname("amazon");
115
+ ```
116
+
117
+ ## Validation Utilities
118
+
119
+ ```typescript
120
+ import { isValidAlias, validateAlias, normalizeAlias } from "@jaypie/tildeskill";
121
+
122
+ // Check validity
123
+ isValidAlias("my-skill"); // true
124
+ isValidAlias("../../etc"); // false (path traversal)
125
+
126
+ // Normalize to lowercase
127
+ normalizeAlias("MY-Skill"); // "my-skill"
128
+
129
+ // Validate and normalize (throws on invalid)
130
+ validateAlias("valid"); // returns "valid"
131
+ validateAlias("../bad"); // throws BadRequestError
132
+ ```
133
+
134
+ ## Skill File Format
135
+
136
+ Skill files use YAML frontmatter:
137
+
138
+ ```yaml
139
+ ---
140
+ description: Brief description shown in listings
141
+ includes: base-skill, common-utils
142
+ name: Display Title
143
+ nicknames: alt-name, another-alias
144
+ related: alias1, alias2, alias3
145
+ tags: category1, category2
146
+ ---
147
+
148
+ # Skill Title
149
+
150
+ Markdown content...
151
+ ```
152
+
153
+ All frontmatter fields accept either comma-separated strings or YAML arrays.
154
+
155
+ ## Testing with Mocks
156
+
157
+ ```typescript
158
+ import { mockTildeskill, restoreTildeskill } from "@jaypie/testkit";
159
+
160
+ beforeEach(() => {
161
+ mockTildeskill();
162
+ });
163
+
164
+ afterEach(() => {
165
+ restoreTildeskill();
166
+ });
167
+ ```
168
+
169
+ ## See Also
170
+
171
+ - **`skill("fabric")`** - Service patterns that use tildeskill
172
+ - **`skill("mcp")`** - MCP server that uses tildeskill for skill storage