@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.
- package/package.json +3 -3
- 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.
|
|
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.
|
|
15
|
-
"zod": "^3.
|
|
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
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
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: [{
|