@detergent-software/atk 3.0.0-dev.2 → 3.0.0-dev.20

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 (265) hide show
  1. package/README.md +361 -0
  2. package/build/commands/audit.d.ts.map +1 -1
  3. package/build/commands/audit.js +79 -37
  4. package/build/commands/audit.js.map +1 -1
  5. package/build/commands/browse.d.ts.map +1 -1
  6. package/build/commands/browse.js +119 -154
  7. package/build/commands/browse.js.map +1 -1
  8. package/build/commands/cache.d.ts.map +1 -1
  9. package/build/commands/cache.js +13 -15
  10. package/build/commands/cache.js.map +1 -1
  11. package/build/commands/config.d.ts +1 -1
  12. package/build/commands/config.d.ts.map +1 -1
  13. package/build/commands/config.js +7 -3
  14. package/build/commands/config.js.map +1 -1
  15. package/build/commands/diff.d.ts.map +1 -1
  16. package/build/commands/diff.js +4 -117
  17. package/build/commands/diff.js.map +1 -1
  18. package/build/commands/freeze.d.ts +1 -2
  19. package/build/commands/freeze.d.ts.map +1 -1
  20. package/build/commands/freeze.js +17 -37
  21. package/build/commands/freeze.js.map +1 -1
  22. package/build/commands/info.d.ts +1 -2
  23. package/build/commands/info.d.ts.map +1 -1
  24. package/build/commands/info.js +36 -35
  25. package/build/commands/info.js.map +1 -1
  26. package/build/commands/init.d.ts.map +1 -1
  27. package/build/commands/init.js +39 -405
  28. package/build/commands/init.js.map +1 -1
  29. package/build/commands/install.d.ts.map +1 -1
  30. package/build/commands/install.js +49 -34
  31. package/build/commands/install.js.map +1 -1
  32. package/build/commands/list.d.ts +2 -2
  33. package/build/commands/list.d.ts.map +1 -1
  34. package/build/commands/list.js +138 -27
  35. package/build/commands/list.js.map +1 -1
  36. package/build/commands/outdated.d.ts.map +1 -1
  37. package/build/commands/outdated.js +20 -10
  38. package/build/commands/outdated.js.map +1 -1
  39. package/build/commands/pin.d.ts +1 -2
  40. package/build/commands/pin.d.ts.map +1 -1
  41. package/build/commands/pin.js +44 -47
  42. package/build/commands/pin.js.map +1 -1
  43. package/build/commands/prune.d.ts.map +1 -1
  44. package/build/commands/prune.js +76 -151
  45. package/build/commands/prune.js.map +1 -1
  46. package/build/commands/publish.d.ts +3 -1
  47. package/build/commands/publish.d.ts.map +1 -1
  48. package/build/commands/publish.js +67 -390
  49. package/build/commands/publish.js.map +1 -1
  50. package/build/commands/search.d.ts.map +1 -1
  51. package/build/commands/search.js +14 -19
  52. package/build/commands/search.js.map +1 -1
  53. package/build/commands/setup.d.ts +1 -1
  54. package/build/commands/setup.d.ts.map +1 -1
  55. package/build/commands/setup.js +49 -242
  56. package/build/commands/setup.js.map +1 -1
  57. package/build/commands/sync.d.ts.map +1 -1
  58. package/build/commands/sync.js +114 -121
  59. package/build/commands/sync.js.map +1 -1
  60. package/build/commands/thaw.d.ts +1 -2
  61. package/build/commands/thaw.d.ts.map +1 -1
  62. package/build/commands/thaw.js +19 -37
  63. package/build/commands/thaw.js.map +1 -1
  64. package/build/commands/uninstall.d.ts.map +1 -1
  65. package/build/commands/uninstall.js +106 -221
  66. package/build/commands/uninstall.js.map +1 -1
  67. package/build/commands/unpin.d.ts +1 -2
  68. package/build/commands/unpin.d.ts.map +1 -1
  69. package/build/commands/unpin.js +23 -38
  70. package/build/commands/unpin.js.map +1 -1
  71. package/build/commands/update.d.ts.map +1 -1
  72. package/build/commands/update.js +37 -25
  73. package/build/commands/update.js.map +1 -1
  74. package/build/commands/why.d.ts +1 -1
  75. package/build/commands/why.d.ts.map +1 -1
  76. package/build/commands/why.js +14 -6
  77. package/build/commands/why.js.map +1 -1
  78. package/build/components/AssetDetail.d.ts +1 -3
  79. package/build/components/AssetDetail.d.ts.map +1 -1
  80. package/build/components/AssetDetail.js +24 -21
  81. package/build/components/AssetDetail.js.map +1 -1
  82. package/build/components/AssetTable.d.ts +5 -2
  83. package/build/components/AssetTable.d.ts.map +1 -1
  84. package/build/components/AssetTable.js +37 -40
  85. package/build/components/AssetTable.js.map +1 -1
  86. package/build/components/BrowseExpandedBundle.d.ts +7 -0
  87. package/build/components/BrowseExpandedBundle.d.ts.map +1 -1
  88. package/build/components/BrowseExpandedBundle.js +19 -0
  89. package/build/components/BrowseExpandedBundle.js.map +1 -1
  90. package/build/components/BrowseExpandedRow.d.ts +4 -1
  91. package/build/components/BrowseExpandedRow.d.ts.map +1 -1
  92. package/build/components/BrowseExpandedRow.js +24 -3
  93. package/build/components/BrowseExpandedRow.js.map +1 -1
  94. package/build/components/BrowseList.d.ts +3 -1
  95. package/build/components/BrowseList.d.ts.map +1 -1
  96. package/build/components/BrowseList.js +52 -42
  97. package/build/components/BrowseList.js.map +1 -1
  98. package/build/components/DiffView.d.ts +0 -2
  99. package/build/components/DiffView.d.ts.map +1 -1
  100. package/build/components/DiffView.js +11 -5
  101. package/build/components/DiffView.js.map +1 -1
  102. package/build/components/DryRunBanner.d.ts +3 -3
  103. package/build/components/DryRunBanner.d.ts.map +1 -1
  104. package/build/components/DryRunBanner.js +2 -2
  105. package/build/components/DryRunBanner.js.map +1 -1
  106. package/build/components/FilterBar.d.ts +10 -3
  107. package/build/components/FilterBar.d.ts.map +1 -1
  108. package/build/components/FilterBar.js +4 -4
  109. package/build/components/FilterBar.js.map +1 -1
  110. package/build/components/HelpBar.d.ts.map +1 -1
  111. package/build/components/HelpBar.js +3 -3
  112. package/build/components/HelpBar.js.map +1 -1
  113. package/build/components/InitSuccess.d.ts +5 -0
  114. package/build/components/InitSuccess.d.ts.map +1 -0
  115. package/build/components/InitSuccess.js +20 -0
  116. package/build/components/InitSuccess.js.map +1 -0
  117. package/build/components/InstallSummary.d.ts +3 -3
  118. package/build/components/InstallSummary.d.ts.map +1 -1
  119. package/build/components/InstallSummary.js +2 -2
  120. package/build/components/InstallSummary.js.map +1 -1
  121. package/build/components/Link.d.ts +7 -0
  122. package/build/components/Link.d.ts.map +1 -0
  123. package/build/components/Link.js +6 -0
  124. package/build/components/Link.js.map +1 -0
  125. package/build/components/ListActionBar.d.ts +11 -0
  126. package/build/components/ListActionBar.d.ts.map +1 -0
  127. package/build/components/ListActionBar.js +30 -0
  128. package/build/components/ListActionBar.js.map +1 -0
  129. package/build/components/ListBrowseList.d.ts +27 -0
  130. package/build/components/ListBrowseList.d.ts.map +1 -0
  131. package/build/components/ListBrowseList.js +57 -0
  132. package/build/components/ListBrowseList.js.map +1 -0
  133. package/build/components/ListExpandedRow.d.ts +38 -0
  134. package/build/components/ListExpandedRow.d.ts.map +1 -0
  135. package/build/components/ListExpandedRow.js +46 -0
  136. package/build/components/ListExpandedRow.js.map +1 -0
  137. package/build/components/ListHelpBar.d.ts +19 -0
  138. package/build/components/ListHelpBar.d.ts.map +1 -0
  139. package/build/components/ListHelpBar.js +11 -0
  140. package/build/components/ListHelpBar.js.map +1 -0
  141. package/build/components/OrphanListItem.d.ts +15 -0
  142. package/build/components/OrphanListItem.d.ts.map +1 -0
  143. package/build/components/OrphanListItem.js +6 -0
  144. package/build/components/OrphanListItem.js.map +1 -0
  145. package/build/components/PromptField.d.ts +19 -0
  146. package/build/components/PromptField.d.ts.map +1 -0
  147. package/build/components/PromptField.js +7 -0
  148. package/build/components/PromptField.js.map +1 -0
  149. package/build/components/StatusBadge.d.ts +1 -1
  150. package/build/components/StatusBadge.d.ts.map +1 -1
  151. package/build/components/StatusBadge.js +4 -0
  152. package/build/components/StatusBadge.js.map +1 -1
  153. package/build/components/index.d.ts +10 -2
  154. package/build/components/index.d.ts.map +1 -1
  155. package/build/components/index.js +10 -2
  156. package/build/components/index.js.map +1 -1
  157. package/build/hooks/useBrowseState.d.ts +41 -1
  158. package/build/hooks/useBrowseState.d.ts.map +1 -1
  159. package/build/hooks/useBrowseState.js +142 -12
  160. package/build/hooks/useBrowseState.js.map +1 -1
  161. package/build/hooks/useConfirmation.d.ts +18 -0
  162. package/build/hooks/useConfirmation.d.ts.map +1 -0
  163. package/build/hooks/useConfirmation.js +56 -0
  164. package/build/hooks/useConfirmation.js.map +1 -0
  165. package/build/hooks/useInitState.d.ts +72 -0
  166. package/build/hooks/useInitState.d.ts.map +1 -0
  167. package/build/hooks/useInitState.js +372 -0
  168. package/build/hooks/useInitState.js.map +1 -0
  169. package/build/hooks/useListActions.d.ts +15 -0
  170. package/build/hooks/useListActions.d.ts.map +1 -0
  171. package/build/hooks/useListActions.js +155 -0
  172. package/build/hooks/useListActions.js.map +1 -0
  173. package/build/hooks/useListState.d.ts +151 -0
  174. package/build/hooks/useListState.d.ts.map +1 -0
  175. package/build/hooks/useListState.js +448 -0
  176. package/build/hooks/useListState.js.map +1 -0
  177. package/build/hooks/usePruneState.d.ts +76 -0
  178. package/build/hooks/usePruneState.d.ts.map +1 -0
  179. package/build/hooks/usePruneState.js +246 -0
  180. package/build/hooks/usePruneState.js.map +1 -0
  181. package/build/hooks/usePublishState.d.ts +115 -0
  182. package/build/hooks/usePublishState.d.ts.map +1 -0
  183. package/build/hooks/usePublishState.js +673 -0
  184. package/build/hooks/usePublishState.js.map +1 -0
  185. package/build/hooks/useSetupState.d.ts +59 -0
  186. package/build/hooks/useSetupState.d.ts.map +1 -0
  187. package/build/hooks/useSetupState.js +295 -0
  188. package/build/hooks/useSetupState.js.map +1 -0
  189. package/build/hooks/useUninstallState.d.ts +102 -0
  190. package/build/hooks/useUninstallState.d.ts.map +1 -0
  191. package/build/hooks/useUninstallState.js +342 -0
  192. package/build/hooks/useUninstallState.js.map +1 -0
  193. package/build/lib/checksum.d.ts +39 -0
  194. package/build/lib/checksum.d.ts.map +1 -1
  195. package/build/lib/checksum.js +101 -13
  196. package/build/lib/checksum.js.map +1 -1
  197. package/build/lib/config.d.ts +38 -18
  198. package/build/lib/config.d.ts.map +1 -1
  199. package/build/lib/config.js +107 -55
  200. package/build/lib/config.js.map +1 -1
  201. package/build/lib/diagnostics.d.ts +7 -0
  202. package/build/lib/diagnostics.d.ts.map +1 -1
  203. package/build/lib/diagnostics.js +54 -34
  204. package/build/lib/diagnostics.js.map +1 -1
  205. package/build/lib/diff-command.d.ts +40 -0
  206. package/build/lib/diff-command.d.ts.map +1 -0
  207. package/build/lib/diff-command.js +145 -0
  208. package/build/lib/diff-command.js.map +1 -0
  209. package/build/lib/diff.d.ts +7 -0
  210. package/build/lib/diff.d.ts.map +1 -1
  211. package/build/lib/diff.js +15 -10
  212. package/build/lib/diff.js.map +1 -1
  213. package/build/lib/format.d.ts +6 -0
  214. package/build/lib/format.d.ts.map +1 -0
  215. package/build/lib/format.js +18 -0
  216. package/build/lib/format.js.map +1 -0
  217. package/build/lib/github.d.ts +8 -0
  218. package/build/lib/github.d.ts.map +1 -1
  219. package/build/lib/github.js +9 -0
  220. package/build/lib/github.js.map +1 -1
  221. package/build/lib/installer.d.ts +1 -0
  222. package/build/lib/installer.d.ts.map +1 -1
  223. package/build/lib/installer.js +7 -7
  224. package/build/lib/installer.js.map +1 -1
  225. package/build/lib/lockfile.d.ts +19 -17
  226. package/build/lib/lockfile.d.ts.map +1 -1
  227. package/build/lib/lockfile.js +43 -67
  228. package/build/lib/lockfile.js.map +1 -1
  229. package/build/lib/publisher.d.ts +35 -0
  230. package/build/lib/publisher.d.ts.map +1 -1
  231. package/build/lib/publisher.js +210 -16
  232. package/build/lib/publisher.js.map +1 -1
  233. package/build/lib/registry.d.ts +20 -5
  234. package/build/lib/registry.d.ts.map +1 -1
  235. package/build/lib/registry.js +41 -30
  236. package/build/lib/registry.js.map +1 -1
  237. package/build/lib/schemas/config.d.ts +31 -3
  238. package/build/lib/schemas/config.d.ts.map +1 -1
  239. package/build/lib/schemas/config.js +21 -2
  240. package/build/lib/schemas/config.js.map +1 -1
  241. package/build/lib/schemas/index.d.ts +1 -1
  242. package/build/lib/schemas/index.d.ts.map +1 -1
  243. package/build/lib/schemas/index.js +1 -1
  244. package/build/lib/schemas/index.js.map +1 -1
  245. package/build/lib/schemas/lockfile.d.ts +18 -2
  246. package/build/lib/schemas/lockfile.d.ts.map +1 -1
  247. package/build/lib/schemas/lockfile.js +10 -1
  248. package/build/lib/schemas/lockfile.js.map +1 -1
  249. package/build/lib/search.d.ts +15 -1
  250. package/build/lib/search.d.ts.map +1 -1
  251. package/build/lib/search.js +65 -65
  252. package/build/lib/search.js.map +1 -1
  253. package/build/lib/tool-resolver.d.ts +29 -6
  254. package/build/lib/tool-resolver.d.ts.map +1 -1
  255. package/build/lib/tool-resolver.js +54 -15
  256. package/build/lib/tool-resolver.js.map +1 -1
  257. package/build/lib/updater.d.ts +7 -4
  258. package/build/lib/updater.d.ts.map +1 -1
  259. package/build/lib/updater.js +12 -7
  260. package/build/lib/updater.js.map +1 -1
  261. package/build/lib/version.js +1 -1
  262. package/build/lib/version.js.map +1 -1
  263. package/package.json +79 -65
  264. package/tool-adapters/claude-code.json +1 -1
  265. package/tool-adapters/copilot-cli.json +1 -1
