@skillsmith/mcp-server 0.3.4 → 0.3.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 (174) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/src/__tests__/LocalIndexer.test.d.ts +5 -0
  3. package/dist/src/__tests__/LocalIndexer.test.d.ts.map +1 -0
  4. package/dist/src/__tests__/LocalIndexer.test.js +396 -0
  5. package/dist/src/__tests__/LocalIndexer.test.js.map +1 -0
  6. package/dist/src/__tests__/get-skill.test.js +195 -0
  7. package/dist/src/__tests__/get-skill.test.js.map +1 -1
  8. package/dist/src/__tests__/index-local.test.d.ts +5 -0
  9. package/dist/src/__tests__/index-local.test.d.ts.map +1 -0
  10. package/dist/src/__tests__/index-local.test.js +203 -0
  11. package/dist/src/__tests__/index-local.test.js.map +1 -0
  12. package/dist/src/__tests__/recommend.test.d.ts +7 -0
  13. package/dist/src/__tests__/recommend.test.d.ts.map +1 -0
  14. package/dist/src/__tests__/recommend.test.js +277 -0
  15. package/dist/src/__tests__/recommend.test.js.map +1 -0
  16. package/dist/src/__tests__/search.test.js +138 -0
  17. package/dist/src/__tests__/search.test.js.map +1 -1
  18. package/dist/src/context.d.ts +6 -0
  19. package/dist/src/context.d.ts.map +1 -1
  20. package/dist/src/context.js +7 -1
  21. package/dist/src/context.js.map +1 -1
  22. package/dist/src/index.js +14 -0
  23. package/dist/src/index.js.map +1 -1
  24. package/dist/src/indexer/FrontmatterParser.d.ts +30 -0
  25. package/dist/src/indexer/FrontmatterParser.d.ts.map +1 -0
  26. package/dist/src/indexer/FrontmatterParser.js +109 -0
  27. package/dist/src/indexer/FrontmatterParser.js.map +1 -0
  28. package/dist/src/indexer/LocalIndexer.d.ts +136 -0
  29. package/dist/src/indexer/LocalIndexer.d.ts.map +1 -0
  30. package/dist/src/indexer/LocalIndexer.js +271 -0
  31. package/dist/src/indexer/LocalIndexer.js.map +1 -0
  32. package/dist/src/indexer/index.d.ts +8 -0
  33. package/dist/src/indexer/index.d.ts.map +1 -0
  34. package/dist/src/indexer/index.js +8 -0
  35. package/dist/src/indexer/index.js.map +1 -0
  36. package/dist/src/llm/failover.d.ts +11 -1
  37. package/dist/src/llm/failover.d.ts.map +1 -1
  38. package/dist/src/llm/failover.js.map +1 -1
  39. package/dist/src/middleware/errorFormatter.d.ts +27 -0
  40. package/dist/src/middleware/errorFormatter.d.ts.map +1 -1
  41. package/dist/src/middleware/errorFormatter.js +95 -0
  42. package/dist/src/middleware/errorFormatter.js.map +1 -1
  43. package/dist/src/middleware/index.d.ts +1 -1
  44. package/dist/src/middleware/index.d.ts.map +1 -1
  45. package/dist/src/middleware/index.js.map +1 -1
  46. package/dist/src/middleware/quota-helpers.d.ts +40 -0
  47. package/dist/src/middleware/quota-helpers.d.ts.map +1 -0
  48. package/dist/src/middleware/quota-helpers.js +90 -0
  49. package/dist/src/middleware/quota-helpers.js.map +1 -0
  50. package/dist/src/middleware/quota-types.d.ts +105 -0
  51. package/dist/src/middleware/quota-types.d.ts.map +1 -0
  52. package/dist/src/middleware/quota-types.js +4 -0
  53. package/dist/src/middleware/quota-types.js.map +1 -0
  54. package/dist/src/middleware/quota.d.ts +3 -97
  55. package/dist/src/middleware/quota.d.ts.map +1 -1
  56. package/dist/src/middleware/quota.js +2 -87
  57. package/dist/src/middleware/quota.js.map +1 -1
  58. package/dist/src/tools/LocalSkillSearch.d.ts +32 -0
  59. package/dist/src/tools/LocalSkillSearch.d.ts.map +1 -0
  60. package/dist/src/tools/LocalSkillSearch.js +74 -0
  61. package/dist/src/tools/LocalSkillSearch.js.map +1 -0
  62. package/dist/src/tools/compare.helpers.js.map +1 -1
  63. package/dist/src/tools/compare.types.d.ts +1 -0
  64. package/dist/src/tools/compare.types.d.ts.map +1 -1
  65. package/dist/src/tools/compare.types.js +2 -0
  66. package/dist/src/tools/compare.types.js.map +1 -1
  67. package/dist/src/tools/get-skill.js +3 -0
  68. package/dist/src/tools/get-skill.js.map +1 -1
  69. package/dist/src/tools/index-local.d.ts +117 -0
  70. package/dist/src/tools/index-local.d.ts.map +1 -0
  71. package/dist/src/tools/index-local.js +126 -0
  72. package/dist/src/tools/index-local.js.map +1 -0
  73. package/dist/src/tools/index.d.ts +2 -0
  74. package/dist/src/tools/index.d.ts.map +1 -1
  75. package/dist/src/tools/index.js +2 -0
  76. package/dist/src/tools/index.js.map +1 -1
  77. package/dist/src/tools/install.conflict-helpers.d.ts +64 -0
  78. package/dist/src/tools/install.conflict-helpers.d.ts.map +1 -0
  79. package/dist/src/tools/install.conflict-helpers.js +165 -0
  80. package/dist/src/tools/install.conflict-helpers.js.map +1 -0
  81. package/dist/src/tools/install.conflict-helpers.test.d.ts +15 -0
  82. package/dist/src/tools/install.conflict-helpers.test.d.ts.map +1 -0
  83. package/dist/src/tools/install.conflict-helpers.test.js +243 -0
  84. package/dist/src/tools/install.conflict-helpers.test.js.map +1 -0
  85. package/dist/src/tools/install.conflict.d.ts +58 -0
  86. package/dist/src/tools/install.conflict.d.ts.map +1 -0
  87. package/dist/src/tools/install.conflict.js +160 -0
  88. package/dist/src/tools/install.conflict.js.map +1 -0
  89. package/dist/src/tools/install.conflict.test.d.ts +15 -0
  90. package/dist/src/tools/install.conflict.test.d.ts.map +1 -0
  91. package/dist/src/tools/install.conflict.test.js +354 -0
  92. package/dist/src/tools/install.conflict.test.js.map +1 -0
  93. package/dist/src/tools/install.d.ts +5 -0
  94. package/dist/src/tools/install.d.ts.map +1 -1
  95. package/dist/src/tools/install.helpers.d.ts +5 -4
  96. package/dist/src/tools/install.helpers.d.ts.map +1 -1
  97. package/dist/src/tools/install.helpers.js +13 -4
  98. package/dist/src/tools/install.helpers.js.map +1 -1
  99. package/dist/src/tools/install.js +96 -17
  100. package/dist/src/tools/install.js.map +1 -1
  101. package/dist/src/tools/install.types.d.ts +75 -11
  102. package/dist/src/tools/install.types.d.ts.map +1 -1
  103. package/dist/src/tools/install.types.js +15 -1
  104. package/dist/src/tools/install.types.js.map +1 -1
  105. package/dist/src/tools/merge.d.ts +53 -0
  106. package/dist/src/tools/merge.d.ts.map +1 -0
  107. package/dist/src/tools/merge.js +276 -0
  108. package/dist/src/tools/merge.js.map +1 -0
  109. package/dist/src/tools/merge.test.d.ts +11 -0
  110. package/dist/src/tools/merge.test.d.ts.map +1 -0
  111. package/dist/src/tools/merge.test.js +224 -0
  112. package/dist/src/tools/merge.test.js.map +1 -0
  113. package/dist/src/tools/recommend.d.ts +1 -0
  114. package/dist/src/tools/recommend.d.ts.map +1 -1
  115. package/dist/src/tools/recommend.js +165 -38
  116. package/dist/src/tools/recommend.js.map +1 -1
  117. package/dist/src/tools/search.d.ts.map +1 -1
  118. package/dist/src/tools/search.js +31 -4
  119. package/dist/src/tools/search.js.map +1 -1
  120. package/dist/src/utils/validation.d.ts +6 -2
  121. package/dist/src/utils/validation.d.ts.map +1 -1
  122. package/dist/src/utils/validation.js +11 -2
  123. package/dist/src/utils/validation.js.map +1 -1
  124. package/dist/src/webhooks/webhook-endpoint.d.ts +4 -49
  125. package/dist/src/webhooks/webhook-endpoint.d.ts.map +1 -1
  126. package/dist/src/webhooks/webhook-endpoint.js +3 -125
  127. package/dist/src/webhooks/webhook-endpoint.js.map +1 -1
  128. package/dist/src/webhooks/webhook-helpers.d.ts +69 -0
  129. package/dist/src/webhooks/webhook-helpers.d.ts.map +1 -0
  130. package/dist/src/webhooks/webhook-helpers.js +146 -0
  131. package/dist/src/webhooks/webhook-helpers.js.map +1 -0
  132. package/dist/tests/e2e/conflict-resolution.e2e.test.d.ts +12 -0
  133. package/dist/tests/e2e/conflict-resolution.e2e.test.d.ts.map +1 -0
  134. package/dist/tests/e2e/conflict-resolution.e2e.test.js +343 -0
  135. package/dist/tests/e2e/conflict-resolution.e2e.test.js.map +1 -0
  136. package/dist/tests/integration/fixtures/development-skills.d.ts +22 -0
  137. package/dist/tests/integration/fixtures/development-skills.d.ts.map +1 -0
  138. package/dist/tests/integration/fixtures/development-skills.js +165 -0
  139. package/dist/tests/integration/fixtures/development-skills.js.map +1 -0
  140. package/dist/tests/integration/fixtures/devops-skills.d.ts +10 -0
  141. package/dist/tests/integration/fixtures/devops-skills.d.ts.map +1 -0
  142. package/dist/tests/integration/fixtures/devops-skills.js +70 -0
  143. package/dist/tests/integration/fixtures/devops-skills.js.map +1 -0
  144. package/dist/tests/integration/fixtures/experimental-skills.d.ts +14 -0
  145. package/dist/tests/integration/fixtures/experimental-skills.d.ts.map +1 -0
  146. package/dist/tests/integration/fixtures/experimental-skills.js +255 -0
  147. package/dist/tests/integration/fixtures/experimental-skills.js.map +1 -0
  148. package/dist/tests/integration/fixtures/skill-types.d.ts +18 -0
  149. package/dist/tests/integration/fixtures/skill-types.d.ts.map +1 -0
  150. package/dist/tests/integration/fixtures/skill-types.js +6 -0
  151. package/dist/tests/integration/fixtures/skill-types.js.map +1 -0
  152. package/dist/tests/integration/fixtures/test-skills.d.ts +10 -14
  153. package/dist/tests/integration/fixtures/test-skills.d.ts.map +1 -1
  154. package/dist/tests/integration/fixtures/test-skills.js +23 -590
  155. package/dist/tests/integration/fixtures/test-skills.js.map +1 -1
  156. package/dist/tests/integration/fixtures/testing-skills.d.ts +10 -0
  157. package/dist/tests/integration/fixtures/testing-skills.d.ts.map +1 -0
  158. package/dist/tests/integration/fixtures/testing-skills.js +70 -0
  159. package/dist/tests/integration/fixtures/testing-skills.js.map +1 -0
  160. package/dist/tests/integration/fixtures/verified-skills.d.ts +11 -0
  161. package/dist/tests/integration/fixtures/verified-skills.d.ts.map +1 -0
  162. package/dist/tests/integration/fixtures/verified-skills.js +91 -0
  163. package/dist/tests/integration/fixtures/verified-skills.js.map +1 -0
  164. package/dist/tests/integration/install-conflict.integration.test.d.ts +8 -0
  165. package/dist/tests/integration/install-conflict.integration.test.d.ts.map +1 -0
  166. package/dist/tests/integration/install-conflict.integration.test.js +384 -0
  167. package/dist/tests/integration/install-conflict.integration.test.js.map +1 -0
  168. package/dist/tests/integration/install-trust-parsing.integration.test.d.ts +13 -0
  169. package/dist/tests/integration/install-trust-parsing.integration.test.d.ts.map +1 -0
  170. package/dist/tests/integration/install-trust-parsing.integration.test.js +290 -0
  171. package/dist/tests/integration/install-trust-parsing.integration.test.js.map +1 -0
  172. package/dist/tests/integration/install.integration.test.js +3 -0
  173. package/dist/tests/integration/install.integration.test.js.map +1 -1
  174. package/package.json +7 -6
