@skillsmith/core 0.11.4 → 0.11.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 (183) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +10 -7
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/src/api/client.d.ts.map +1 -1
  5. package/dist/src/api/client.js +15 -5
  6. package/dist/src/api/client.js.map +1 -1
  7. package/dist/src/api/client.private-registry.d.ts +80 -0
  8. package/dist/src/api/client.private-registry.d.ts.map +1 -0
  9. package/dist/src/api/client.private-registry.js +97 -0
  10. package/dist/src/api/client.private-registry.js.map +1 -0
  11. package/dist/src/api/client.private-registry.test.d.ts +9 -0
  12. package/dist/src/api/client.private-registry.test.d.ts.map +1 -0
  13. package/dist/src/api/client.private-registry.test.js +127 -0
  14. package/dist/src/api/client.private-registry.test.js.map +1 -0
  15. package/dist/src/api/client.toSkill.test.d.ts +25 -0
  16. package/dist/src/api/client.toSkill.test.d.ts.map +1 -0
  17. package/dist/src/api/client.toSkill.test.js +97 -0
  18. package/dist/src/api/client.toSkill.test.js.map +1 -0
  19. package/dist/src/api/client.token-refresh.d.ts +8 -0
  20. package/dist/src/api/client.token-refresh.d.ts.map +1 -1
  21. package/dist/src/api/client.token-refresh.js +26 -0
  22. package/dist/src/api/client.token-refresh.js.map +1 -1
  23. package/dist/src/api/client.token-refresh.test.js +82 -0
  24. package/dist/src/api/client.token-refresh.test.js.map +1 -1
  25. package/dist/src/api/index.d.ts +2 -0
  26. package/dist/src/api/index.d.ts.map +1 -1
  27. package/dist/src/api/index.js +9 -0
  28. package/dist/src/api/index.js.map +1 -1
  29. package/dist/src/api/security-summary.d.ts +73 -0
  30. package/dist/src/api/security-summary.d.ts.map +1 -0
  31. package/dist/src/api/security-summary.js +88 -0
  32. package/dist/src/api/security-summary.js.map +1 -0
  33. package/dist/src/api/security-summary.test.d.ts +9 -0
  34. package/dist/src/api/security-summary.test.d.ts.map +1 -0
  35. package/dist/src/api/security-summary.test.js +94 -0
  36. package/dist/src/api/security-summary.test.js.map +1 -0
  37. package/dist/src/config/config-atomic-write.d.ts +30 -10
  38. package/dist/src/config/config-atomic-write.d.ts.map +1 -1
  39. package/dist/src/config/config-atomic-write.js +33 -80
  40. package/dist/src/config/config-atomic-write.js.map +1 -1
  41. package/dist/src/config/config-atomic-write.test.d.ts +8 -0
  42. package/dist/src/config/config-atomic-write.test.d.ts.map +1 -1
  43. package/dist/src/config/config-atomic-write.test.js +64 -12
  44. package/dist/src/config/config-atomic-write.test.js.map +1 -1
  45. package/dist/src/config/owned-lock.acquire.d.ts +53 -0
  46. package/dist/src/config/owned-lock.acquire.d.ts.map +1 -0
  47. package/dist/src/config/owned-lock.acquire.js +140 -0
  48. package/dist/src/config/owned-lock.acquire.js.map +1 -0
  49. package/dist/src/config/owned-lock.claim.d.ts +84 -0
  50. package/dist/src/config/owned-lock.claim.d.ts.map +1 -0
  51. package/dist/src/config/owned-lock.claim.js +310 -0
  52. package/dist/src/config/owned-lock.claim.js.map +1 -0
  53. package/dist/src/config/owned-lock.d.ts +113 -0
  54. package/dist/src/config/owned-lock.d.ts.map +1 -0
  55. package/dist/src/config/owned-lock.js +121 -0
  56. package/dist/src/config/owned-lock.js.map +1 -0
  57. package/dist/src/config/owned-lock.test.d.ts +12 -0
  58. package/dist/src/config/owned-lock.test.d.ts.map +1 -0
  59. package/dist/src/config/owned-lock.test.js +412 -0
  60. package/dist/src/config/owned-lock.test.js.map +1 -0
  61. package/dist/src/config/owned-lock.types.d.ts +78 -0
  62. package/dist/src/config/owned-lock.types.d.ts.map +1 -0
  63. package/dist/src/config/owned-lock.types.js +30 -0
  64. package/dist/src/config/owned-lock.types.js.map +1 -0
  65. package/dist/src/db/createDatabase.d.ts.map +1 -1
  66. package/dist/src/db/createDatabase.js +19 -7
  67. package/dist/src/db/createDatabase.js.map +1 -1
  68. package/dist/src/embeddings/hnsw-store.exports.d.ts +11 -0
  69. package/dist/src/embeddings/hnsw-store.exports.d.ts.map +1 -0
  70. package/dist/src/embeddings/hnsw-store.exports.js +10 -0
  71. package/dist/src/embeddings/hnsw-store.exports.js.map +1 -0
  72. package/dist/src/embeddings/index.d.ts +1 -2
  73. package/dist/src/embeddings/index.d.ts.map +1 -1
  74. package/dist/src/embeddings/index.js +17 -3
  75. package/dist/src/embeddings/index.js.map +1 -1
  76. package/dist/src/embeddings/probe.d.ts.map +1 -1
  77. package/dist/src/embeddings/probe.js +4 -8
  78. package/dist/src/embeddings/probe.js.map +1 -1
  79. package/dist/src/exports/services.d.ts +4 -1
  80. package/dist/src/exports/services.d.ts.map +1 -1
  81. package/dist/src/exports/services.js +22 -0
  82. package/dist/src/exports/services.js.map +1 -1
  83. package/dist/src/index.d.ts +3 -3
  84. package/dist/src/index.d.ts.map +1 -1
  85. package/dist/src/index.js +9 -3
  86. package/dist/src/index.js.map +1 -1
  87. package/dist/src/install/index.d.ts +1 -1
  88. package/dist/src/install/index.d.ts.map +1 -1
  89. package/dist/src/install/index.js +1 -1
  90. package/dist/src/install/index.js.map +1 -1
  91. package/dist/src/install/paths.d.ts +10 -0
  92. package/dist/src/install/paths.d.ts.map +1 -1
  93. package/dist/src/install/paths.js +19 -0
  94. package/dist/src/install/paths.js.map +1 -1
  95. package/dist/src/security/scanner/multiline-category-closure.test.d.ts +80 -0
  96. package/dist/src/security/scanner/multiline-category-closure.test.d.ts.map +1 -0
  97. package/dist/src/security/scanner/multiline-category-closure.test.js +287 -0
  98. package/dist/src/security/scanner/multiline-category-closure.test.js.map +1 -0
  99. package/dist/src/services/recommend-guard.d.ts +28 -0
  100. package/dist/src/services/recommend-guard.d.ts.map +1 -0
  101. package/dist/src/services/recommend-guard.js +34 -0
  102. package/dist/src/services/recommend-guard.js.map +1 -0
  103. package/dist/src/services/recommend-guard.test.d.ts +2 -0
  104. package/dist/src/services/recommend-guard.test.d.ts.map +1 -0
  105. package/dist/src/services/recommend-guard.test.js +28 -0
  106. package/dist/src/services/recommend-guard.test.js.map +1 -0
  107. package/dist/src/services/skill-installation.content.d.ts +88 -0
  108. package/dist/src/services/skill-installation.content.d.ts.map +1 -0
  109. package/dist/src/services/skill-installation.content.js +319 -0
  110. package/dist/src/services/skill-installation.content.js.map +1 -0
  111. package/dist/src/services/skill-installation.helpers.d.ts +32 -1
  112. package/dist/src/services/skill-installation.helpers.d.ts.map +1 -1
  113. package/dist/src/services/skill-installation.helpers.js +39 -6
  114. package/dist/src/services/skill-installation.helpers.js.map +1 -1
  115. package/dist/src/services/skill-installation.helpers.test.js +34 -2
  116. package/dist/src/services/skill-installation.helpers.test.js.map +1 -1
  117. package/dist/src/services/skill-installation.io.d.ts.map +1 -1
  118. package/dist/src/services/skill-installation.io.js +74 -1
  119. package/dist/src/services/skill-installation.io.js.map +1 -1
  120. package/dist/src/services/skill-installation.service.d.ts +20 -1
  121. package/dist/src/services/skill-installation.service.d.ts.map +1 -1
  122. package/dist/src/services/skill-installation.service.js +26 -4
  123. package/dist/src/services/skill-installation.service.js.map +1 -1
  124. package/dist/src/services/skill-installation.types.d.ts +42 -1
  125. package/dist/src/services/skill-installation.types.d.ts.map +1 -1
  126. package/dist/src/services/skill-installation.types.js.map +1 -1
  127. package/dist/src/services/skill-resolution.d.ts +67 -0
  128. package/dist/src/services/skill-resolution.d.ts.map +1 -0
  129. package/dist/src/services/skill-resolution.js +67 -0
  130. package/dist/src/services/skill-resolution.js.map +1 -0
  131. package/dist/src/services/skill-resolution.test.d.ts +2 -0
  132. package/dist/src/services/skill-resolution.test.d.ts.map +1 -0
  133. package/dist/src/services/skill-resolution.test.js +143 -0
  134. package/dist/src/services/skill-resolution.test.js.map +1 -0
  135. package/dist/src/utils/index.d.ts +1 -0
  136. package/dist/src/utils/index.d.ts.map +1 -1
  137. package/dist/src/utils/index.js +4 -0
  138. package/dist/src/utils/index.js.map +1 -1
  139. package/dist/src/utils/quiet-mode.d.ts +21 -0
  140. package/dist/src/utils/quiet-mode.d.ts.map +1 -0
  141. package/dist/src/utils/quiet-mode.js +26 -0
  142. package/dist/src/utils/quiet-mode.js.map +1 -0
  143. package/dist/tests/EmbeddingService.test.js +58 -1
  144. package/dist/tests/EmbeddingService.test.js.map +1 -1
  145. package/dist/tests/SecurityScanner.performance.test.js +5 -2
  146. package/dist/tests/SecurityScanner.performance.test.js.map +1 -1
  147. package/dist/tests/db/database-abstraction.test.js +45 -1
  148. package/dist/tests/db/database-abstraction.test.js.map +1 -1
  149. package/dist/tests/helpers/deterministic-dead-pid.d.ts +13 -0
  150. package/dist/tests/helpers/deterministic-dead-pid.d.ts.map +1 -0
  151. package/dist/tests/helpers/deterministic-dead-pid.js +31 -0
  152. package/dist/tests/helpers/deterministic-dead-pid.js.map +1 -0
  153. package/dist/tests/integration/owned-lock-lost-update.test.d.ts +12 -0
  154. package/dist/tests/integration/owned-lock-lost-update.test.d.ts.map +1 -0
  155. package/dist/tests/integration/owned-lock-lost-update.test.js +52 -0
  156. package/dist/tests/integration/owned-lock-lost-update.test.js.map +1 -0
  157. package/dist/tests/integration/owned-lock-reclaim-race.test.d.ts +19 -0
  158. package/dist/tests/integration/owned-lock-reclaim-race.test.d.ts.map +1 -0
  159. package/dist/tests/integration/owned-lock-reclaim-race.test.js +177 -0
  160. package/dist/tests/integration/owned-lock-reclaim-race.test.js.map +1 -0
  161. package/dist/tests/unit/services/skill-installation.content.test.d.ts +10 -0
  162. package/dist/tests/unit/services/skill-installation.content.test.d.ts.map +1 -0
  163. package/dist/tests/unit/services/skill-installation.content.test.js +290 -0
  164. package/dist/tests/unit/services/skill-installation.content.test.js.map +1 -0
  165. package/dist/tests/unit/services/skill-installation.io.symlink.test.d.ts +8 -0
  166. package/dist/tests/unit/services/skill-installation.io.symlink.test.d.ts.map +1 -0
  167. package/dist/tests/unit/services/skill-installation.io.symlink.test.js +72 -0
  168. package/dist/tests/unit/services/skill-installation.io.symlink.test.js.map +1 -0
  169. package/dist/tests/unit/services/skill-installation.service.error-codes.test.d.ts +15 -0
  170. package/dist/tests/unit/services/skill-installation.service.error-codes.test.d.ts.map +1 -0
  171. package/dist/tests/unit/services/skill-installation.service.error-codes.test.js +190 -0
  172. package/dist/tests/unit/services/skill-installation.service.error-codes.test.js.map +1 -0
  173. package/dist/tests/unit/services/skill-installation.service.multi-client.test.d.ts +17 -0
  174. package/dist/tests/unit/services/skill-installation.service.multi-client.test.d.ts.map +1 -0
  175. package/dist/tests/unit/services/skill-installation.service.multi-client.test.js +126 -0
  176. package/dist/tests/unit/services/skill-installation.service.multi-client.test.js.map +1 -0
  177. package/dist/tests/unit/services/skill-installation.service.test.js +7 -112
  178. package/dist/tests/unit/services/skill-installation.service.test.js.map +1 -1
  179. package/dist/tests/utils/quiet-mode.test.d.ts +12 -0
  180. package/dist/tests/utils/quiet-mode.test.d.ts.map +1 -0
  181. package/dist/tests/utils/quiet-mode.test.js +42 -0
  182. package/dist/tests/utils/quiet-mode.test.js.map +1 -0
  183. package/package.json +17 -5