@@ -133,7 +133,7 @@ export function findDependents(lockfile, assetName, assetType, assetOrg) {
133
133
  * Find an installed asset in the lockfile.
134
134
  */
135
135
  export function findInstalledAsset(lockfile, name, type, org) {
136
- return (lockfile.assets ?? []).find((a) => a.name === name && (!type || a.type === type) && (!org || a.org === org));
136
+ return (lockfile.assets ?? []).find((a) => a.name === name && (!type || a.type === type) && a.org === org);
137
137
  }
138
138
  /**
139
139
  * Find dependencies of assetBeingRemoved that would become orphaned after removal.
@@ -163,39 +163,12 @@ export function findOrphanedDependencies(lockfile, assetBeingRemoved, otherNames
163
163
  }
164
164
  return orphans;
165
165
  }
166
- /**
167
- * Freeze an installed asset to prevent sync and update from overwriting it.
168
- * Only direct installs can be frozen; freezing a dependency throws an error.
169
- *
170
- * @throws {LockfileError} if the asset is not found or is not a direct install
171
- */
172
- export function freezeAsset(lockfile, name, type, org) {
173
- const asset = findInstalledAsset(lockfile, name, type, org);
174
- if (!asset) {
175
- throw new LockfileError(`Asset '${name}' is not installed`);
176
- }
177
- if ((asset.installReason ?? 'direct') === 'dependency') {
178
- throw new LockfileError(`Asset '${name}' is a dependency and cannot be frozen — only directly installed assets can be frozen`);
179
- }
180
- return {
181
- ...lockfile,
182
- assets: (lockfile.assets ?? []).map((a) => {
183
- if (a.name === name && (!type || a.type === type) && (!org || a.org === org)) {
184
- return { ...a, frozen: true };
185
- }
186
- return a;
187
- }),
188
- };
189
- }
190
166
  /**
191
167
  * Get all installed assets, optionally filtered by type.
192
168
  */
193
169
  export function getInstalledAssets(lockfile, type) {
194
170
  const assets = lockfile.assets ?? [];
195
- if (!type) {
196
- return assets;
197
- }
198
- return assets.filter((a) => a.type === type);
171
+ return assets.filter((a) => !type || a.type === type);
199
172
  }
200
173
  /**
201
174
  * Get the count of installed assets.
@@ -215,15 +188,6 @@ export function getLockfilePath(projectDir) {
215
188
  export function getLockSentinelPath(projectDir) {
216
189
  return join(projectDir, LOCK_SENTINEL_NAME);
217
190
  }
218
- /**
219
- * Check whether an asset is frozen in the lockfile.
220
- * Returns `true` if the asset exists and has `frozen === true`, `false` otherwise.
221
- * This is a read-only query that never throws.
222
- */
223
- export function isFrozen(lockfile, name, type, org) {
224
- const asset = findInstalledAsset(lockfile, name, type, org);
225
- return asset !== undefined && asset.frozen === true;
226
- }
227
191
  /**
228
192
  * Check if an asset is installed.
229
193
  */
@@ -239,6 +203,12 @@ export function isPinned(lockfile, name, type, org) {
239
203
  const asset = findInstalledAsset(lockfile, name, type, org);
240
204
  return asset !== undefined && !!asset.pinnedVersion;
241
205
  }
206
+ /**
207
+ * Check whether a lockfile exists on disk in the given project directory.
208
+ */
209
+ export function lockfileExists(projectDir) {
210
+ return existsSync(getLockfilePath(projectDir));
211
+ }
242
212
  /**
243
213
  * Pin an installed asset to a specific version.
244
214
  * Only direct installs can be pinned; pinning a dependency throws an error.
@@ -246,17 +216,11 @@ export function isPinned(lockfile, name, type, org) {
246
216
  * @throws {LockfileError} if the asset is not found or is not a direct install
247
217
  */
248
218
  export function pinAssetVersion(lockfile, name, version, type, org) {
249
- const asset = findInstalledAsset(lockfile, name, type, org);
250
- if (!asset) {
251
- throw new LockfileError(`Asset '${name}' is not installed`);
252
- }
253
- if ((asset.installReason ?? 'direct') === 'dependency') {
254
- throw new LockfileError(`Asset '${name}' is a dependency and cannot be pinned — only directly installed assets can be pinned`);
255
- }
219
+ requireDirectInstall(lockfile, name, 'pinned', type, org);
256
220
  return {
257
221
  ...lockfile,
258
222
  assets: (lockfile.assets ?? []).map((a) => {
259
- if (a.name === name && (!type || a.type === type) && (!org || a.org === org)) {
223
+ if (a.name === name && (!type || a.type === type) && a.org === org) {
260
224
  return { ...a, pinnedVersion: version };
261
225
  }
262
226
  return a;
@@ -307,29 +271,26 @@ export async function releaseLockfileLock(projectDir) {
307
271
  export function removeAssetFromLockfile(lockfile, name, type, org) {
308
272
  return {
309
273
  ...lockfile,
310
- assets: (lockfile.assets ?? []).filter((a) => !(a.name === name && (!type || a.type === type) && (!org || a.org === org))),
274
+ assets: (lockfile.assets ?? []).filter((a) => !(a.name === name && (!type || a.type === type) && a.org === org)),
311
275
  };
312
276
  }
313
277
  /**
314
- * Thaw a frozen asset, allowing sync and update to overwrite it again.
278
+ * Validate that an asset is installed and was directly installed (not as a dependency).
279
+ * Throws a descriptive `LockfileError` if the asset is not found or is a dependency.
315
280
  *
316
- * @throws {LockfileError} if the asset is not found
281
+ * @param operation - A verb describing the operation being guarded (e.g. "frozen", "thawed", "pinned").
282
+ * Used in the error message: "dependency and cannot be {operation}".
283
+ * @throws {LockfileError} if the asset is not found or is not a direct install
317
284
  */
318
- export function thawAsset(lockfile, name, type, org) {
285
+ export function requireDirectInstall(lockfile, name, operation, type, org) {
319
286
  const asset = findInstalledAsset(lockfile, name, type, org);
320
287
  if (!asset) {
321
288
  throw new LockfileError(`Asset '${name}' is not installed`);
322
289
  }
323
- return {
324
- ...lockfile,
325
- assets: (lockfile.assets ?? []).map((a) => {
326
- if (a.name === name && (!type || a.type === type) && (!org || a.org === org)) {
327
- const { frozen: _, ...rest } = a;
328
- return rest;
329
- }
330
- return a;
331
- }),
332
- };
290
+ if ((asset.installReason ?? 'direct') === 'dependency') {
291
+ throw new LockfileError(`Asset '${name}' is a dependency and cannot be ${operation} — only directly installed assets can be ${operation}`);
292
+ }
293
+ return asset;
333
294
  }
334
295
  /**
335
296
  * Trace the reverse dependency chain from a given asset upward to all
@@ -360,17 +321,14 @@ export function traceDependencyChain(lockfile, assetName, assetType, assetOrg) {
360
321
  /**
361
322
  * Remove the version pin from an installed asset.
362
323
  *
363
- * @throws {LockfileError} if the asset is not found
324
+ * @throws {LockfileError} if the asset is not found or is not a direct install
364
325
  */
365
326
  export function unpinAssetVersion(lockfile, name, type, org) {
366
- const asset = findInstalledAsset(lockfile, name, type, org);
367
- if (!asset) {
368
- throw new LockfileError(`Asset '${name}' is not installed`);
369
- }
327
+ requireDirectInstall(lockfile, name, 'unpinned', type, org);
370
328
  return {
371
329
  ...lockfile,
372
330
  assets: (lockfile.assets ?? []).map((a) => {
373
- if (a.name === name && (!type || a.type === type) && (!org || a.org === org)) {
331
+ if (a.name === name && (!type || a.type === type) && a.org === org) {
374
332
  const { pinnedVersion: _, ...rest } = a;
375
333
  return rest;
376
334
  }
@@ -386,13 +344,31 @@ export function upgradeToDirectInstall(lockfile, name, type, org) {
386
344
  return {
387
345
  ...lockfile,
388
346
  assets: (lockfile.assets ?? []).map((a) => {
389
- if (a.name === name && (!type || a.type === type) && (!org || a.org === org)) {
347
+ if (a.name === name && (!type || a.type === type) && a.org === org) {
390
348
  return { ...a, installReason: 'direct' };
391
349
  }
392
350
  return a;
393
351
  }),
394
352
  };
395
353
  }
354
+ /**
355
+ * Execute `fn` while holding the advisory lockfile lock, mapping
356
+ * {@link LockfileLockedError} to a user-friendly error message.
357
+ *
358
+ * This is a convenience wrapper around {@link withLockfileLock} that
359
+ * eliminates the need for each command to duplicate the same catch block.
360
+ */
361
+ export async function withLockfileErrorHandling(projectDir, fn) {
362
+ try {
363
+ return await withLockfileLock(projectDir, fn);
364
+ }
365
+ catch (error) {
366
+ if (error instanceof LockfileLockedError) {
367
+ throw new Error('Another ATK process is currently modifying this project. Please wait and try again.');
368
+ }
369
+ throw error;
370
+ }
371
+ }
396
372
  /**
397
373
  * Execute `fn` while holding the advisory lockfile lock.
398
374
  * The lock is always released in a `finally` block, even if `fn` throws.
@@ -1 +1 @@
1
- {"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../src/lib/lockfile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../../src/lib/lockfile.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { Adapter } from './schemas/adapter.js';
1
2
  import type { Bundle } from './schemas/bundle.js';
2
3
  import type { AssetType, Manifest } from './schemas/manifest.js';
3
4
  import type { Registry } from './schemas/registry.js';
@@ -20,6 +21,15 @@ export interface PublishTarget {
20
21
  type: PublishType;
21
22
  }
22
23
  export type PublishType = 'asset' | 'bundle';
24
+ export interface RawAssetDetection {
25
+ assetType: AssetType;
26
+ files: Array<{
27
+ absolutePath: string;
28
+ relativePath: string;
29
+ }>;
30
+ name: string;
31
+ sourceDir: string;
32
+ }
23
33
  export interface ValidationResult {
24
34
  errors: string[];
25
35
  valid: boolean;
@@ -44,8 +54,33 @@ type PublishResultPr = {
44
54
  prUrl: string;
45
55
  };
46
56
  export declare function buildPublishPlan(target: PublishTarget, resolvedVersion: string, isUpdate: boolean, message?: string): Promise<PublishPlan>;
57
+ /**
58
+ * Build a temporary staging directory containing the collected files and a
59
+ * programmatically generated `manifest.json`, ready for the existing publish
60
+ * pipeline. The caller is responsible for cleaning up the returned temp directory.
61
+ */
62
+ export declare function buildStagingArea(detection: RawAssetDetection, metadata: {
63
+ author: string;
64
+ description: string;
65
+ org?: string;
66
+ tags: string[];
67
+ tools: Array<{
68
+ tool: string;
69
+ }>;
70
+ version?: string;
71
+ }): Promise<string>;
47
72
  export declare function bumpVersion(currentVersion: string, bumpType: 'major' | 'minor' | 'patch'): string;
48
73
  export declare function checkRegistryVersion(target: PublishTarget, registry: Registry): VersionCheckResult;
74
+ /**
75
+ * Inspect a filesystem path against adapter placement patterns to detect the asset type,
76
+ * extract the asset name, and collect the relevant files.
77
+ *
78
+ * Supports three input shapes:
79
+ * - A directory that matches a directory-based placement pattern
80
+ * - A single file that matches a file-based placement pattern
81
+ * - An entrypoint file inside a directory-based placement (expands to the parent directory)
82
+ */
83
+ export declare function detectAssetFromPath(inputPath: string, adapter: Adapter, projectDir: string): Promise<RawAssetDetection>;
49
84
  export declare function detectPublishType(directoryPath: string): Promise<PublishTarget>;
50
85
  export declare function executeDirectPublish(plan: PublishPlan, token: string, progressCallback: (msg: string) => void): Promise<PublishResult>;
51
86
  export declare function executePublish(plan: PublishPlan, token: string, progressCallback: (msg: string) => void): Promise<PublishResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../src/lib/publisher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"publisher.d.ts","sourceRoot":"","sources":["../../src/lib/publisher.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,22 @@
1
1
  import { execFile } from 'node:child_process';
2
2
  import { existsSync } from 'node:fs';
3
- import { cp, mkdir, readFile, rm, writeFile } from 'node:fs/promises';
3
+ import { stat } from 'node:fs/promises';
4
+ import { cp, mkdir, mkdtemp, readFile, rm, writeFile } from 'node:fs/promises';
4
5
  import { tmpdir } from 'node:os';
5
- import { dirname, join } from 'node:path';
6
+ import { dirname, join, resolve } from 'node:path';
6
7
  import { promisify } from 'node:util';
7
8
  import { compare as semverCompare, inc as semverInc, valid as semverValid } from 'semver';
8
- import { hashDirectory } from './checksum.js';
9
+ import { collectFilesRecursive, hashDirectory } from './checksum.js';
9
10
  import { DEFAULT_REGISTRY_BRANCH, DEFAULT_REGISTRY_REPO } from './github.js';
10
- import { validateAssetName } from './init.js';
11
+ import { getEntrypointName, SCHEMA_BASE_URL, validateAssetName } from './init.js';
11
12
  import { parseAndValidate } from './parse-json.js';
13
+ import { toRelativePosix } from './paths.js';
12
14
  import { findAsset, findBundle } from './registry.js';
13
15
  import { BundleSchema } from './schemas/bundle.js';
14
16
  import { ManifestSchema } from './schemas/manifest.js';
15
17
  const execFileAsync = promisify(execFile);
16
18
  // ---------------------------------------------------------------------------
17
- // Detection
19
+ // Staging area
18
20
  // ---------------------------------------------------------------------------
19
21
  export async function buildPublishPlan(target, resolvedVersion, isUpdate, message) {
20
22
  const checksum = await hashDirectory(target.sourceDir);
@@ -53,6 +55,53 @@ export async function buildPublishPlan(target, resolvedVersion, isUpdate, messag
53
55
  };
54
56
  }
55
57
  // ---------------------------------------------------------------------------
58
+ // Detection
59
+ // ---------------------------------------------------------------------------
60
+ /**
61
+ * Build a temporary staging directory containing the collected files and a
62
+ * programmatically generated `manifest.json`, ready for the existing publish
63
+ * pipeline. The caller is responsible for cleaning up the returned temp directory.
64
+ */
65
+ export async function buildStagingArea(detection, metadata) {
66
+ // 1. Create a unique temp directory
67
+ const tempDir = await mkdtemp(join(tmpdir(), 'atk-publish-'));
68
+ // 2. Copy all files from detection.files to the temp directory, preserving relative paths
69
+ for (const file of detection.files) {
70
+ const destPath = join(tempDir, file.relativePath);
71
+ const destDir = dirname(destPath);
72
+ await mkdir(destDir, { recursive: true });
73
+ await cp(file.absolutePath, destPath);
74
+ }
75
+ // 3. Determine the entrypoint filename
76
+ // getEntrypointName handles the mapping: skills -> SKILL.md, agents -> {name}.md, etc.
77
+ const entrypoint = getEntrypointName(detection.assetType, detection.name);
78
+ if (!entrypoint) {
79
+ throw new Error(`Cannot determine entrypoint for asset type '${detection.assetType}'.`);
80
+ }
81
+ // 4. Build the manifest files array — all non-entrypoint file relative paths
82
+ const additionalFiles = detection.files.map((f) => f.relativePath).filter((relPath) => relPath !== entrypoint);
83
+ // 5. Generate the manifest object
84
+ const manifest = {
85
+ $schema: `${SCHEMA_BASE_URL}/manifest.schema.json`,
86
+ author: metadata.author,
87
+ description: metadata.description,
88
+ entrypoint,
89
+ name: detection.name,
90
+ ...(metadata.org ? { org: metadata.org } : {}),
91
+ ...(metadata.tags.length > 0 ? { tags: metadata.tags } : {}),
92
+ tools: metadata.tools,
93
+ type: detection.assetType,
94
+ version: metadata.version ?? '1.0.0',
95
+ };
96
+ if (additionalFiles.length > 0) {
97
+ manifest['files'] = additionalFiles;
98
+ }
99
+ // 6. Write the manifest to the temp directory
100
+ await writeFile(join(tempDir, 'manifest.json'), JSON.stringify(manifest, null, 2), 'utf-8');
101
+ // 7. Return the temp directory path
102
+ return tempDir;
103
+ }
104
+ // ---------------------------------------------------------------------------
56
105
  // Validation
57
106
  // ---------------------------------------------------------------------------
58
107
  export function bumpVersion(currentVersion, bumpType) {
@@ -92,6 +141,123 @@ export function checkRegistryVersion(target, registry) {
92
141
  // ---------------------------------------------------------------------------
93
142
  // Version bumping
94
143
  // ---------------------------------------------------------------------------
144
+ /**
145
+ * Inspect a filesystem path against adapter placement patterns to detect the asset type,
146
+ * extract the asset name, and collect the relevant files.
147
+ *
148
+ * Supports three input shapes:
149
+ * - A directory that matches a directory-based placement pattern
150
+ * - A single file that matches a file-based placement pattern
151
+ * - An entrypoint file inside a directory-based placement (expands to the parent directory)
152
+ */
153
+ export async function detectAssetFromPath(inputPath, adapter, projectDir) {
154
+ const absoluteInput = resolve(inputPath);
155
+ const absoluteProject = resolve(projectDir);
156
+ // Verify the path is within the project root
157
+ const normalizedInput = absoluteInput.replace(/\\/g, '/');
158
+ const normalizedProject = absoluteProject.replace(/\\/g, '/');
159
+ if (!normalizedInput.startsWith(normalizedProject + '/') && normalizedInput !== normalizedProject) {
160
+ throw new Error('Path must be within the project root.');
161
+ }
162
+ // Verify the path exists
163
+ let inputStat;
164
+ try {
165
+ inputStat = await stat(absoluteInput);
166
+ }
167
+ catch {
168
+ throw new Error(`Path does not exist: ${absoluteInput}`);
169
+ }
170
+ const isDirectory = inputStat.isDirectory();
171
+ const relPath = toRelativePosix(absoluteProject, absoluteInput);
172
+ // Iterate over all placements in the adapter
173
+ const placementEntries = Object.entries(adapter.placements);
174
+ for (const [assetType, placement] of placementEntries) {
175
+ if (!placement) {
176
+ continue;
177
+ }
178
+ // Reject memory-template and mcp-config
179
+ if (assetType === 'memory-template') {
180
+ // Only reject if the path actually matches this placement pattern
181
+ const memoryMatch = matchPlacementPattern(relPath, placement.path);
182
+ if (memoryMatch) {
183
+ throw new Error('Memory templates cannot be published as raw files. Use `atk init memory-template` instead.');
184
+ }
185
+ continue;
186
+ }
187
+ if (assetType === 'mcp-config') {
188
+ // mcp-config is fileless; skip silently
189
+ continue;
190
+ }
191
+ const isDirectoryPlacement = !!placement.entrypointName;
192
+ if (isDirectoryPlacement) {
193
+ // Directory-based placement (e.g., ".claude/skills/{name}/")
194
+ // The placement path ends with "/" and has an entrypointName
195
+ // Remove the trailing slash for matching purposes
196
+ const dirPattern = placement.path.replace(/\/$/, '');
197
+ let extractedName = null;
198
+ let targetDir = null;
199
+ if (isDirectory) {
200
+ // Case 1: Input is a directory — match directly against the directory pattern
201
+ extractedName = matchPlacementPattern(relPath, dirPattern);
202
+ if (extractedName) {
203
+ targetDir = absoluteInput;
204
+ }
205
+ }
206
+ else {
207
+ // Case 2: Input is a file — check if it's an entrypoint or a file within a matching directory
208
+ // Check if the file is the entrypoint: {dirPattern}/{entrypointName}
209
+ const entrypointPattern = `${dirPattern}/${placement.entrypointName}`;
210
+ extractedName = matchPlacementPattern(relPath, entrypointPattern);
211
+ if (extractedName) {
212
+ targetDir = dirname(absoluteInput);
213
+ }
214
+ // Case 3: Check if the file is inside a directory that matches the pattern
215
+ if (!extractedName) {
216
+ // Try matching the parent directory path
217
+ const parentRelPath = toRelativePosix(absoluteProject, dirname(absoluteInput));
218
+ extractedName = matchPlacementPattern(parentRelPath, dirPattern);
219
+ if (extractedName) {
220
+ targetDir = dirname(absoluteInput);
221
+ }
222
+ }
223
+ }
224
+ if (extractedName && targetDir) {
225
+ // Collect all files in the directory recursively
226
+ const files = await collectFilesRecursive(targetDir, targetDir);
227
+ if (files.length === 0) {
228
+ throw new Error('No files found in directory.');
229
+ }
230
+ return {
231
+ assetType,
232
+ files,
233
+ name: extractedName,
234
+ sourceDir: targetDir,
235
+ };
236
+ }
237
+ }
238
+ else {
239
+ // Single-file placement (e.g., ".claude/agents/{name}.md")
240
+ if (isDirectory) {
241
+ // A directory cannot match a single-file placement
242
+ continue;
243
+ }
244
+ const extractedName = matchPlacementPattern(relPath, placement.path);
245
+ if (extractedName) {
246
+ return {
247
+ assetType,
248
+ files: [{ absolutePath: absoluteInput, relativePath: relPath.split('/').pop() }],
249
+ name: extractedName,
250
+ sourceDir: dirname(absoluteInput),
251
+ };
252
+ }
253
+ }
254
+ }
255
+ throw new Error(`Could not detect asset type from path '${relPath}'. ` +
256
+ `The path does not match any known placement pattern for the '${adapter.displayName}' adapter.`);
257
+ }
258
+ // ---------------------------------------------------------------------------
259
+ // Raw asset detection from filesystem path
260
+ // ---------------------------------------------------------------------------
95
261
  export async function detectPublishType(directoryPath) {
96
262
  const manifestPath = join(directoryPath, 'manifest.json');
97
263
  const bundlePath = join(directoryPath, 'bundle.json');
@@ -157,9 +323,6 @@ export async function executeDirectPublish(plan, token, progressCallback) {
157
323
  await rm(tempDir, { force: true, recursive: true }).catch(() => { });
158
324
  }
159
325
  }
160
- // ---------------------------------------------------------------------------
161
- // Publish plan
162
- // ---------------------------------------------------------------------------
163
326
  export async function executePublish(plan, token, progressCallback) {
164
327
  const tempDir = join(tmpdir(), `atk-publish-${crypto.randomUUID()}`);
165
328
  try {
@@ -231,6 +394,9 @@ export async function executePublish(plan, token, progressCallback) {
231
394
  await rm(tempDir, { force: true, recursive: true }).catch(() => { });
232
395
  }
233
396
  }
397
+ // ---------------------------------------------------------------------------
398
+ // Publish plan
399
+ // ---------------------------------------------------------------------------
234
400
  export function generatePrBody(target, name, version, isUpdate, files, message) {
235
401
  const heading = isUpdate ? `## Updated Asset: ${name}` : `## New Asset: ${name}`;
236
402
  const lines = [heading, ''];
@@ -320,9 +486,6 @@ export function isOrgAsset(plan) {
320
486
  const manifest = plan.target.data;
321
487
  return !!manifest.org;
322
488
  }
323
- // ---------------------------------------------------------------------------
324
- // Org detection
325
- // ---------------------------------------------------------------------------
326
489
  export function mapPublishError(error) {
327
490
  const msg = error instanceof Error ? error.message : String(error);
328
491
  if (msg.includes('already exists')) {
@@ -348,7 +511,7 @@ export function mapPublishError(error) {
348
511
  return msg;
349
512
  }
350
513
  // ---------------------------------------------------------------------------
351
- // PR content generation
514
+ // Org detection
352
515
  // ---------------------------------------------------------------------------
353
516
  export async function updateManifestVersion(sourceDir, manifestFile, newVersion) {
354
517
  const filePath = join(sourceDir, manifestFile);
@@ -357,6 +520,9 @@ export async function updateManifestVersion(sourceDir, manifestFile, newVersion)
357
520
  parsed['version'] = newVersion;
358
521
  await writeFile(filePath, JSON.stringify(parsed, null, '\t') + '\n', 'utf-8');
359
522
  }
523
+ // ---------------------------------------------------------------------------
524
+ // PR content generation
525
+ // ---------------------------------------------------------------------------
360
526
  export async function validatePublishTarget(target) {
361
527
  const errors = [];
362
528
  const warnings = [];
@@ -424,9 +590,6 @@ export async function validatePublishTarget(target) {
424
590
  warnings,
425
591
  };
426
592
  }
427
- // ---------------------------------------------------------------------------
428
- // Publish execution
429
- // ---------------------------------------------------------------------------
430
593
  function collectFilesToPublish(target) {
431
594
  const files = [];
432
595
  if (target.type === 'asset') {
@@ -450,7 +613,7 @@ function collectFilesToPublish(target) {
450
613
  return files;
451
614
  }
452
615
  // ---------------------------------------------------------------------------
453
- // Error helpers
616
+ // Publish execution
454
617
  // ---------------------------------------------------------------------------
455
618
  function generatePrTitle(target, name, version, isUpdate) {
456
619
  if (target.type === 'bundle') {
@@ -464,4 +627,35 @@ function generatePrTitle(target, name, version, isUpdate) {
464
627
  ? `feat(registry): update ${assetType} ${name} to ${version}`
465
628
  : `feat(registry): add ${assetType} ${name}@${version}`;
466
629
  }
630
+ // ---------------------------------------------------------------------------
631
+ // Error helpers
632
+ // ---------------------------------------------------------------------------
633
+ /**
634
+ * Match a project-relative path against an adapter placement path template.
635
+ * Returns the extracted `{name}` value if the path matches, or null otherwise.
636
+ *
637
+ * Placement templates use `{name}` as a placeholder (e.g., `.claude/skills/{name}/`
638
+ * or `.claude/agents/{name}.md`). The `{name}` portion must match `[a-z][a-z0-9-]*`.
639
+ */
640
+ function matchPlacementPattern(inputRelPath, placementPath) {
641
+ // Normalize both paths to forward slashes
642
+ const normalizedInput = inputRelPath.replace(/\\/g, '/');
643
+ const normalizedPattern = placementPath.replace(/\\/g, '/');
644
+ // Escape regex special characters in the pattern, except for {name}
645
+ const escaped = normalizedPattern.replace(/[.*+?^${}()|[\]\\]/g, (match) => {
646
+ // Don't escape curly braces that are part of {name}
647
+ if (match === '{' || match === '}') {
648
+ return match;
649
+ }
650
+ return `\\${match}`;
651
+ });
652
+ // Replace {name} placeholder with a capturing group
653
+ const regexStr = escaped.replace(/\{name\}/g, '([a-z][a-z0-9-]*)');
654
+ const regex = new RegExp(`^${regexStr}$`);
655
+ const match = regex.exec(normalizedInput);
656
+ if (match?.[1]) {
657
+ return match[1];
658
+ }
659
+ return null;
660
+ }
467
661
  //# sourceMappingURL=publisher.js.map