@@ -20,7 +20,9 @@ import { getToolContext } from '../context.js';
20
20
  // Import types
21
21
  import { TRUST_TIER_SCANNER_OPTIONS, CLAUDE_SKILLS_DIR, } from './install.types.js';
22
22
  // Import helpers
23
- import { loadManifest, updateManifestSafely, parseSkillId, parseRepoUrl, lookupSkillFromRegistry, fetchFromGitHub, validateSkillMd, generateOptimizedTips, } from './install.helpers.js';
23
+ import { loadManifest, updateManifestSafely, parseSkillId, parseRepoUrl, lookupSkillFromRegistry, fetchFromGitHub, validateSkillMd, generateOptimizedTips, hashContent, storeOriginal, } from './install.helpers.js';
24
+ // SMI-1867: Conflict resolution logic (extracted per governance review)
25
+ import { checkForConflicts, handleMergeAction } from './install.conflict.js';
24
26
  // Re-export only public API types (SMI-1718: trimmed internal exports)
25
27
  export { installInputSchema } from './install.types.js';
26
28
  /**
@@ -107,6 +109,16 @@ export async function installSkill(input, _context) {
107
109
  error: 'Skill "' + skillName + '" is already installed. Use force=true to reinstall.',
108
110
  };
109
111
  }
112
+ // SMI-1867: Check for local modifications on reinstall
113
+ // SMI-1895: Track backup path to include in result
114
+ let backupPath;
115
+ if (manifest.installedSkills[skillName] && input.force) {
116
+ const conflictCheck = await checkForConflicts(skillName, installPath, manifest, input.conflictAction, input.skillId);
117
+ if (!conflictCheck.shouldProceed) {
118
+ return conflictCheck.earlyReturn;
119
+ }
120
+ backupPath = conflictCheck.backupPath;
121
+ }
110
122
  // Determine files to fetch
111
123
  const skillMdPath = basePath + 'SKILL.md';
112
124
  // Fetch SKILL.md (required)
@@ -135,6 +147,20 @@ export async function installSkill(input, _context) {
135
147
  ],
136
148
  };
137
149
  }
150
+ // SMI-1867: Handle merge action for conflict resolution
151
+ if (input.conflictAction === 'merge') {
152
+ const mergeOp = await handleMergeAction(skillName, installPath, skillMdContent, manifest, owner, repo, input.skillId);
153
+ if (!mergeOp.shouldProceed) {
154
+ return mergeOp.earlyReturn;
155
+ }
156
+ if (mergeOp.mergedContent) {
157
+ skillMdContent = mergeOp.mergedContent;
158
+ }
159
+ // SMI-1895: Capture backup path from merge operation
160
+ if (mergeOp.backupPath) {
161
+ backupPath = mergeOp.backupPath;
162
+ }
163
+ }
138
164
  // Validate SKILL.md
139
165
  const validation = validateSkillMd(skillMdContent);
140
166
  if (!validation.valid) {
@@ -187,7 +213,7 @@ export async function installSkill(input, _context) {
187
213
  };
188
214
  }
189
215
  }
190
- // SMI-XXX: Apply Skillsmith Optimization Layer (unless skipped)
216
+ // SMI-1788: Apply Skillsmith Optimization Layer (unless skipped)
191
217
  let optimizationInfo = { optimized: false };
192
218
  let finalSkillContent = skillMdContent;
193
219
  let subSkillFiles = [];
@@ -227,21 +253,50 @@ export async function installSkill(input, _context) {
227
253
  optimizationInfo = { optimized: false };
228
254
  }
229
255
  }
230
- // Create installation directory
231
- await fs.mkdir(installPath, { recursive: true });
232
- // Write SKILL.md (optimized or original)
233
- await fs.writeFile(path.join(installPath, 'SKILL.md'), finalSkillContent);
234
- // Write sub-skills if any
235
- for (const subSkill of subSkillFiles) {
236
- await fs.writeFile(path.join(installPath, subSkill.filename), subSkill.content);
256
+ // SMI-1867: Compute hash before file operations (needed in manifest update)
257
+ const contentHash = hashContent(finalSkillContent);
258
+ // SMI-1792, SMI-1797: Atomic file installation with transaction pattern
259
+ // SMI-1804: Parallelize file writes for better performance
260
+ const writtenFiles = [];
261
+ try {
262
+ // Create installation directory
263
+ await fs.mkdir(installPath, { recursive: true });
264
+ // Write SKILL.md (optimized or original)
265
+ const mainSkillPath = path.join(installPath, 'SKILL.md');
266
+ await fs.writeFile(mainSkillPath, finalSkillContent);
267
+ writtenFiles.push(mainSkillPath);
268
+ // SMI-1867: Store original content for future conflict detection
269
+ await storeOriginal(skillName, finalSkillContent, {
270
+ version: '1.0.0',
271
+ source: 'github:' + owner + '/' + repo,
272
+ installedAt: new Date().toISOString(),
273
+ });
274
+ // Write sub-skills in parallel (SMI-1804: Performance optimization)
275
+ if (subSkillFiles.length > 0) {
276
+ await Promise.all(subSkillFiles.map(async (subSkill) => {
277
+ const subPath = path.join(installPath, subSkill.filename);
278
+ await fs.writeFile(subPath, subSkill.content);
279
+ writtenFiles.push(subPath);
280
+ }));
281
+ }
282
+ // Write companion subagent if generated
283
+ if (subagentContent) {
284
+ const agentsDir = path.join(os.homedir(), '.claude', 'agents');
285
+ await fs.mkdir(agentsDir, { recursive: true });
286
+ const subagentPath = path.join(agentsDir, `${skillName}-specialist.md`);
287
+ await fs.writeFile(subagentPath, subagentContent);
288
+ writtenFiles.push(subagentPath);
289
+ optimizationInfo.subagentPath = subagentPath;
290
+ }
237
291
  }
238
- // Write companion subagent if generated
239
- if (subagentContent) {
240
- const agentsDir = path.join(os.homedir(), '.claude', 'agents');
241
- await fs.mkdir(agentsDir, { recursive: true });
242
- const subagentPath = path.join(agentsDir, `${skillName}-specialist.md`);
243
- await fs.writeFile(subagentPath, subagentContent);
244
- optimizationInfo.subagentPath = subagentPath;
292
+ catch (writeError) {
293
+ // SMI-1792: Rollback on failure - remove any files we wrote
294
+ for (const filePath of writtenFiles) {
295
+ await fs.unlink(filePath).catch(() => { });
296
+ }
297
+ // Try to remove the directory if we created it and it's now empty
298
+ await fs.rmdir(installPath).catch(() => { });
299
+ throw writeError;
245
300
  }
246
301
  // Try to fetch optional files
247
302
  // SMI-1533: Use same trust-tier scanner for optional files
@@ -279,6 +334,7 @@ export async function installSkill(input, _context) {
279
334
  installPath,
280
335
  installedAt: new Date().toISOString(),
281
336
  lastUpdated: new Date().toISOString(),
337
+ originalContentHash: contentHash, // SMI-1867: Track original hash
282
338
  },
283
339
  },
284
340
  }));
@@ -289,15 +345,33 @@ export async function installSkill(input, _context) {
289
345
  securityReport,
290
346
  trustTier, // SMI-1533: Include trust tier in result
291
347
  optimization: optimizationInfo,
348
+ backupPath, // SMI-1895: Include backup path if created during conflict resolution
292
349
  tips: generateOptimizedTips(skillName, optimizationInfo, claudeMdSnippet),
293
350
  };
294
351
  }
295
352
  catch (error) {
353
+ // SMI-1793: Sanitize error messages to avoid exposing internal details
354
+ let safeErrorMessage = 'Installation failed';
355
+ if (error instanceof Error) {
356
+ // Allow specific known error types through
357
+ if (error.message.includes('already installed') ||
358
+ error.message.includes('Could not find SKILL.md') ||
359
+ error.message.includes('Invalid SKILL.md') ||
360
+ error.message.includes('Security scan failed') ||
361
+ error.message.includes('exceeds maximum length')) {
362
+ safeErrorMessage = error.message;
363
+ }
364
+ else {
365
+ // Log the full error for debugging, return sanitized message
366
+ console.error('[install] Error during installation:', error);
367
+ safeErrorMessage = 'Installation failed due to an internal error';
368
+ }
369
+ }
296
370
  return {
297
371
  success: false,
298
372
  skillId: input.skillId,
299
373
  installPath: '',
300
- error: error instanceof Error ? error.message : 'Unknown error',
374
+ error: safeErrorMessage,
301
375
  };
302
376
  }
303
377
  }
@@ -326,6 +400,11 @@ export const installTool = {
326
400
  type: 'boolean',
327
401
  description: 'Skip Skillsmith optimization (decomposition, subagent generation)',
328
402
  },
403
+ conflictAction: {
404
+ type: 'string',
405
+ enum: ['overwrite', 'merge', 'cancel'],
406
+ description: 'Action when local modifications detected: overwrite (backup + replace), merge (three-way), or cancel',
407
+ },
329
408
  },
330
409
  required: ['skillId'],
331
410
  },
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/tools/install.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAEzE,OAAO,KAAK,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AAExB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAE9C,eAAe;AACf,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,GAIlB,MAAM,oBAAoB,CAAA;AAE3B,iBAAiB;AACjB,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,qBAAqB,GACtB,MAAM,sBAAsB,CAAA;AAE7B,uEAAuE;AACvE,OAAO,EAAE,kBAAkB,EAAyC,MAAM,oBAAoB,CAAA;AAE9F;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,KAAmB,EACnB,QAAsB;IAEtB,oFAAoF;IACpF,MAAM,OAAO,GAAG,QAAQ,IAAI,cAAc,EAAE,CAAA;IAE5C,6FAA6F;IAC7F,IAAI,SAAS,GAAc,SAAS,CAAA;IAEpC,IAAI,CAAC;QACH,iBAAiB;QACjB,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;QAE1C,oFAAoF;QACpF,IAAI,KAAa,CAAA;QACjB,IAAI,IAAY,CAAA;QAChB,IAAI,QAAgB,CAAA;QACpB,IAAI,SAAiB,CAAA;QACrB,IAAI,MAAM,GAAW,MAAM,CAAA;QAE3B,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,kCAAkC;YAClC,gFAAgF;YAChF,MAAM,aAAa,GAAG,MAAM,uBAAuB,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YAE3E,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,iDAAiD;gBACjD,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,WAAW,EAAE,EAAE;oBACf,KAAK,EACH,SAAS;wBACT,KAAK,CAAC,OAAO;wBACb,mCAAmC;wBACnC,0DAA0D;wBAC1D,6DAA6D;oBAC/D,IAAI,EAAE;wBACJ,2FAA2F;wBAC3F,qDAAqD;wBACrD,wEAAwE;qBACzE;iBACF,CAAA;YACH,CAAC;YAED,8CAA8C;YAC9C,MAAM,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;YACpD,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAA;YACtB,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAA;YACpB,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YACnD,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;YACxB,SAAS,GAAG,aAAa,CAAC,IAAI,CAAA;YAC9B,yEAAyE;YACzE,SAAS,GAAG,aAAa,CAAC,SAAS,CAAA;QACrC,CAAC;aAAM,CAAC;YACN,kCAAkC;YAClC,6CAA6C;YAC7C,KAAK,GAAG,MAAM,CAAC,KAAK,CAAA;YACpB,IAAI,GAAG,MAAM,CAAC,IAAI,CAAA;YAClB,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YAC/C,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;QAC7D,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAA;QAE3D,6BAA6B;QAC7B,MAAM,QAAQ,GAAG,MAAM,YAAY,EAAE,CAAA;QACrC,IAAI,QAAQ,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YACxD,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,WAAW;gBACX,KAAK,EAAE,SAAS,GAAG,SAAS,GAAG,sDAAsD;aACtF,CAAA;QACH,CAAC;QAED,2BAA2B;QAC3B,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAA;QAEzC,4BAA4B;QAC5B,IAAI,cAAsB,CAAA;QAC1B,IAAI,CAAC;YACH,cAAc,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,CAAA;QAC1E,CAAC;QAAC,MAAM,CAAC;YACP,mCAAmC;YACnC,MAAM,OAAO,GAAG,qBAAqB,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,CAAA;YAC1D,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,WAAW;gBACX,KAAK,EACH,6BAA6B;oBAC7B,CAAC,QAAQ,IAAI,iBAAiB,CAAC;oBAC/B,IAAI;oBACJ,gGAAgG;oBAChG,cAAc;oBACd,OAAO;gBACT,IAAI,EAAE;oBACJ,kEAAkE;oBAClE,gCAAgC,GAAG,OAAO;oBAC1C,oGAAoG;oBACpG,2EAA2E;iBAC5E;aACF,CAAA;QACH,CAAC;QAED,oBAAoB;QACpB,MAAM,UAAU,GAAG,eAAe,CAAC,cAAc,CAAC,CAAA;QAClD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,WAAW;gBACX,KAAK,EAAE,oBAAoB,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC1D,IAAI,EAAE;oBACJ,sEAAsE;oBACtE,yCAAyC;oBACzC,mGAAmG;iBACpG;aACF,CAAA;QACH,CAAC;QAED,kEAAkE;QAClE,IAAI,cAA+C,CAAA;QACnD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;YACpB,0CAA0C;YAC1C,MAAM,cAAc,GAAG,0BAA0B,CAAC,SAAS,CAAC,CAAA;YAC5D,MAAM,OAAO,GAAG,IAAI,eAAe,CAAC,cAAc,CAAC,CAAA;YAEnD,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;YAE5D,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,CAAC;gBAC3B,MAAM,gBAAgB,GAAG,cAAc,CAAC,QAAQ,CAAC,MAAM,CACrD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAC1D,CAAA;gBAED,wDAAwD;gBACxD,MAAM,WAAW,GACf,SAAS,KAAK,SAAS;oBACrB,CAAC,CAAC,uDAAuD;oBACzD,CAAC,CAAC,SAAS,KAAK,cAAc;wBAC5B,CAAC,CAAC,qDAAqD;wBACvD,CAAC,CAAC,EAAE,CAAA;gBAEV,OAAO;oBACL,OAAO,EAAE,KAAK;oBACd,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,WAAW;oBACX,cAAc;oBACd,SAAS;oBACT,KAAK,EACH,4BAA4B;wBAC5B,gBAAgB,CAAC,MAAM;wBACvB,yBAAyB;wBACzB,WAAW;wBACX,oDAAoD;oBACtD,IAAI,EAAE;wBACJ,cAAc,GAAG,SAAS,GAAG,eAAe,GAAG,cAAc,CAAC,aAAa,GAAG,GAAG;wBACjF,cAAc,GAAG,cAAc,CAAC,SAAS;wBACzC,6DAA6D;wBAC7D,SAAS,KAAK,SAAS;4BACrB,CAAC,CAAC,gEAAgE;4BAClE,CAAC,CAAC,SAAS;qBACd,CAAC,MAAM,CAAC,OAAO,CAAa;iBAC9B,CAAA;YACH,CAAC;QACH,CAAC;QAED,gEAAgE;QAChE,IAAI,gBAAgB,GAAqB,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;QAC7D,IAAI,iBAAiB,GAAG,cAAc,CAAA;QACtC,IAAI,aAAa,GAAiD,EAAE,CAAA;QACpE,IAAI,eAAmC,CAAA;QACvC,IAAI,eAAmC,CAAA;QAEvC,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,gBAAgB,GAAG,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE;oBAC7D,QAAQ,EAAE,IAAI,EAAE,eAAe;oBAC/B,OAAO,EAAE,OAAO;iBACjB,CAAC,CAAA;gBAEF,wDAAwD;gBACxD,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAA;gBACzD,MAAM,SAAS,GAAG,cAAc,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAA;gBAChE,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;gBACjE,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;gBAE1D,MAAM,eAAe,GAAG,MAAM,gBAAgB,CAAC,SAAS,CACtD,KAAK,CAAC,OAAO,EACb,aAAa,EACb,aAAa,EACb,cAAc,CACf,CAAA;gBAED,IAAI,eAAe,CAAC,WAAW,EAAE,CAAC;oBAChC,iBAAiB,GAAG,eAAe,CAAC,gBAAgB,CAAA;oBACpD,aAAa,GAAG,eAAe,CAAC,SAAS,CAAA;oBACzC,eAAe,GAAG,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAA;oBACnD,eAAe,GAAG,eAAe,CAAC,eAAe,CAAA;oBAEjD,gBAAgB,GAAG;wBACjB,SAAS,EAAE,IAAI;wBACf,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;wBAC/C,iBAAiB,EAAE,CAAC,CAAC,eAAe;wBACpC,qBAAqB,EAAE,eAAe,CAAC,KAAK,CAAC,qBAAqB;wBAClE,aAAa,EAAE,eAAe,CAAC,KAAK,CAAC,aAAa;wBAClD,cAAc,EAAE,eAAe,CAAC,KAAK,CAAC,cAAc;qBACrD,CAAA;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,cAAc,EAAE,CAAC;gBACxB,yDAAyD;gBACzD,OAAO,CAAC,IAAI,CAAC,wDAAwD,EAAE,cAAc,CAAC,CAAA;gBACtF,iBAAiB,GAAG,cAAc,CAAA;gBAClC,gBAAgB,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAA;YACzC,CAAC;QACH,CAAC;QAED,gCAAgC;QAChC,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAEhD,yCAAyC;QACzC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,EAAE,iBAAiB,CAAC,CAAA;QAEzE,0BAA0B;QAC1B,KAAK,MAAM,QAAQ,IAAI,aAAa,EAAE,CAAC;YACrC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;QACjF,CAAC;QAED,wCAAwC;QACxC,IAAI,eAAe,EAAE,CAAC;YACpB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;YAC9D,MAAM,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;YAC9C,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,SAAS,gBAAgB,CAAC,CAAA;YACvE,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;YACjD,gBAAgB,CAAC,YAAY,GAAG,YAAY,CAAA;QAC9C,CAAC;QAED,8BAA8B;QAC9B,2DAA2D;QAC3D,MAAM,mBAAmB,GAAG,KAAK,CAAC,QAAQ;YACxC,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,IAAI,eAAe,CAAC,0BAA0B,CAAC,SAAS,CAAC,CAAC,CAAA;QAC9D,MAAM,aAAa,GAAG,CAAC,WAAW,EAAE,aAAa,EAAE,aAAa,CAAC,CAAA;QACjE,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,MAAM,CAAC,CAAA;gBAE3E,0BAA0B;gBAC1B,IAAI,mBAAmB,EAAE,CAAC;oBACxB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,EAAE,OAAO,CAAC,CAAA;oBAC9E,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;wBACrB,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,GAAG,2BAA2B,CAAC,CAAA;wBAC9D,SAAQ;oBACV,CAAC;gBACH,CAAC;gBAED,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAA;YAC3D,CAAC;YAAC,MAAM,CAAC;gBACP,kCAAkC;YACpC,CAAC;QACH,CAAC;QAED,0DAA0D;QAC1D,MAAM,oBAAoB,CAAC,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YAC/C,GAAG,eAAe;YAClB,eAAe,EAAE;gBACf,GAAG,eAAe,CAAC,eAAe;gBAClC,CAAC,SAAS,CAAC,EAAE;oBACX,EAAE,EAAE,KAAK,CAAC,OAAO;oBACjB,IAAI,EAAE,SAAS;oBACf,OAAO,EAAE,OAAO;oBAChB,MAAM,EAAE,SAAS,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI;oBACtC,WAAW;oBACX,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACrC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;iBACtC;aACF;SACF,CAAC,CAAC,CAAA;QAEH,OAAO;YACL,OAAO,EAAE,IAAI;YACb,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW;YACX,cAAc;YACd,SAAS,EAAE,yCAAyC;YACpD,YAAY,EAAE,gBAAgB;YAC9B,IAAI,EAAE,qBAAqB,CAAC,SAAS,EAAE,gBAAgB,EAAE,eAAe,CAAC;SAC1E,CAAA;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,WAAW,EAAE,EAAE;YACf,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAA;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,IAAI,EAAE,eAAe;IACrB,WAAW,EACT,kHAAkH;IACpH,WAAW,EAAE;QACX,IAAI,EAAE,QAAiB;QACvB,UAAU,EAAE;YACV,OAAO,EAAE;gBACP,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,2CAA2C;aACzD;YACD,KAAK,EAAE;gBACL,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,yCAAyC;aACvD;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,sCAAsC;aACpD;YACD,YAAY,EAAE;gBACZ,IAAI,EAAE,SAAS;gBACf,WAAW,EAAE,mEAAmE;aACjF;SACF;QACD,QAAQ,EAAE,CAAC,SAAS,CAAC;KACtB;CACF,CAAA;AAED,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/tools/install.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import type { ScanReport, ScannerOptions } from '@skillsmith/core';
7
7
  import type { TrustTier } from '@skillsmith/core';
8
8
  /**
9
9
  * SMI-1533: Valid trust tier values
10
+ * SMI-1809: Added 'local' for local skills
10
11
  */
