@oleksandr.rudnychenko/sync_loop 0.2.4 → 0.2.5

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 (2) hide show
  1. package/package.json +3 -3
  2. package/src/server.js +11 -8
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oleksandr.rudnychenko/sync_loop",
3
- "version": "0.2.4",
3
+ "version": "0.2.5",
4
4
  "type": "module",
5
5
  "description": "MCP server for the SyncLoop agent reasoning protocol — works with Copilot, Cursor, Claude Code",
6
6
  "bin": {
@@ -11,8 +11,8 @@
11
11
  "src/"
12
12
  ],
13
13
  "dependencies": {
14
- "@modelcontextprotocol/sdk": "^1.0.0",
15
- "zod": "^3.23.0"
14
+ "@modelcontextprotocol/sdk": "^1.26.0",
15
+ "zod": "^4.3.6"
16
16
  },
17
17
  "keywords": [
18
18
  "mcp",
package/src/server.js CHANGED
@@ -174,6 +174,7 @@ for (const [id, doc] of Object.entries(DOCS)) {
174
174
  server.registerResource(
175
175
  doc.name,
176
176
  `syncloop://docs/${id}`,
177
+ { description: doc.description, mimeType: "text/markdown" },
177
178
  async (uri) => {
178
179
  const raw = readTemplate(doc.path);
179
180
  const rewritten = rewriteResourceLinks(raw, doc.path);
@@ -205,13 +206,15 @@ const StackSchema = z.object({
205
206
 
206
207
  server.registerTool(
207
208
  "init",
208
- "Scaffold SyncLoop protocol files into a project. If target is not explicitly provided, default to all. If stacks are not provided, auto-detect them by scanning the repository.",
209
209
  {
210
- projectPath: z.string().optional().describe("Project root path. Defaults to current working directory."),
211
- target: z.enum(["copilot", "cursor", "claude", "all"]).optional().default("all"),
212
- stacks: z.array(StackSchema).optional().describe("Optional stack definitions. Auto-detected when omitted."),
213
- dryRun: z.boolean().optional().default(false).describe("Preview file writes without modifying files."),
214
- overwrite: z.boolean().optional().default(true).describe("Overwrite existing generated files."),
210
+ description: "Scaffold SyncLoop protocol files into a project. If target is not explicitly provided, default to all. If stacks are not provided, auto-detect them by scanning the repository.",
211
+ inputSchema: {
212
+ projectPath: z.string().optional().describe("Project root path. Defaults to current working directory."),
213
+ target: z.enum(["copilot", "cursor", "claude", "all"]).optional().default("all"),
214
+ stacks: z.array(StackSchema).optional().describe("Optional stack definitions. Auto-detected when omitted."),
215
+ dryRun: z.boolean().optional().default(false).describe("Preview file writes without modifying files."),
216
+ overwrite: z.boolean().optional().default(true).describe("Overwrite existing generated files."),
217
+ },
215
218
  },
216
219
  async ({ projectPath, target = "all", stacks, dryRun = false, overwrite = true }) => {
217
220
  try {
@@ -253,7 +256,7 @@ server.registerTool(
253
256
 
254
257
  server.registerPrompt(
255
258
  "bootstrap",
256
- "Bootstrap prompt - wire SyncLoop protocol to an existing project by scanning its codebase",
259
+ { description: "Bootstrap prompt - wire SyncLoop protocol to an existing project by scanning its codebase" },
257
260
  async () => ({
258
261
  description: "Scan the project codebase and wire SyncLoop protocol references to real project structure",
259
262
  messages: [{
@@ -268,7 +271,7 @@ server.registerPrompt(
268
271
 
269
272
  server.registerPrompt(
270
273
  "protocol",
271
- "SyncLoop reasoning protocol summary - inject as system context for any AI coding task",
274
+ { description: "SyncLoop reasoning protocol summary - inject as system context for any AI coding task" },
272
275
  async () => ({
273
276
  description: "The SyncLoop 7-stage reasoning protocol for self-correcting agent behavior",
274
277
  messages: [{