@@ -84,6 +84,72 @@ export async function checkForModifications(skillPath, installedAt) {
84
84
  return false;
85
85
  }
86
86
  }
87
+ /**
88
+ * Ensure `dirPath` exists as a real directory, never following (or silently accepting) an
89
+ * existing symlink there.
90
+ *
91
+ * Sol final-code-review finding #2 (confirmed): `safeWriteFile()` only `lstat`s the FINAL
92
+ * path component before writing — a symlinked INTERMEDIATE directory (e.g. `<installPath>/
93
+ * scripts` already existing as a symlink from a prior force-reinstall or a planted attack)
94
+ * is never checked, so a nested sub-skill filename like `"scripts/run.sh"` could write
95
+ * through it to an arbitrary target outside `installPath`. `fs.mkdir(dir, {recursive:true})`
96
+ * alone does not close this either — it silently no-ops on an existing path whether or not
97
+ * that path is a symlink.
98
+ */
99
+ async function ensureDirNoFollow(dirPath) {
100
+ const check = async () => {
101
+ let stats;
102
+ try {
103
+ stats = await fs.lstat(dirPath);
104
+ }
105
+ catch (err) {
106
+ if (err.code === 'ENOENT')
107
+ return 'missing';
108
+ throw err;
109
+ }
110
+ if (stats.isSymbolicLink()) {
111
+ throw new Error('Refusing to write through existing symlink: ' + dirPath);
112
+ }
113
+ if (!stats.isDirectory()) {
114
+ throw new Error('Expected a directory, found a file: ' + dirPath);
115
+ }
116
+ return 'ok';
117
+ };
118
+ if ((await check()) === 'ok')
119
+ return;
120
+ try {
121
+ await fs.mkdir(dirPath);
122
+ }
123
+ catch (err) {
124
+ // EEXIST here is a benign race between our own concurrent sub-skill writes under the
125
+ // same new subdirectory (writeInstallFiles writes them in parallel) — re-check below
126
+ // rather than trust that; it ALSO re-confirms nothing hostile won the race.
127
+ if (err.code !== 'EEXIST')
128
+ throw err;
129
+ }
130
+ // Re-check post-create: closes both the benign concurrent-mkdir race above and the TOCTOU
131
+ // window between the first check and this mkdir.
132
+ if ((await check()) !== 'ok') {
133
+ throw new Error('Failed to create directory: ' + dirPath);
134
+ }
135
+ }
136
+ /**
137
+ * Create every path segment of `dir` (relative to `baseDir`) via `ensureDirNoFollow()`,
138
+ * so no intermediate segment can be a pre-existing symlink. `dir` must already be lexically
139
+ * inside `baseDir` — callers are expected to have proven that (as `writeInstallFiles()`'s
140
+ * `installPath` already is, via its own lexical + realpath checks) before calling this.
141
+ */
142
+ async function mkdirNoFollow(baseDir, dir) {
143
+ const relative = path.relative(baseDir, dir);
144
+ if (relative === '' || relative.startsWith('..'))
145
+ return;
146
+ const segments = relative.split(path.sep);
147
+ let current = baseDir;
148
+ for (const segment of segments) {
149
+ current = path.join(current, segment);
150
+ await ensureDirNoFollow(current);
151
+ }
152
+ }
87
153
  export async function writeInstallFiles(installPath, skillsDir, skillName, finalSkillContent, subSkillFiles, subagentContent) {
88
154
  const writtenFiles = [];
89
155
  let subagentPath;
@@ -116,10 +182,17 @@ export async function writeInstallFiles(installPath, skillsDir, skillName, final
116
182
  const mainSkillPath = path.join(installPath, 'SKILL.md');
117
183
  await safeWriteFile(mainSkillPath, finalSkillContent);
118
184
  writtenFiles.push(mainSkillPath);
119
- // Write sub-skills in parallel
185
+ // Write sub-skills in parallel. Sol final-code-review findings #2/#4: a nested filename
186
+ // (e.g. "scripts/run.sh", used by private-registry content installs) needs its parent
187
+ // directory created symlink-safely first — writeInstallFiles previously neither created it
188
+ // (ENOENT on any clean install with a nested file) nor checked it for a pre-existing symlink.
120
189
  if (subSkillFiles.length > 0) {
121
190
  await Promise.all(subSkillFiles.map(async (subSkill) => {
122
191
  const subPath = path.join(installPath, subSkill.filename);
192
+ const subDir = path.dirname(subPath);
193
+ if (subDir !== installPath) {
194
+ await mkdirNoFollow(installPath, subDir);
195
+ }
123
196
  await safeWriteFile(subPath, subSkill.content);
124
197
  writtenFiles.push(subPath);
125
198
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"skill-installation.io.js","sourceRoot":"","sources":["../../../src/services/skill-installation.io.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAA;AACjC,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,kCAAkC,EAClC,gBAAgB,GACjB,MAAM,gCAAgC,CAAA;AAEvC,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,QAAgB;IAClE,IAAI,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QACvC,MAAM,IAAI,KAAK,CACb,QAAQ;YACN,QAAQ;YACR,sGAAsG,CACzG,CAAA;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAEtC,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,KAAa,EACb,IAAY,EACZ,QAAgB,EAChB,SAAiB,MAAM;IAEvB,MAAM,GAAG,GACP,oCAAoC,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAA;IAC3F,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAA;IAE3F,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;YACtB,MAAM,SAAS,GACb,oCAAoC,GAAG,KAAK,GAAG,GAAG,GAAG,IAAI,GAAG,UAAU,GAAG,QAAQ,CAAA;YACnF,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,SAAS,EAAE;gBAC5C,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,uBAAuB,CAAC;aACrD,CAAC,CAAA;YACF,IAAI,CAAC,cAAc,CAAC,EAAE,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;YACzE,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,CAAA;YAC9C,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;YACxC,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,QAAQ,GAAG,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAA;IACzE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;IAClC,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAA;IAClC,OAAO,IAAI,CAAA;AACb,CAAC;AAED,8EAA8E;AAC9E,6EAA6E;AAC7E,qEAAqE;AACrE,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,wEAAwE;AACxE,2EAA2E;AAC3E,wEAAwE;AACxE,6DAA6D;AAC7D,MAAM,mCAAmC,GAAG,IAAI,CAAA;AAEhD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,SAAiB,EACjB,WAAmB;IAEnB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,IAAI,CAAC,WAAW,CAAC,CAAA;QACzC,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAA;QAElE,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC;gBAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;gBAChD,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;gBACrC,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,GAAG,mCAAmC,EAAE,CAAC;oBACxF,OAAO,IAAI,CAAA;gBACb,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAOD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,WAAmB,EACnB,SAAiB,EACjB,SAAiB,EACjB,iBAAyB,EACzB,aAA2D,EAC3D,eAAmC;IAEnC,MAAM,YAAY,GAAa,EAAE,CAAA;IACjC,IAAI,YAAgC,CAAA;IACpC,mFAAmF;IACnF,gFAAgF;IAChF,kFAAkF;IAClF,mFAAmF;IACnF,6CAA6C;IAC7C,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;IACjD,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IACjD,IACE,eAAe,KAAK,iBAAiB;QACrC,CAAC,eAAe,CAAC,UAAU,CAAC,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,EACzD,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mDAAmD,GAAG,WAAW,CAAC,CAAA;IACpF,CAAC;IACD,oFAAoF;IACpF,qFAAqF;IACrF,mFAAmF;IACnF,8BAA8B;IAC9B,IAAI,aAAa,GAAG,KAAK,CAAA;IACzB,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAA;QAChD,uFAAuF;QACvF,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;QACtD,MAAM,cAAc,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;QACxF,IACE,CAAC,eAAe,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC;YACtD,eAAe,KAAK,cAAc,EAClC,CAAC;YACD,MAAM,IAAI,KAAK,CAAC,oDAAoD,GAAG,WAAW,CAAC,CAAA;QACrF,CAAC;QACD,aAAa,GAAG,IAAI,CAAA;QAEpB,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAA;QACxD,MAAM,aAAa,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAA;QACrD,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAChC,+BAA+B;QAC/B,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,OAAO,CAAC,GAAG,CACf,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;gBACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAA;gBACzD,MAAM,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;gBAC9C,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC5B,CAAC,CAAC,CACH,CAAA;QACH,CAAC;QACD,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,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC,CAAA;YACjE,MAAM,aAAa,CAAC,YAAY,EAAE,eAAe,CAAC,CAAA;YAClD,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;QACjC,CAAC;IACH,CAAC;IAAC,OAAO,UAAU,EAAE,CAAC;QACpB,8EAA8E;QAC9E,wCAAwC;QACxC,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YACpC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC3C,CAAC;QACD,+EAA+E;QAC/E,oFAAoF;QACpF,8EAA8E;QAC9E,gFAAgF;QAChF,mFAAmF;QACnF,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC5E,CAAC;aAAM,CAAC;YACN,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAC7C,CAAC;QACD,MAAM,UAAU,CAAA;IAClB,CAAC;IACD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,CAAA;AACvC,CAAC;AAcD;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,KAAa,EACb,IAAY,EACZ,QAAgB,EAChB,MAAc,EACd,OAAe,EACf,cAAqC;IAErC,MAAM,mBAAmB,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACvF,MAAM,cAAc,GAAa,EAAE,CAAA;IACnC,MAAM,WAAW,GAAgD,EAAE,CAAA;IACnE,MAAM,YAAY,GAAiD,EAAE,CAAA;IACrE,KAAK,MAAM,IAAI,IAAI,kBAAkB,EAAE,CAAC;QACtC,IAAI,OAAe,CAAA;QACnB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,eAAe,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,GAAG,IAAI,EAAE,MAAM,CAAC,CAAA;QACvE,CAAC;QAAC,MAAM,CAAC;YACP,0EAA0E;YAC1E,SAAQ;QACV,CAAC;QACD,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,SAAS,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAA;YAC3C,4EAA4E;YAC5E,8CAA8C;YAC9C,IAAI,UAAyB,CAAA;YAC7B,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;gBACjC,MAAM,SAAS,GAAG,kCAAkC,CAAC,OAAO,CAAC,CAAA;gBAC7D,oEAAoE;gBACpE,UAAU,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;YACtD,CAAC;iBAAM,CAAC;gBACN,UAAU,GAAG,OAAO,CAAA;YACtB,CAAC;YACD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;gBACxB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,OAAO,GAAG,GAAG,GAAG,IAAI,EAAE,UAAU,CAAC,CAAA;gBAC3E,yEAAyE;gBACzE,yEAAyE;gBACzE,sEAAsE;gBACtE,kEAAkE;gBAClE,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;oBAC/B,sEAAsE;oBACtE,IAAI,SAAS,KAAK,KAAK;wBAAE,SAAQ;oBACjC,mEAAmE;oBACnE,WAAW,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAA;oBAC5C,SAAQ;gBACV,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;YAC3B,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,CAAC,CAAA;YACnD,IAAI,CAAC,WAAW,CAAC,KAAK;gBAAE,SAAQ,CAAC,gCAAgC;YACjE,cAAc,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;QAC9C,CAAC;QACD,YAAY,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAChD,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,CAAA;AACtD,CAAC"}
1
+ {"version":3,"file":"skill-installation.io.js","sourceRoot":"","sources":["../../../src/services/skill-installation.io.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@ import type { SkillRepository } from '../repositories/SkillRepository.js';
2
2
  import type { SkillDependencyRepository } from '../repositories/SkillDependencyRepository.js';
3
3
  import type { RiskScoreHistoryRepository } from '../repositories/RiskScoreHistoryRepository.js';
4
4
  import type { Database } from '../db/database-interface.js';
5
- import { type ProgressCallback, type InstallOptions, type InstallResult, type UninstallOptions, type UninstallResult, type RegistryLookup, type CoInstallRecorder, type QuarantineStatus, type AiDefenceFeedback } from './skill-installation.types.js';
5
+ import { type ProgressCallback, type InstallOptions, type InstallResult, type InstallFromContentOptions, type UninstallOptions, type UninstallResult, type RegistryLookup, type CoInstallRecorder, type QuarantineStatus, type AiDefenceFeedback } from './skill-installation.types.js';
6
+ import { type ClientId } from '../install/paths.js';
6
7
  export interface SkillInstallationServiceParams {
7
8
  db: Database;
8
9
  skillRepo: SkillRepository;
@@ -16,6 +17,17 @@ export interface SkillInstallationServiceParams {
16
17
  quarantineLookup?: (skillId: string) => QuarantineStatus | null;
17
18
  riskHistoryRepo?: RiskScoreHistoryRepository;
18
19
  aiDefenceFeedback?: AiDefenceFeedback;
20
+ /**
21
+ * SMI-5894 (Wave 1 Step 3): the client this install/uninstall targets.
22
+ * Defaults to the canonical client (`claude-code`) — every existing
23
+ * caller that doesn't pass it (MCP's install/uninstall tools, and any
24
+ * pre-Wave-1 test) keeps writing/reading manifest entries under the
25
+ * legacy bare-name key, unchanged. Only used for manifest keying
26
+ * (`manifestKeyFor`) and post-install tips — callers still supply their
27
+ * own already-resolved `skillsDir` (e.g. via `resolveClientPath`/
28
+ * `getInstallPath`); this does not re-derive `skillsDir` from `client`.
29
+ */
30
+ client?: ClientId;
19
31
  }
20
32
  export declare class SkillInstallationService {
21
33
  private readonly db;
@@ -30,8 +42,15 @@ export declare class SkillInstallationService {
30
42
  private readonly quarantineLookup?;
31
43
  private readonly riskHistoryRepo?;
32
44
  private readonly aiDefenceFeedback?;
45
+ private readonly client;
33
46
  constructor(params: SkillInstallationServiceParams);
34
47
  install(skillId: string, options?: InstallOptions): Promise<InstallResult>;
48
+ /**
49
+ * SMI-5905 Wave 1: install an already-resolved private-registry skill's
50
+ * content to disk. Thin delegate — see skill-installation.content.ts for
51
+ * the full implementation and its documented scope trim vs. install().
52
+ */
53
+ installFromContent(options: InstallFromContentOptions): Promise<InstallResult>;
35
54
  uninstall(skillName: string, options?: UninstallOptions): Promise<UninstallResult>;
36
55
  }
37
56
  //# sourceMappingURL=skill-installation.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skill-installation.service.d.ts","sourceRoot":"","sources":["../../../src/services/skill-installation.service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA;AAC7F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAA;AAC/F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAA;AA0BtC,MAAM,WAAW,8BAA8B;IAC7C,EAAE,EAAE,QAAQ,CAAA;IACZ,SAAS,EAAE,eAAe,CAAA;IAC1B,mBAAmB,EAAE,yBAAyB,CAAA;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAA;IACnC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,gBAAgB,GAAG,IAAI,CAAA;IAC/D,eAAe,CAAC,EAAE,0BAA0B,CAAA;IAC5C,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;CACtC;AACD,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAU;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAgB;IAChD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAU;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAA8C;IAChF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAA4B;IAC7D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAmB;gBAC1C,MAAM,EAAE,8BAA8B;IAc5C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAsW9E,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;CAU7F"}
1
+ {"version":3,"file":"skill-installation.service.d.ts","sourceRoot":"","sources":["../../../src/services/skill-installation.service.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAA;AAC7F,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAA;AAC/F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACvB,MAAM,+BAA+B,CAAA;AActC,OAAO,EAAoB,KAAK,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAerE,MAAM,WAAW,8BAA8B;IAC7C,EAAE,EAAE,QAAQ,CAAA;IACZ,SAAS,EAAE,eAAe,CAAA;IAC1B,mBAAmB,EAAE,yBAAyB,CAAA;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,wBAAwB,CAAC,EAAE,MAAM,EAAE,CAAA;IACnC,gBAAgB,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,gBAAgB,GAAG,IAAI,CAAA;IAC/D,eAAe,CAAC,EAAE,0BAA0B,CAAA;IAC5C,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAA;CAClB;AACD,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAU;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAA2B;IAC/D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAkB;IAC7C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAgB;IAChD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAU;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAA8C;IAChF,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAA4B;IAC7D,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAmB;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;gBACrB,MAAM,EAAE,8BAA8B;IAe5C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC;IAwWpF;;;;OAIG;IACG,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC;IAW9E,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;CAW7F"}
@@ -3,9 +3,11 @@ import * as path from 'path';
3
3
  import * as os from 'os';
4
4
  import { SecurityScanner } from '../security/index.js';
5
5
  import { TRUST_TIER_SCANNER_OPTIONS, } from './skill-installation.types.js';
6
+ import { installFromContent } from './skill-installation.content.js';
6
7
  import { recordAiDefenceFeedback, collectTrendWarnings } from './skill-installation.feedback.js';
7
8
  import { ManifestManager } from './skill-manifest.js';
8
- import { hashContent, generateTips, extractDepIntel, persistDependencies, applyOptimization, performUninstall, sanitizeInstallError, } from './skill-installation.helpers.js';
9
+ import { hashContent, generateTips, extractDepIntel, persistDependencies, applyOptimization, performUninstall, sanitizeInstallError, manifestKeyFor, } from './skill-installation.helpers.js';
10
+ import { CANONICAL_CLIENT } from '../install/paths.js';
9
11
  import { parseSkillIdInternal, validateSkillMd, checkDepsAgainstQuarantine, resolveRegistryInstall, } from './skill-installation.validate.js';
10
12
  import { fetchFromGitHub, writeInstallFiles, fetchAndScanOptionalFiles, } from './skill-installation.io.js';
11
13
  import { buildInstallFailure, buildConfirmationRequired } from './skill-installation.errors.js';
@@ -24,6 +26,7 @@ export class SkillInstallationService {
24
26
  quarantineLookup;
25
27
  riskHistoryRepo;
26
28
  aiDefenceFeedback;
29
+ client;
27
30
  constructor(params) {
28
31
  this.db = params.db;
29
32
  this.skillRepo = params.skillRepo;
@@ -37,6 +40,7 @@ export class SkillInstallationService {
37
40
  this.riskHistoryRepo = params.riskHistoryRepo;
38
41
  this.aiDefenceFeedback = params.aiDefenceFeedback;
39
42
  this.sessionInstalledSkillIds = params.sessionInstalledSkillIds ?? [];
43
+ this.client = params.client ?? CANONICAL_CLIENT;
40
44
  }
41
45
  async install(skillId, options = {}) {
42
46
  let trustTier = 'unknown';
@@ -81,7 +85,8 @@ export class SkillInstallationService {
81
85
  const installPath = path.join(this.skillsDir, skillName);
82
86
  this.onProgress('manifest', 'Checking manifest');
83
87
  const manifest = await this.manifest.load();
84
- if (manifest.installedSkills[skillName] && !options.force) {
88
+ const manifestKey = manifestKeyFor(skillName, this.client);
89
+ if (manifest.installedSkills[manifestKey] && !options.force) {
85
90
  return buildInstallFailure('ALREADY_INSTALLED', {
86
91
  skillId,
87
92
  installPath,
@@ -277,7 +282,7 @@ export class SkillInstallationService {
277
282
  ...currentManifest,
278
283
  installedSkills: {
279
284
  ...currentManifest.installedSkills,
280
- [skillName]: {
285
+ [manifestKey]: {
281
286
  id: skillId,
282
287
  name: skillName,
283
288
  version: '1.0.0',
@@ -286,6 +291,7 @@ export class SkillInstallationService {
286
291
  installedAt: new Date().toISOString(),
287
292
  lastUpdated: new Date().toISOString(),
288
293
  originalContentHash: contentHash, // hash of optimized content (post-applyOptimization)
294
+ client: this.client,
289
295
  },
290
296
  },
291
297
  }));
@@ -329,7 +335,7 @@ export class SkillInstallationService {
329
335
  blocked: false,
330
336
  });
331
337
  this.onProgress('done', 'Installation complete');
332
- const tips = generateTips(skillName, optimizationInfo);
338
+ const tips = generateTips(skillName, optimizationInfo, this.client, this.skillsDir);
333
339
  tips.unshift(...trendWarnings);
334
340
  tips.push(...optionalFiles.configWarnings);
335
341
  if (options.skipScan) {
@@ -360,6 +366,21 @@ export class SkillInstallationService {
360
366
  });
361
367
  }
362
368
  }
369
+ /**
370
+ * SMI-5905 Wave 1: install an already-resolved private-registry skill's
371
+ * content to disk. Thin delegate — see skill-installation.content.ts for
372
+ * the full implementation and its documented scope trim vs. install().
373
+ */
374
+ async installFromContent(options) {
375
+ return installFromContent({
376
+ ...options,
377
+ db: this.db,
378
+ skillsDir: this.skillsDir,
379
+ manifest: this.manifest,
380
+ client: this.client,
381
+ onProgress: this.onProgress,
382
+ });
383
+ }
363
384
  async uninstall(skillName, options = {}) {
364
385
  return performUninstall({
365
386
  skillName,
@@ -368,6 +389,7 @@ export class SkillInstallationService {
368
389
  manifest: this.manifest,
369
390
  skillDependencyRepo: this.skillDependencyRepo,
370
391
  onProgress: this.onProgress,
392
+ client: this.client,
371
393
  });
372
394
  }
373
395
  }
@@ -1 +1 @@
1
- {"version":3,"file":"skill-installation.service.js","sourceRoot":"","sources":["../../../src/services/skill-installation.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-installation.service.js","sourceRoot":"","sources":["../../../src/services/skill-installation.service.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@
8
8
  import type { ScanReport, ScannerOptions } from '../security/index.js';
9
9
  import type { TrustTier } from '../types/skill.js';
10
10
  import type { DependencyDeclaration } from '../types/dependencies.js';
11
+ import type { ClientId } from '../install/paths.js';
11
12
  /**
12
13
  * Callback invoked during install/uninstall to report progress.
13
14
  * CLI wires this to an `ora` spinner; mcp-server wires to MCP notifications.
@@ -15,6 +16,39 @@ import type { DependencyDeclaration } from '../types/dependencies.js';
15
16
  export type ProgressCallback = (stage: string, detail: string) => void;
16
17
  /** Action to take when a conflict is detected during skill update */
17
18
  export type ConflictAction = 'overwrite' | 'merge' | 'cancel';
19
+ /**
20
+ * SMI-5905: a packaged skill's files as a flat { relativePath: fileText } map,
21
+ * e.g. `{ "SKILL.md": "...", "scripts/foo.sh": "..." }`.
22
+ *
23
+ * Deliberately duplicated (not imported) from the mcp-server's own
24
+ * `SkillContent` (zod-inferred in `registry-tools.ts`) — core cannot depend
25
+ * on mcp-server. Keep the shape in sync if it ever changes.
26
+ */
27
+ export type SkillContent = Record<string, string>;
28
+ /**
29
+ * Options for `installFromContent()` — the content-based install path used by
30
+ * private-registry installs (SMI-5905). Distinct from `InstallOptions` (used
31
+ * by the GitHub-fetch `install()` path): the caller has already resolved
32
+ * `skillId`/`version`/`content` (e.g. via a registry `getContent()` call one
33
+ * layer up) rather than supplying a skillId for `install()` to resolve itself.
34
+ */
35
+ export interface InstallFromContentOptions {
36
+ /** Registry skill ID (author/name format) this content was published under. */
37
+ skillId: string;
38
+ /**
39
+ * Already-resolved semver version string. `installFromContent()` does not
40
+ * choose a version itself — the caller resolves "no version specified"
41
+ * (defaulting to the most-recently-published version) before calling this,
42
+ * mirroring `registry-tools.live.ts`'s `get(teamId, skillId, version)`
43
+ * convention, so `install` and `get` never disagree about what "no
44
+ * version specified" means.
45
+ */
46
+ version: string;
47
+ /** Packaged skill files; must include a non-empty `"SKILL.md"` entry. */
48
+ content: SkillContent;
49
+ /** Force reinstall if the skill is already installed (mirrors `InstallOptions.force`). */
50
+ force?: boolean;
51
+ }
18
52
  /** Options for the install operation */
19
53
  export interface InstallOptions {
20
54
  /** Force reinstall if the skill already exists */
@@ -63,7 +97,7 @@ export interface OptimizationInfo {
63
97
  * stable across releases. Adding a new code requires (a) a real new failure
64
98
  * return path and (b) updating downstream funnel queries.
65
99
  */
66
- export type InstallErrorCode = 'REGISTRY_LOOKUP_UNAVAILABLE' | 'REGISTRY_SKILL_NOT_FOUND' | 'QUARANTINED' | 'ALREADY_INSTALLED' | 'FETCH_FAILED' | 'VALIDATION_FAILED' | 'SKIP_SCAN_FORBIDDEN' | 'SCAN_REJECTED' | 'CONFIRMATION_REQUIRED' | 'UNKNOWN';
100
+ export type InstallErrorCode = 'REGISTRY_LOOKUP_UNAVAILABLE' | 'REGISTRY_SKILL_NOT_FOUND' | 'QUARANTINED' | 'ALREADY_INSTALLED' | 'FETCH_FAILED' | 'VALIDATION_FAILED' | 'SKIP_SCAN_FORBIDDEN' | 'SCAN_REJECTED' | 'CONFIRMATION_REQUIRED' | 'INVALID_CONTENT' | 'UNKNOWN';
67
101
  /** Result of an install operation */
68
102
  export interface InstallResult {
69
103
  success: boolean;
@@ -143,6 +177,13 @@ export interface SkillManifestEntry {
143
177
  pinnedVersion?: string;
144
178
  /** How updates are handled */
145
179
  updatePolicy?: 'auto' | 'manual' | 'never';
180
+ /**
181
+ * SMI-5894 (Wave 1 Step 3): which client this installation targets.
182
+ * Absent on manifest entries written before multi-client re-keying —
183
+ * treat a missing value as the canonical client (`claude-code`), matching
184
+ * `manifestKeyFor()`'s own default.
185
+ */
186
+ client?: ClientId;
146
187
  }
147
188
  /** Manifest tracking all installed skills */
148
189
  export interface SkillManifest {
@@ -1 +1 @@
1
- {"version":3,"file":"skill-installation.types.d.ts","sourceRoot":"","sources":["../../../src/services/skill-installation.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"skill-installation.types.d.ts","sourceRoot":"","sources":["../../../src/services/skill-installation.types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAClD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAMnD;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;AAMtE,qEAAqE;AACrE,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAA;AAE7D;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;AAEjD;;;;;;GAMG;AACH,MAAM,WAAW,yBAAyB;IACxC,+EAA+E;IAC/E,OAAO,EAAE,MAAM,CAAA;IACf;;;;;;;OAOG;IACH,OAAO,EAAE,MAAM,CAAA;IACf,yEAAyE;IACzE,OAAO,EAAE,YAAY,CAAA;IACrB,0FAA0F;IAC1F,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,wCAAwC;AACxC,MAAM,WAAW,cAAc;IAC7B,kDAAkD;IAClD,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,wEAAwE;IACxE,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,2DAA2D;IAC3D,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,kFAAkF;IAClF,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,oBAAoB,EAAE,MAAM,EAAE,CAAA;IAC9B,8DAA8D;IAC9D,YAAY,EAAE,qBAAqB,GAAG,SAAS,CAAA;IAC/C,+DAA+D;IAC/D,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB;AAED,uDAAuD;AACvD,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;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,gBAAgB,GACxB,6BAA6B,GAC7B,0BAA0B,GAC1B,aAAa,GACb,mBAAmB,GACnB,cAAc,GACd,mBAAmB,GACnB,qBAAqB,GACrB,eAAe,GACf,uBAAuB,GACvB,iBAAiB,GACjB,SAAS,CAAA;AAEb,qCAAqC;AACrC,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;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAA;IAC5B,4CAA4C;IAC5C,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,wDAAwD;IACxD,YAAY,CAAC,EAAE,gBAAgB,CAAA;IAC/B,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,cAAc,CAAA;IACzB,qEAAqE;IACrE,mBAAmB,CAAC,EAAE,OAAO,CAAA;IAC7B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,8EAA8E;IAC9E,oBAAoB,CAAC,EAAE,OAAO,CAAA;IAC9B,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,4DAA4D;IAC5D,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;CAC3B;AAED,8DAA8D;AAC9D,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,UAAU,CAAA;AAErD,MAAM,WAAW,iBAAiB;IAChC,cAAc,CAAC,MAAM,EAAE;QACrB,KAAK,EAAE,MAAM,CAAA;QACb,WAAW,EAAE,OAAO,CAAA;QACpB,OAAO,EAAE,MAAM,CAAA;QACf,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,UAAU,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAA;QACrC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAClB;AAMD,0CAA0C;AAC1C,MAAM,WAAW,gBAAgB;IAC/B,uEAAuE;IACvE,KAAK,CAAC,EAAE,OAAO,CAAA;CAChB;AAED,uCAAuC;AACvC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAMD,yDAAyD;AACzD,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,0EAA0E;IAC1E,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,oBAAoB;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,8BAA8B;IAC9B,YAAY,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAA;IAC1C;;;;;OAKG;IACH,MAAM,CAAC,EAAE,QAAQ,CAAA;CAClB;AAED,6CAA6C;AAC7C,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAA;CACpD;AAMD,0CAA0C;AAC1C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,SAAS,CAAA;IACpB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,kEAAkE;IAClE,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B;;;OAGG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;CAC3D;AAED;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;CAClD;AAMD,iDAAiD;AACjD,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,SAAS,EAAE,cAAc,CAkCxE,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"skill-installation.types.js","sourceRoot":"","sources":["../../../src/services/skill-installation.types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA6NH,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,iDAAiD;AACjD,MAAM,CAAC,MAAM,0BAA0B,GAAsC;IAC3E,QAAQ,EAAE;QACR,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,SAAS;KAC5B;IACD,OAAO,EAAE;QACP,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,SAAS;KAC5B;IACD,SAAS,EAAE;QACT,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,SAAS;KAC5B;IACD,KAAK,EAAE;QACL,aAAa,EAAE,GAAG;QAClB,gBAAgB,EAAE,UAAU;KAC7B;IACD,YAAY,EAAE;QACZ,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,OAAO;KAC1B;IACD,OAAO,EAAE;QACP,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,OAAO;KAC1B;IACD,6BAA6B;IAC7B,QAAQ,EAAE;QACR,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,SAAS;KAC5B;IACD,UAAU,EAAE;QACV,aAAa,EAAE,EAAE,EAAE,+DAA+D;QAClF,gBAAgB,EAAE,OAAO;KAC1B;CACF,CAAA"}
1
+ {"version":3,"file":"skill-installation.types.js","sourceRoot":"","sources":["../../../src/services/skill-installation.types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAyQH,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E,iDAAiD;AACjD,MAAM,CAAC,MAAM,0BAA0B,GAAsC;IAC3E,QAAQ,EAAE;QACR,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,SAAS;KAC5B;IACD,OAAO,EAAE;QACP,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,SAAS;KAC5B;IACD,SAAS,EAAE;QACT,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,SAAS;KAC5B;IACD,KAAK,EAAE;QACL,aAAa,EAAE,GAAG;QAClB,gBAAgB,EAAE,UAAU;KAC7B;IACD,YAAY,EAAE;QACZ,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,OAAO;KAC1B;IACD,OAAO,EAAE;QACP,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,OAAO;KAC1B;IACD,6BAA6B;IAC7B,QAAQ,EAAE;QACR,aAAa,EAAE,EAAE;QACjB,gBAAgB,EAAE,SAAS;KAC5B;IACD,UAAU,EAAE;QACV,aAAa,EAAE,EAAE,EAAE,+DAA+D;QAClF,gBAAgB,EAAE,OAAO;KAC1B;CACF,CAAA"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * @fileoverview Shared API-first / local-fallback skill resolution.
3
+ * @module @skillsmith/core/services/skill-resolution
4
+ * @see SMI-1183: original API-first / local-fallback pattern, first written
5
+ * inline in the MCP `get_skill` tool.
6
+ * @see SMI-5896 (Wave 3, discovery-tool consistency): extracted here so
7
+ * `skill_compare` can share the exact same resolution flow instead of only
8
+ * ever querying the local cache — which, per SMI-5427, is no longer kept in
9
+ * sync with the remote-first registry, so a real, searchable registry skill
10
+ * was often simply absent locally and compare would report "not found" for
11
+ * a skill `search`/`get_skill` could both resolve fine.
12
+ *
13
+ * This module owns exactly the "try API, fall back to local DB, normalize
14
+ * not-found" flow — NOT the per-tool result-shape mapping (e.g. MCPSkill vs
15
+ * the compare tool's ExtendedSkill), which stays with each calling tool since
16
+ * those shapes genuinely differ and forcing one shared shape would just move
17
+ * the duplication rather than remove it.
18
+ *
19
+ * Known non-consumer (intentional): `lookupSkillFromRegistry()` in
20
+ * `@skillsmith/mcp-server/tools/install.helpers.ts` implements a similar
21
+ * API-first/local-fallback shape but a materially different contract —
22
+ * null-not-throw, no local fallback when the registry returns a skill with no
23
+ * `repo_url`, and a per-branch `quarantined` derivation this resolver has no
24
+ * concept of. See that function's docblock before attempting to unify them:
25
+ * doing so naively would relax an install-time security gate.
26
+ */
27
+ import type { SkillsmithApiClient, ApiSearchResult } from '../api/client.js';
28
+ import type { SkillRepository } from '../repositories/SkillRepository.js';
29
+ import type { Skill } from '../types/skill.js';
30
+ /**
31
+ * Result of {@link resolveSkillApiFirst} — a discriminated union over the two
32
+ * possible sources so callers can branch on `source` and access the
33
+ * source-specific (snake_case API vs camelCase local DB) shape directly
34
+ * rather than a lossy, pre-merged shape.
35
+ */
36
+ export type ResolvedSkill = {
37
+ source: 'api';
38
+ apiSkill: ApiSearchResult;
39
+ } | {
40
+ source: 'local';
41
+ dbSkill: Skill;
42
+ };
43
+ export interface ResolveSkillOptions {
44
+ /**
45
+ * Request SKILL.md content alongside metadata on the API path. Only
46
+ * `get_skill` needs this; `skill_compare` never sets it. Default `false`.
47
+ */
48
+ includeContent?: boolean;
49
+ }
50
+ /**
51
+ * Resolve a skill by ID, API first with local-DB fallback (SMI-1183).
52
+ *
53
+ * - Tries the live API first (unless `apiClient.isOffline()`).
54
+ * - Falls back to the local `SkillRepository` on API-offline or API failure
55
+ * of any kind (network, 404, etc — all treated the same: fall through).
56
+ * - Throws a normalized `SkillsmithError(SKILL_NOT_FOUND)` when neither
57
+ * source has the skill. Every caller shares this exact message/details
58
+ * shape, so `get_skill` and `skill_compare` report not-found identically
59
+ * instead of two independently-worded messages that can drift.
60
+ *
61
+ * @param skillId - Already-validated/trimmed skill ID (author/name or UUID).
62
+ * @param apiClient - API client used for the primary lookup.
63
+ * @param skillRepository - Local repository used for the fallback lookup.
64
+ * @param options - Optional resolution behavior (e.g. `includeContent`).
65
+ */
66
+ export declare function resolveSkillApiFirst(skillId: string, apiClient: SkillsmithApiClient, skillRepository: SkillRepository, options?: ResolveSkillOptions): Promise<ResolvedSkill>;
67
+ //# sourceMappingURL=skill-resolution.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-resolution.d.ts","sourceRoot":"","sources":["../../../src/services/skill-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAUH,OAAO,KAAK,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAC5E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAA;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAE9C;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,QAAQ,EAAE,eAAe,CAAA;CAAE,GAC5C;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,KAAK,CAAA;CAAE,CAAA;AAEvC,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,mBAAmB,EAC9B,eAAe,EAAE,eAAe,EAChC,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,aAAa,CAAC,CA0BxB"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * @fileoverview Shared API-first / local-fallback skill resolution.
3
+ * @module @skillsmith/core/services/skill-resolution
4
+ * @see SMI-1183: original API-first / local-fallback pattern, first written
5
+ * inline in the MCP `get_skill` tool.
6
+ * @see SMI-5896 (Wave 3, discovery-tool consistency): extracted here so
7
+ * `skill_compare` can share the exact same resolution flow instead of only
8
+ * ever querying the local cache — which, per SMI-5427, is no longer kept in
9
+ * sync with the remote-first registry, so a real, searchable registry skill
10
+ * was often simply absent locally and compare would report "not found" for
11
+ * a skill `search`/`get_skill` could both resolve fine.
12
+ *
13
+ * This module owns exactly the "try API, fall back to local DB, normalize
14
+ * not-found" flow — NOT the per-tool result-shape mapping (e.g. MCPSkill vs
15
+ * the compare tool's ExtendedSkill), which stays with each calling tool since
16
+ * those shapes genuinely differ and forcing one shared shape would just move
17
+ * the duplication rather than remove it.
18
+ *
19
+ * Known non-consumer (intentional): `lookupSkillFromRegistry()` in
20
+ * `@skillsmith/mcp-server/tools/install.helpers.ts` implements a similar
21
+ * API-first/local-fallback shape but a materially different contract —
22
+ * null-not-throw, no local fallback when the registry returns a skill with no
23
+ * `repo_url`, and a per-branch `quarantined` derivation this resolver has no
24
+ * concept of. See that function's docblock before attempting to unify them:
25
+ * doing so naively would relax an install-time security gate.
26
+ */
27
+ import { SkillsmithError, ErrorCodes } from '../errors.js';
28
+ /**
29
+ * Resolve a skill by ID, API first with local-DB fallback (SMI-1183).
30
+ *
31
+ * - Tries the live API first (unless `apiClient.isOffline()`).
32
+ * - Falls back to the local `SkillRepository` on API-offline or API failure
33
+ * of any kind (network, 404, etc — all treated the same: fall through).
34
+ * - Throws a normalized `SkillsmithError(SKILL_NOT_FOUND)` when neither
35
+ * source has the skill. Every caller shares this exact message/details
36
+ * shape, so `get_skill` and `skill_compare` report not-found identically
37
+ * instead of two independently-worded messages that can drift.
38
+ *
39
+ * @param skillId - Already-validated/trimmed skill ID (author/name or UUID).
40
+ * @param apiClient - API client used for the primary lookup.
41
+ * @param skillRepository - Local repository used for the fallback lookup.
42
+ * @param options - Optional resolution behavior (e.g. `includeContent`).
43
+ */
44
+ export async function resolveSkillApiFirst(skillId, apiClient, skillRepository, options = {}) {
45
+ if (!apiClient.isOffline()) {
46
+ try {
47
+ const apiResponse = await apiClient.getSkill(skillId, {
48
+ includeContent: options.includeContent ?? false,
49
+ });
50
+ return { source: 'api', apiSkill: apiResponse.data };
51
+ }
52
+ catch (error) {
53
+ // SMI-1183: log and fall through to the local database for all errors —
54
+ // this allows local-only skills to resolve even when the API 404s.
55
+ console.warn('[skillsmith] API getSkill failed, using local database:', error.message);
56
+ }
57
+ }
58
+ const dbSkill = skillRepository.findById(skillId);
59
+ if (!dbSkill) {
60
+ throw new SkillsmithError(ErrorCodes.SKILL_NOT_FOUND, `Skill "${skillId}" not found`, {
61
+ details: { id: skillId },
62
+ suggestion: 'Try searching for similar skills with the search tool',
63
+ });
64
+ }
65
+ return { source: 'local', dbSkill };
66
+ }
67
+ //# sourceMappingURL=skill-resolution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-resolution.js","sourceRoot":"","sources":["../../../src/services/skill-resolution.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AA8B1D;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,OAAe,EACf,SAA8B,EAC9B,eAAgC,EAChC,UAA+B,EAAE;IAEjC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE;gBACpD,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,KAAK;aAChD,CAAC,CAAA;YACF,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,WAAW,CAAC,IAAI,EAAE,CAAA;QACtD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wEAAwE;YACxE,mEAAmE;YACnE,OAAO,CAAC,IAAI,CACV,yDAAyD,EACxD,KAAe,CAAC,OAAO,CACzB,CAAA;QACH,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IACjD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,eAAe,CAAC,UAAU,CAAC,eAAe,EAAE,UAAU,OAAO,aAAa,EAAE;YACpF,OAAO,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;YACxB,UAAU,EAAE,uDAAuD;SACpE,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;AACrC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=skill-resolution.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-resolution.test.d.ts","sourceRoot":"","sources":["../../../src/services/skill-resolution.test.ts"],"names":[],"mappings":""}