11
12
  export declare const VALID_TRUST_TIERS: readonly TrustTier[];
12
13
  /**
@@ -20,30 +21,79 @@ export declare const VALID_TRUST_TIERS: readonly TrustTier[];
20
21
  export declare function validateTrustTier(value: string | null | undefined): TrustTier;
21
22
  /**
22
23
  * SMI-1533: Security scan configuration per trust tier
24
+ * SMI-1809: Added 'local' tier for local skills
23
25
  *
24
26
  * - verified: Minimal scanning (trust Anthropic-verified skills)
25
27
  * - community: Standard scanning (balanced security)
26
28
  * - experimental: Aggressive scanning (highest scrutiny for new/beta skills)
27
29
  * - unknown: Most aggressive scanning
30
+ * - local: No scanning (user's own local skills)
28
31
  */
29
32
  export declare const TRUST_TIER_SCANNER_OPTIONS: Record<TrustTier, ScannerOptions>;
33
+ /**
34
+ * SMI-1864: Action to take when a conflict is detected during skill update
35
+ */
36
+ export type ConflictAction = 'overwrite' | 'merge' | 'cancel';
37
+ /**
38
+ * SMI-1864: Information about detected conflicts during skill update
39
+ */
40
+ export interface ConflictInfo {
41
+ /** Whether the local skill has been modified since installation */
42
+ hasLocalModifications: boolean;
43
+ /** SHA-256 hash of the current local content */
44
+ localHash: string;
45
+ /** SHA-256 hash of the upstream (new) content */
46
+ upstreamHash: string;
47
+ /** SHA-256 hash of the original content at install time */
48
+ originalHash: string;
49
+ /** List of files that have been modified */
50
+ modifiedFiles: string[];
51
+ }
52
+ /**
53
+ * SMI-1864: Represents a specific conflict within a file during merge
54
+ */
55
+ export interface MergeConflict {
56
+ /** Line number where the conflict starts */
57
+ lineNumber: number;
58
+ /** Local (user-modified) content */
59
+ local: string;
60
+ /** Upstream (new version) content */
61
+ upstream: string;
62
+ /** Base (original) content for three-way merge */
63
+ base: string;
64
+ }
65
+ /**
66
+ * SMI-1864: Result of attempting to merge local and upstream changes
67
+ */
68
+ export interface MergeResult {
69
+ /** Whether the merge was successful without conflicts */
70
+ success: boolean;
71
+ /** The merged content if successful */
72
+ merged?: string;
73
+ /** List of conflicts that require manual resolution */
74
+ conflicts?: MergeConflict[];
75
+ }
30
76
  /** Input schema for install tool */
31
77
  export declare const installInputSchema: z.ZodObject<{
32
78
  skillId: z.ZodString;
33
79
  force: z.ZodDefault<z.ZodBoolean>;
34
80
  skipScan: z.ZodDefault<z.ZodBoolean>;
35
- /** SMI-XXX: Skip optimization transformation */
81
+ /** SMI-1788: Skip optimization transformation */
36
82
  skipOptimize: z.ZodDefault<z.ZodBoolean>;
83
+ /** SMI-1864: Action to take when a conflict is detected during update */
84
+ conflictAction: z.ZodOptional<z.ZodEnum<["overwrite", "merge", "cancel"]>>;
37
85
  }, "strip", z.ZodTypeAny, {
38
86
  skillId: string;
39
87
  force: boolean;
40
88
  skipScan: boolean;
41
89
  skipOptimize: boolean;
90
+ conflictAction?: "overwrite" | "merge" | "cancel" | undefined;
42
91
  }, {
43
92
  skillId: string;
44
93
  force?: boolean | undefined;
45
94
  skipScan?: boolean | undefined;
46
95
  skipOptimize?: boolean | undefined;
96
+ conflictAction?: "overwrite" | "merge" | "cancel" | undefined;
47
97
  }>;
48
98
  export type InstallInput = z.infer<typeof installInputSchema>;
49
99
  /** Output type for install tool */
@@ -56,8 +106,16 @@ export interface InstallResult {
56
106
  error?: string;
57
107
  /** SMI-1533: Trust tier used for security scanning */
58
108
  trustTier?: TrustTier;
59
- /** SMI-XXX: Optimization info (Skillsmith Optimization Layer) */
109
+ /** SMI-1788: Optimization info (Skillsmith Optimization Layer) */
60
110
  optimization?: OptimizationInfo;
111
+ /** SMI-1864: Conflict information when updating an existing skill */
112
+ conflict?: ConflictInfo;
113
+ /** SMI-1864: Result of merge operation if conflictAction was 'merge' */
114
+ mergeResult?: MergeResult;
115
+ /** SMI-1864: Available actions when a conflict requires user decision */
116
+ requiresAction?: ConflictAction[];
117
+ /** SMI-1895: Path to backup file created during conflict resolution */
118
+ backupPath?: string;
61
119
  }
62
120
  /** Optimization info included in install result */
63
121
  export interface OptimizationInfo {
@@ -79,17 +137,23 @@ export interface OptimizationInfo {
79
137
  export declare const CLAUDE_SKILLS_DIR: string;
80
138
  export declare const SKILLSMITH_DIR: string;
81
139
  export declare const MANIFEST_PATH: string;
140
+ /**
141
+ * SMI-1864: Entry for a single installed skill in the manifest
142
+ */
143
+ export interface SkillManifestEntry {
144
+ id: string;
145
+ name: string;
146
+ version: string;
147
+ source: string;
148
+ installPath: string;
149
+ installedAt: string;
150
+ lastUpdated: string;
151
+ /** SMI-1864: SHA-256 hash of SKILL.md at install time for modification detection */
152
+ originalContentHash?: string;
153
+ }
82
154
  export interface SkillManifest {
83
155
  version: string;
84
- installedSkills: Record<string, {
85
- id: string;
86
- name: string;
87
- version: string;
88
- source: string;
89
- installPath: string;
90
- installedAt: string;
91
- lastUpdated: string;
92
- }>;
156
+ installedSkills: Record<string, SkillManifestEntry>;
93
157
  }
94
158
  /** Parsed skill ID components */
95
159
  export interface ParsedSkillId {
@@ -1 +1 @@
1
- {"version":3,"file":"install.types.d.ts","sourceRoot":"","sources":["../../../src/tools/install.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAQjD;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,SAAS,SAAS,EAKjD,CAAA;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,SAAS,CAc7E;AAMD;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,SAAS,EAAE,cAAc,CAqBxE,CAAA;AAMD,oCAAoC;AACpC,eAAO,MAAM,kBAAkB;;;;IAI7B,gDAAgD;;;;;;;;;;;;EAEhD,CAAA;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D,mCAAmC;AACnC,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,UAAU,CAAA;IAC3B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sDAAsD;IACtD,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,iEAAiE;IACjE,YAAY,CAAC,EAAE,gBAAgB,CAAA;CAChC;AAED,mDAAmD;AACnD,MAAM,WAAW,gBAAgB;IAC/B,kCAAkC;IAClC,SAAS,EAAE,OAAO,CAAA;IAClB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,+CAA+C;IAC/C,iBAAiB,CAAC,EAAE,OAAO,CAAA;IAC3B,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,2CAA2C;IAC3C,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAMD,eAAO,MAAM,iBAAiB,QAA+C,CAAA;AAC7E,eAAO,MAAM,cAAc,QAAyC,CAAA;AACpE,eAAO,MAAM,aAAa,QAA6C,CAAA;AAMvE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CACrB,MAAM,EACN;QACE,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,MAAM,EAAE,MAAM,CAAA;QACd,WAAW,EAAE,MAAM,CAAA;QACnB,WAAW,EAAE,MAAM,CAAA;QACnB,WAAW,EAAE,MAAM,CAAA;KACpB,CACF,CAAA;CACF;AAED,iCAAiC;AACjC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,OAAO,CAAA;CACtB;AAED,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;CACf;AAED,6BAA6B;AAC7B,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,SAAS,CAAA;CACrB"}
1
+ {"version":3,"file":"install.types.d.ts","sourceRoot":"","sources":["../../../src/tools/install.types.ts"],"names":[],"mappings":"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"}
@@ -10,10 +10,12 @@ import * as os from 'os';
10
10
  // ============================================================================
11
11
  /**
12
12
  * SMI-1533: Valid trust tier values
13
+ * SMI-1809: Added 'local' for local skills
13
14
  */
14
15
  export const VALID_TRUST_TIERS = [
15
16
  'verified',
16
17
  'community',
18
+ 'local',
17
19
  'experimental',
18
20
  'unknown',
19
21
  ];
@@ -43,11 +45,13 @@ export function validateTrustTier(value) {
43
45
  // ============================================================================
44
46
  /**
45
47
  * SMI-1533: Security scan configuration per trust tier
48
+ * SMI-1809: Added 'local' tier for local skills
46
49
  *
47
50
  * - verified: Minimal scanning (trust Anthropic-verified skills)
48
51
  * - community: Standard scanning (balanced security)
49
52
  * - experimental: Aggressive scanning (highest scrutiny for new/beta skills)
50
53
  * - unknown: Most aggressive scanning
54
+ * - local: No scanning (user's own local skills)
51
55
  */
52
56
  export const TRUST_TIER_SCANNER_OPTIONS = {
53
57
  verified: {
@@ -60,6 +64,11 @@ export const TRUST_TIER_SCANNER_OPTIONS = {
60
64
  riskThreshold: 40, // Default threshold
61
65
  maxContentLength: 1_000_000,
62
66
  },
67
+ local: {
68
+ // SMI-1809: Local skills are user's own - minimal scanning
69
+ riskThreshold: 100, // No risk threshold for local skills
70
+ maxContentLength: 10_000_000, // No size limit for local skills
71
+ },
63
72
  experimental: {
64
73
  // Aggressive scanning for new/beta skills
65
74
  riskThreshold: 25, // Lower threshold - less tolerant
@@ -79,8 +88,13 @@ export const installInputSchema = z.object({
79
88
  skillId: z.string().min(1).describe('Skill ID or GitHub URL'),
80
89
  force: z.boolean().default(false).describe('Force reinstall if exists'),
81
90
  skipScan: z.boolean().default(false).describe('Skip security scan (not recommended)'),
82
- /** SMI-XXX: Skip optimization transformation */
91
+ /** SMI-1788: Skip optimization transformation */
83
92
  skipOptimize: z.boolean().default(false).describe('Skip Skillsmith optimization'),
93
+ /** SMI-1864: Action to take when a conflict is detected during update */
94
+ conflictAction: z
95
+ .enum(['overwrite', 'merge', 'cancel'])
96
+ .optional()
97
+ .describe('Action to take on conflict: overwrite local, merge changes, or cancel'),
84
98
  });
85
99
  // ============================================================================
86
100
  // Paths
@@ -1 +1 @@
1
- {"version":3,"file":"install.types.js","sourceRoot":"","sources":["../../../src/tools/install.types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AAExB,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAyB;IACrD,UAAU;IACV,WAAW;IACX,cAAc;IACd,SAAS;CACV,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAgC;IAChE,IAAI,CAAC,KAAK;QAAE,OAAO,SAAS,CAAA;IAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAe,CAAA;IACnD,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,SAAS,CAAA;IAE7D,qEAAqE;IACrE,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CACX,0DAA0D;YACxD,iEAAiE,CACpE,CAAA;IACH,CAAC;IAED,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,+EAA+E;AAC/E,wBAAwB;AACxB,+EAA+E;AAE/E;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAsC;IAC3E,QAAQ,EAAE;QACR,iDAAiD;QACjD,aAAa,EAAE,EAAE,EAAE,mCAAmC;QACtD,gBAAgB,EAAE,SAAS,EAAE,sBAAsB;KACpD;IACD,SAAS,EAAE;QACT,kDAAkD;QAClD,aAAa,EAAE,EAAE,EAAE,oBAAoB;QACvC,gBAAgB,EAAE,SAAS;KAC5B;IACD,YAAY,EAAE;QACZ,0CAA0C;QAC1C,aAAa,EAAE,EAAE,EAAE,kCAAkC;QACrD,gBAAgB,EAAE,OAAO,EAAE,mBAAmB;KAC/C;IACD,OAAO,EAAE;QACP,+CAA+C;QAC/C,aAAa,EAAE,EAAE,EAAE,cAAc;QACjC,gBAAgB,EAAE,OAAO,EAAE,oBAAoB;KAChD;CACF,CAAA;AAED,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E,oCAAoC;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,wBAAwB,CAAC;IAC7D,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,2BAA2B,CAAC;IACvE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,sCAAsC,CAAC;IACrF,gDAAgD;IAChD,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,8BAA8B,CAAC;CAClF,CAAC,CAAA;AAoCF,+EAA+E;AAC/E,QAAQ;AACR,+EAA+E;AAE/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAA;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,CAAA;AACpE,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,eAAe,CAAC,CAAA"}
1
+ {"version":3,"file":"install.types.js","sourceRoot":"","sources":["../../../src/tools/install.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @fileoverview Three-Way Merge Algorithm for Skill Update Conflict Resolution
3
+ * @module @skillsmith/mcp-server/tools/merge
4
+ * @see SMI-1866
5
+ *
6
+ * Uses LCS-based diff3 algorithm for accurate conflict detection.
7
+ * Handles insertions and deletions properly without false positives.
8
+ */
9
+ import type { MergeResult } from './install.types.js';
10
+ /**
11
+ * Result of computing a diff between two text contents
12
+ */
13
+ export interface DiffResult {
14
+ /** Line numbers that were added (1-indexed) */
15
+ additions: number[];
16
+ /** Line numbers that were deleted (1-indexed) */
17
+ deletions: number[];
18
+ /** Line numbers that remained unchanged (1-indexed) */
19
+ unchanged: number[];
20
+ }
21
+ /**
22
+ * Compute a line-by-line diff between base and target content
23
+ * Uses LCS for accurate change detection
24
+ *
25
+ * @param base - The original/base content
26
+ * @param target - The modified content to compare against
27
+ * @returns DiffResult with line numbers for additions, deletions, and unchanged
28
+ */
29
+ export declare function computeDiff(base: string, target: string): DiffResult;
30
+ /**
31
+ * Perform a three-way merge between base, local, and upstream versions
32
+ *
33
+ * Uses LCS-based diff3 algorithm:
34
+ * 1. Find common lines between base and each version
35
+ * 2. Identify hunks (regions of change) for each version
36
+ * 3. Merge hunks, detecting conflicts only when both sides modify the same region
37
+ *
38
+ * For conflicts, inserts standard Git-style conflict markers:
39
+ * ```
40
+ * <<<<<<< LOCAL
41
+ * {local content}
42
+ * =======
43
+ * {upstream content}
44
+ * >>>>>>> UPSTREAM
45
+ * ```
46
+ *
47
+ * @param base - The common ancestor (original content at install time)
48
+ * @param local - The user's modified version
49
+ * @param upstream - The new version from the skill author
50
+ * @returns MergeResult with merged content and any conflicts
51
+ */
52
+ export declare function threeWayMerge(base: string, local: string, upstream: string): MergeResult;
53
+ //# sourceMappingURL=merge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/tools/merge.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAiB,MAAM,oBAAoB,CAAA;AAMpE;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,iDAAiD;IACjD,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,uDAAuD;IACvD,SAAS,EAAE,MAAM,EAAE,CAAA;CACpB;AA6GD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CA6BpE;AAMD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,WAAW,CA6IxF"}