@skaile/workspaces 5.4.0 → 5.5.0

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 (172) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/{asset-feeds-3MVRNS5U.js → asset-feeds-KTFUB7EX.js} +7 -7
  3. package/dist/{asset-feeds-3MVRNS5U.js.map → asset-feeds-KTFUB7EX.js.map} +1 -1
  4. package/dist/asset-manager/catalog-deployer.js +3 -3
  5. package/dist/asset-manager/index.js +6 -6
  6. package/dist/asset-manager/installer.js +4 -4
  7. package/dist/asset-manager/src/index.d.ts +9 -0
  8. package/dist/asset-manager/src/index.d.ts.map +1 -1
  9. package/dist/bridge/drivers/claude-sdk.js +5 -5
  10. package/dist/bridge/drivers/codex.js +5 -5
  11. package/dist/bridge/drivers/continue.js +6 -6
  12. package/dist/bridge/drivers/echo.js +1 -1
  13. package/dist/bridge/drivers/gemini.js +5 -5
  14. package/dist/bridge/drivers/goose.js +6 -6
  15. package/dist/bridge/drivers/omp.js +2 -2
  16. package/dist/bridge/drivers/opencode.js +6 -6
  17. package/dist/bridge/drivers/qwen.js +5 -5
  18. package/dist/bridge/index.js +6 -6
  19. package/dist/{chunk-5NH3U6N5.js → chunk-2D2P7HSR.js} +4 -4
  20. package/dist/{chunk-5NH3U6N5.js.map → chunk-2D2P7HSR.js.map} +1 -1
  21. package/dist/{chunk-OANSNVCP.js → chunk-3665M43C.js} +5 -5
  22. package/dist/{chunk-OANSNVCP.js.map → chunk-3665M43C.js.map} +1 -1
  23. package/dist/{chunk-QEXEHXX5.js → chunk-3JHFFIQ6.js} +4 -4
  24. package/dist/{chunk-QEXEHXX5.js.map → chunk-3JHFFIQ6.js.map} +1 -1
  25. package/dist/{chunk-QK756IRJ.js → chunk-5Y3L7XWH.js} +10 -10
  26. package/dist/{chunk-QK756IRJ.js.map → chunk-5Y3L7XWH.js.map} +1 -1
  27. package/dist/{chunk-37DN45RR.js → chunk-75EX5GY4.js} +4 -4
  28. package/dist/{chunk-37DN45RR.js.map → chunk-75EX5GY4.js.map} +1 -1
  29. package/dist/{chunk-Y5OCUOXF.js → chunk-AC2N5BRP.js} +38 -9
  30. package/dist/chunk-AC2N5BRP.js.map +1 -0
  31. package/dist/{chunk-2XXAVTTO.js → chunk-C4GF7RSQ.js} +3 -3
  32. package/dist/{chunk-2XXAVTTO.js.map → chunk-C4GF7RSQ.js.map} +1 -1
  33. package/dist/{chunk-BHUHGLNS.js → chunk-CODXK5L5.js} +4 -4
  34. package/dist/{chunk-BHUHGLNS.js.map → chunk-CODXK5L5.js.map} +1 -1
  35. package/dist/{chunk-UAAAERXI.js → chunk-DPMKI26Y.js} +3 -3
  36. package/dist/{chunk-UAAAERXI.js.map → chunk-DPMKI26Y.js.map} +1 -1
  37. package/dist/{chunk-A67BHJCH.js → chunk-EJYZ3MKJ.js} +4 -4
  38. package/dist/{chunk-A67BHJCH.js.map → chunk-EJYZ3MKJ.js.map} +1 -1
  39. package/dist/{chunk-UKDFOOEG.js → chunk-ES2FXWQ4.js} +3 -3
  40. package/dist/{chunk-UKDFOOEG.js.map → chunk-ES2FXWQ4.js.map} +1 -1
  41. package/dist/{chunk-VETH6MDG.js → chunk-G2O2AARG.js} +13 -13
  42. package/dist/{chunk-VETH6MDG.js.map → chunk-G2O2AARG.js.map} +1 -1
  43. package/dist/{chunk-ZIYYMR6Y.js → chunk-G474PBUQ.js} +3 -3
  44. package/dist/{chunk-ZIYYMR6Y.js.map → chunk-G474PBUQ.js.map} +1 -1
  45. package/dist/{chunk-IDUGP4V7.js → chunk-JBPG5KQC.js} +3 -3
  46. package/dist/{chunk-IDUGP4V7.js.map → chunk-JBPG5KQC.js.map} +1 -1
  47. package/dist/{chunk-UNRZCQD4.js → chunk-K2NUT3HO.js} +6 -6
  48. package/dist/{chunk-UNRZCQD4.js.map → chunk-K2NUT3HO.js.map} +1 -1
  49. package/dist/{chunk-LUBS5DXY.js → chunk-LCULZ4ED.js} +3 -3
  50. package/dist/{chunk-LUBS5DXY.js.map → chunk-LCULZ4ED.js.map} +1 -1
  51. package/dist/{chunk-DTV7HL5R.js → chunk-LFEGIZTW.js} +2 -2
  52. package/dist/{chunk-DTV7HL5R.js.map → chunk-LFEGIZTW.js.map} +1 -1
  53. package/dist/{chunk-BATL2CWI.js → chunk-MMC24L2W.js} +30 -10
  54. package/dist/chunk-MMC24L2W.js.map +1 -0
  55. package/dist/{chunk-7KITVWXK.js → chunk-N3Y43LMZ.js} +17 -9
  56. package/dist/chunk-N3Y43LMZ.js.map +1 -0
  57. package/dist/{chunk-6IGFSUTE.js → chunk-ORUHADS6.js} +4 -3
  58. package/dist/chunk-ORUHADS6.js.map +1 -0
  59. package/dist/{chunk-JF26V3BC.js → chunk-P6KFWTGP.js} +5 -5
  60. package/dist/{chunk-JF26V3BC.js.map → chunk-P6KFWTGP.js.map} +1 -1
  61. package/dist/{chunk-JEA32KB6.js → chunk-R4G7XI7A.js} +18 -4
  62. package/dist/chunk-R4G7XI7A.js.map +1 -0
  63. package/dist/{chunk-OXE5A6H6.js → chunk-SNVOASTL.js} +3 -3
  64. package/dist/{chunk-OXE5A6H6.js.map → chunk-SNVOASTL.js.map} +1 -1
  65. package/dist/{chunk-U6ORGQHZ.js → chunk-UFS3FEBA.js} +3 -3
  66. package/dist/{chunk-U6ORGQHZ.js.map → chunk-UFS3FEBA.js.map} +1 -1
  67. package/dist/{chunk-ONWTPXVU.js → chunk-UHLBDAJR.js} +7 -7
  68. package/dist/{chunk-ONWTPXVU.js.map → chunk-UHLBDAJR.js.map} +1 -1
  69. package/dist/{chunk-AE42DHSH.js → chunk-V7VDSFPS.js} +2 -2
  70. package/dist/{chunk-AE42DHSH.js.map → chunk-V7VDSFPS.js.map} +1 -1
  71. package/dist/{chunk-XMQAV6T3.js → chunk-WHSQSVN2.js} +2 -2
  72. package/dist/{chunk-XMQAV6T3.js.map → chunk-WHSQSVN2.js.map} +1 -1
  73. package/dist/{chunk-RD6GE4HU.js → chunk-X4GO3GJZ.js} +3 -3
  74. package/dist/{chunk-RD6GE4HU.js.map → chunk-X4GO3GJZ.js.map} +1 -1
  75. package/dist/{chunk-SQBPE66C.js → chunk-XBM5ND55.js} +6 -6
  76. package/dist/{chunk-SQBPE66C.js.map → chunk-XBM5ND55.js.map} +1 -1
  77. package/dist/{chunk-ZUZ5LLZ2.js → chunk-Y4QWHIHB.js} +4 -4
  78. package/dist/{chunk-ZUZ5LLZ2.js.map → chunk-Y4QWHIHB.js.map} +1 -1
  79. package/dist/{chunk-JCATNLY3.js → chunk-YK7WJSTD.js} +3 -3
  80. package/dist/{chunk-JCATNLY3.js.map → chunk-YK7WJSTD.js.map} +1 -1
  81. package/dist/cli/index.js +136 -76
  82. package/dist/cli/index.js.map +1 -1
  83. package/dist/cli/src/commands/catalog.d.ts.map +1 -1
  84. package/dist/cli/src/commands/library-cmd.d.ts.map +1 -1
  85. package/dist/cli/src/commands/npx.d.ts.map +1 -1
  86. package/dist/cli/src/commands/project.d.ts.map +1 -1
  87. package/dist/cli/src/commands/update.d.ts.map +1 -1
  88. package/dist/cli/src/helpers.d.ts +10 -0
  89. package/dist/cli/src/helpers.d.ts.map +1 -1
  90. package/dist/connectors/config.js +2 -2
  91. package/dist/connectors/index.js +9 -9
  92. package/dist/{connectors-OB3OAZTK.js → connectors-MPYCSQNG.js} +12 -12
  93. package/dist/{connectors-OB3OAZTK.js.map → connectors-MPYCSQNG.js.map} +1 -1
  94. package/dist/core/index.js +3 -3
  95. package/dist/core/runtime-assets.js +2 -2
  96. package/dist/core/src/repo-manager.d.ts +7 -0
  97. package/dist/core/src/repo-manager.d.ts.map +1 -1
  98. package/dist/core/workspace-config.js +1 -1
  99. package/dist/deploy/index.js +3 -3
  100. package/dist/{ensure-sources-Z3KKLEM6.js → ensure-sources-QFRA46DJ.js} +9 -9
  101. package/dist/{ensure-sources-Z3KKLEM6.js.map → ensure-sources-QFRA46DJ.js.map} +1 -1
  102. package/dist/factory-assets/connectors/box.js +9 -9
  103. package/dist/factory-assets/connectors/deploy.js +9 -9
  104. package/dist/factory-assets/connectors/devserver.js +9 -9
  105. package/dist/factory-assets/connectors/flow/adapter.js +9 -9
  106. package/dist/factory-assets/connectors/flow/engine.js +4 -4
  107. package/dist/factory-assets/connectors/flow/run-flow.js +10 -10
  108. package/dist/factory-assets/connectors/flow.js +9 -9
  109. package/dist/factory-assets/connectors/git.js +9 -9
  110. package/dist/factory-assets/connectors/gmail.js +9 -9
  111. package/dist/factory-assets/connectors/googledrive.js +9 -9
  112. package/dist/factory-assets/connectors/local.js +9 -9
  113. package/dist/factory-assets/connectors/mattermost.js +9 -9
  114. package/dist/factory-assets/connectors/memory.js +9 -9
  115. package/dist/factory-assets/connectors/minio.js +9 -9
  116. package/dist/factory-assets/connectors/postgres.js +9 -9
  117. package/dist/factory-assets/connectors/s3.js +9 -9
  118. package/dist/factory-assets/connectors/sharepoint.js +9 -9
  119. package/dist/factory-assets/connectors/sqlite.js +9 -9
  120. package/dist/factory-assets/connectors/static-server.js +9 -9
  121. package/dist/factory-assets/connectors/tunnel.js +9 -9
  122. package/dist/factory-assets/connectors/webdav.js +9 -9
  123. package/dist/factory-assets/connectors/xstate-store.js +9 -9
  124. package/dist/factory-assets/connectors/xstate.js +9 -9
  125. package/dist/{flows-DTADYIXH.js → flows-KCARGXRT.js} +6 -6
  126. package/dist/{flows-DTADYIXH.js.map → flows-KCARGXRT.js.map} +1 -1
  127. package/dist/{helpers-F2RFRT5D.js → helpers-PSROT7CU.js} +9 -9
  128. package/dist/{helpers-F2RFRT5D.js.map → helpers-PSROT7CU.js.map} +1 -1
  129. package/dist/library/index.js +4 -4
  130. package/dist/library/src/remote/remote-catalog-source.d.ts +11 -2
  131. package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
  132. package/dist/{library-publish-62RFU74A.js → library-publish-YAI7WOXC.js} +15 -15
  133. package/dist/{library-publish-62RFU74A.js.map → library-publish-YAI7WOXC.js.map} +1 -1
  134. package/dist/{open-library-NVG3CZUO.js → open-library-Z5NJU4Z5.js} +12 -12
  135. package/dist/{open-library-NVG3CZUO.js.map → open-library-Z5NJU4Z5.js.map} +1 -1
  136. package/dist/{open-registry-IYH6W6CN.js → open-registry-TYUVN5SG.js} +8 -8
  137. package/dist/{open-registry-IYH6W6CN.js.map → open-registry-TYUVN5SG.js.map} +1 -1
  138. package/dist/{paths-STQO4FYF.js → paths-HKAXUR3W.js} +6 -6
  139. package/dist/{paths-STQO4FYF.js.map → paths-HKAXUR3W.js.map} +1 -1
  140. package/dist/{plugin-store-2DTEIJTG.js → plugin-store-N6SI2TYM.js} +5 -5
  141. package/dist/{plugin-store-2DTEIJTG.js.map → plugin-store-N6SI2TYM.js.map} +1 -1
  142. package/dist/plugins/src/catalog-source.d.ts +7 -0
  143. package/dist/plugins/src/catalog-source.d.ts.map +1 -1
  144. package/dist/{project-44LM6SRV.js → project-SVS4UMGL.js} +10 -10
  145. package/dist/{project-44LM6SRV.js.map → project-SVS4UMGL.js.map} +1 -1
  146. package/dist/resolver/index.js +3 -3
  147. package/dist/runner/index.js +15 -15
  148. package/dist/sdk/asset-manager.js +6 -6
  149. package/dist/sdk/bridge.js +6 -6
  150. package/dist/sdk/core.js +3 -3
  151. package/dist/sdk/flow.js +4 -4
  152. package/dist/sdk/index.js +15 -15
  153. package/dist/sdk/resolver.js +3 -3
  154. package/dist/sdk/runner.js +15 -15
  155. package/dist/{setup-4BV5ZWOZ.js → setup-IOEZGJNC.js} +13 -13
  156. package/dist/{setup-4BV5ZWOZ.js.map → setup-IOEZGJNC.js.map} +1 -1
  157. package/dist/{skills-M7OU3WMP.js → skills-HW6I6ZZ7.js} +5 -5
  158. package/dist/{skills-M7OU3WMP.js.map → skills-HW6I6ZZ7.js.map} +1 -1
  159. package/dist/{source-HTT6CXUP.js → source-OKRJT53H.js} +13 -13
  160. package/dist/{source-HTT6CXUP.js.map → source-OKRJT53H.js.map} +1 -1
  161. package/dist/{source-manifest-publish-CPXUX3CL.js → source-manifest-publish-MILEQDRD.js} +15 -15
  162. package/dist/{source-manifest-publish-CPXUX3CL.js.map → source-manifest-publish-MILEQDRD.js.map} +1 -1
  163. package/dist/tui/index.js +15 -15
  164. package/dist/workspace-plugin/adapters/mcp.js +12 -12
  165. package/dist/workspace-plugin/adapters/omp.js +14 -14
  166. package/dist/workspace-plugin/index.js +1 -1
  167. package/package.json +1 -1
  168. package/dist/chunk-6IGFSUTE.js.map +0 -1
  169. package/dist/chunk-7KITVWXK.js.map +0 -1
  170. package/dist/chunk-BATL2CWI.js.map +0 -1
  171. package/dist/chunk-JEA32KB6.js.map +0 -1
  172. package/dist/chunk-Y5OCUOXF.js.map +0 -1
package/dist/cli/index.js CHANGED
@@ -1,24 +1,24 @@
1
1
  #!/usr/bin/env node
2
- import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError } from '../chunk-OANSNVCP.js';
3
- import { makeSourceCommand, syncProjectSources } from '../chunk-QK756IRJ.js';
4
- import { AI_RESOURCES } from '../chunk-ZUZ5LLZ2.js';
5
- import { checkSkillManifest } from '../chunk-UKDFOOEG.js';
6
- import { getStoreConfig, storeFetch, deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, isStoreAuthenticated, getStoreToken, getStoreIdentity, assetEntryRef, refFor } from '../chunk-A67BHJCH.js';
7
- import { makeInstallCommand, makeCheckCommand, makeCleanCommand, reportInstalledSoftDeps } from '../chunk-7KITVWXK.js';
2
+ import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError } from '../chunk-3665M43C.js';
3
+ import { makeSourceCommand, syncProjectSources } from '../chunk-5Y3L7XWH.js';
4
+ import { AI_RESOURCES } from '../chunk-Y4QWHIHB.js';
5
+ import { checkSkillManifest } from '../chunk-ES2FXWQ4.js';
6
+ import { getStoreConfig, storeFetch, deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, isStoreAuthenticated, getStoreToken, getStoreIdentity, assetEntryRef, refFor } from '../chunk-EJYZ3MKJ.js';
7
+ import { makeInstallCommand, makeCheckCommand, makeCleanCommand, reportInstalledSoftDeps } from '../chunk-N3Y43LMZ.js';
8
8
  import { createSpinner } from '../chunk-NESV47MF.js';
9
- import { openCatalogSource, openLibraryManager, openLibrary } from '../chunk-JF26V3BC.js';
10
- import { logErr, S, logOk, logInfo, logWarn, TARGET_DEFAULT_HINT, warnLegacyClaudeCopies, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth, KIND_COL_WIDTH } from '../chunk-JEA32KB6.js';
11
- import { createFullRegistry } from '../chunk-5NH3U6N5.js';
9
+ import { openCatalogSource, openLibraryManager, openLibrary } from '../chunk-P6KFWTGP.js';
10
+ import { logErr, S, logOk, logInfo, logWarn, TARGET_DEFAULT_HINT, deferredWarnings, warnLegacyClaudeCopies, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth, KIND_COL_WIDTH } from '../chunk-R4G7XI7A.js';
11
+ import { createFullRegistry } from '../chunk-2D2P7HSR.js';
12
12
  import { LocalSecretsProvider } from '../chunk-HTKZ4AOW.js';
13
- import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-VETH6MDG.js';
14
- import { buildClaudePluginFiles } from '../chunk-DTV7HL5R.js';
15
- import '../chunk-BHUHGLNS.js';
16
- import '../chunk-XMQAV6T3.js';
13
+ import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-G2O2AARG.js';
14
+ import { buildClaudePluginFiles } from '../chunk-LFEGIZTW.js';
15
+ import '../chunk-CODXK5L5.js';
16
+ import '../chunk-WHSQSVN2.js';
17
17
  import '../chunk-R6O6YWU7.js';
18
18
  import '../chunk-GCYD4EGY.js';
19
19
  import '../chunk-JELTQ4H7.js';
20
20
  import '../chunk-4ZTPYIBE.js';
21
- import '../chunk-OXE5A6H6.js';
21
+ import '../chunk-SNVOASTL.js';
22
22
  import '../chunk-X5YPJV4N.js';
23
23
  import '../chunk-O7SG5PC2.js';
24
24
  import '../chunk-7QBNJTTQ.js';
@@ -27,47 +27,47 @@ import '../chunk-5LKOAX7I.js';
27
27
  import '../chunk-32NA4TVC.js';
28
28
  import '../chunk-W3UDISS2.js';
29
29
  import '../chunk-HCYS7GFP.js';
30
- import { runFlow, resumeFlow } from '../chunk-SQBPE66C.js';
30
+ import { runFlow, resumeFlow } from '../chunk-XBM5ND55.js';
31
31
  import '../chunk-4R6DROGN.js';
32
32
  import { validateFlowVersions, parseSkillFrontmatter } from '../chunk-JAJG4G5E.js';
33
33
  import '../chunk-JKWU6ULI.js';
34
34
  import '../chunk-CT6NQSA4.js';
35
- import '../chunk-ONWTPXVU.js';
35
+ import '../chunk-UHLBDAJR.js';
36
36
  import '../chunk-QMWMSZQ4.js';
37
- import '../chunk-RD6GE4HU.js';
38
- import '../chunk-IDUGP4V7.js';
37
+ import '../chunk-X4GO3GJZ.js';
38
+ import '../chunk-JBPG5KQC.js';
39
39
  import '../chunk-LAI7X6I2.js';
40
40
  import '../chunk-EINLFFP6.js';
41
41
  import '../chunk-LOO5CB5M.js';
42
42
  import '../chunk-BNUZEYC3.js';
43
- import '../chunk-LUBS5DXY.js';
43
+ import '../chunk-LCULZ4ED.js';
44
44
  import '../chunk-XBSQ4KMC.js';
45
45
  import '../chunk-YROR332M.js';
46
- import { getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-AE42DHSH.js';
46
+ import { getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-V7VDSFPS.js';
47
47
  import '../chunk-6E6PKKAD.js';
48
48
  import '../chunk-IFGTRL2I.js';
49
- import { projectAiAssetsRoots, loadFlow, loadAllFlowEntries, findFlowFileInRoots } from '../chunk-UAAAERXI.js';
49
+ import { projectAiAssetsRoots, loadFlow, loadAllFlowEntries, findFlowFileInRoots } from '../chunk-DPMKI26Y.js';
50
50
  import '../chunk-37FTLYFP.js';
51
51
  import '../chunk-QZLWJETK.js';
52
52
  import '../chunk-XUUYAS3Z.js';
53
53
  import { nodeLabel, nodeSkillAsset, nodeIsInert, nodeIsOptional, nodeRunKind, flowSkillVersionPins } from '../chunk-NFGRW3L7.js';
54
54
  import '../chunk-QCI6D7E4.js';
55
55
  import '../chunk-K2K7OF4P.js';
56
- import { AssetManager, NON_DEPLOYABLE_KINDS, MissingManifestError, parseRefTolerant, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-BATL2CWI.js';
57
- import { cloneOrInitGitRepo, ensureGitRepo, setManifestPublisher, syncManifestWithDisk, isGitRepo, assertManifestEditable, installLibraryAsset, missingRootAssets, stampManifestPublisher, upsertManifestAsset, getStoreManifestsDir, getDefaultValue, isSecretPlaceholder } from '../chunk-Y5OCUOXF.js';
56
+ import { AssetManager, NON_DEPLOYABLE_KINDS, MissingManifestError, parseRefTolerant, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-MMC24L2W.js';
57
+ import { cloneOrInitGitRepo, ensureGitRepo, setManifestPublisher, syncManifestWithDisk, isGitRepo, assertManifestEditable, installLibraryAsset, missingRootAssets, stampManifestPublisher, upsertManifestAsset, getStoreManifestsDir, getDefaultValue, isSecretPlaceholder } from '../chunk-AC2N5BRP.js';
58
58
  import { parseManifestFile } from '../chunk-Y7UBRRKG.js';
59
59
  import '../chunk-VKSA2CDJ.js';
60
60
  import '../chunk-R7FOF242.js';
61
61
  import '../chunk-ZDKJHQY2.js';
62
- import '../chunk-37DN45RR.js';
62
+ import '../chunk-75EX5GY4.js';
63
63
  import '../chunk-CGYEHQOX.js';
64
- import { resolveSettings, globalSettingsPath, projectSettingsPath, loadSettings, saveSettings, WorkspaceYamlEditor, resolveLibraryDir, checkAgentSkillConformance, globalInstallDir, GLOBAL_INSTALL_DIR_NAME, readLock, workspaceProviderRegistryPath, userProviderRegistryPath, loadProviderRegistryFile, aiResourceRoots } from '../chunk-QEXEHXX5.js';
64
+ import { resolveSettings, globalSettingsPath, projectSettingsPath, loadSettings, saveSettings, WorkspaceYamlEditor, resolveLibraryDir, checkAgentSkillConformance, globalInstallDir, GLOBAL_INSTALL_DIR_NAME, readLock, workspaceProviderRegistryPath, userProviderRegistryPath, loadProviderRegistryFile, aiResourceRoots } from '../chunk-3JHFFIQ6.js';
65
65
  import '../chunk-4GY63JU6.js';
66
- import { factoryAssetRoots } from '../chunk-JCATNLY3.js';
66
+ import { factoryAssetRoots } from '../chunk-YK7WJSTD.js';
67
67
  import '../chunk-XGIS325V.js';
68
68
  import { DEFAULT_DRIVER_ID, DRIVER_DEFAULTS } from '../chunk-5BEFNLOR.js';
69
69
  import { findKindDirs } from '../chunk-A2ULN3KX.js';
70
- import { sourceCacheKey, getGlobalCacheDir, resolveAgentDir, AgentRefResolutionError, matchPin, coerceVersion, loadSkWorkspaceConfig, resolveSkWorkspaceConfig, storeManifestSlug, isWorkspaceConfigFilename } from '../chunk-6IGFSUTE.js';
70
+ import { sourceCacheKey, getGlobalCacheDir, resolveAgentDir, AgentRefResolutionError, matchPin, coerceVersion, loadSkWorkspaceConfig, resolveSkWorkspaceConfig, storeManifestSlug, isWorkspaceConfigFilename } from '../chunk-ORUHADS6.js';
71
71
  import { globalCacheRoot, globalSkaileDir, userConfigPath } from '../chunk-MFHKHXDE.js';
72
72
  import { SUPPORTED_DRIVER_TARGETS } from '../chunk-TOSHZX4C.js';
73
73
  import { loadSkPublishManifest, SKAILE_MANIFEST_FILENAME, decodeSkaileManifest } from '../chunk-SR4RFKHM.js';
@@ -129,15 +129,50 @@ function filterCatalogAssets(assets, query) {
129
129
  (a) => a.name.toLowerCase().includes(q) || (a.description?.toLowerCase().includes(q) ?? false) || a.publisher.toLowerCase().includes(q)
130
130
  );
131
131
  }
132
+ function nearAssetKind(word) {
133
+ const w = word.toLowerCase();
134
+ let best;
135
+ for (const kind of ASSET_KINDS) {
136
+ const d = editDistance(w, kind);
137
+ const max = kind.length >= 7 ? 2 : 1;
138
+ if (d > 0 && d <= max && (!best || d < best.d)) best = { kind, d };
139
+ }
140
+ return best?.kind;
141
+ }
142
+ function editDistance(a, b) {
143
+ let prev = Array.from({ length: b.length + 1 }, (_, j) => j);
144
+ for (let i = 1; i <= a.length; i++) {
145
+ const cur = [i];
146
+ for (let j = 1; j <= b.length; j++) {
147
+ cur[j] = Math.min(
148
+ prev[j] + 1,
149
+ cur[j - 1] + 1,
150
+ prev[j - 1] + (a[i - 1] === b[j - 1] ? 0 : 1)
151
+ );
152
+ }
153
+ prev = cur;
154
+ }
155
+ return prev[b.length];
156
+ }
132
157
  async function runSearch(kind, query, opts) {
133
158
  if (kind?.includes(":")) {
134
159
  query = kind;
135
160
  kind = void 0;
136
161
  }
137
162
  if (kind && query === void 0 && !ASSET_KINDS.includes(kind)) {
163
+ const near = nearAssetKind(kind);
164
+ if (near)
165
+ logInfo(S.dim(`Searching all kinds for "${kind}". To filter by kind: skaile search ${near}`));
138
166
  query = kind;
139
167
  kind = void 0;
140
168
  }
169
+ if (kind && !ASSET_KINDS.includes(kind)) {
170
+ const near = nearAssetKind(kind);
171
+ logErr(
172
+ `Unknown asset kind "${kind}"${near ? ` (did you mean "${near}"?)` : ""}. Kinds: ${ASSET_KINDS.join(", ")}.`
173
+ );
174
+ process.exit(1);
175
+ }
141
176
  const showLocal = !opts.store;
142
177
  const showStore = !opts.local;
143
178
  const { resolveConfig } = await import('../library/index.js');
@@ -150,7 +185,7 @@ async function runSearch(kind, query, opts) {
150
185
  }
151
186
  }
152
187
  async function searchIndex(query, kind) {
153
- const { openLibrary: openLibrary2 } = await import('../open-library-NVG3CZUO.js');
188
+ const { openLibrary: openLibrary2 } = await import('../open-library-Z5NJU4Z5.js');
154
189
  const library = await openLibrary2();
155
190
  try {
156
191
  const defs = await library.listAssetDefs(kind ? { kind } : {});
@@ -203,7 +238,7 @@ async function searchLocal(query, kind, opts, showStore, airGapped) {
203
238
  const factory = await searchFactory(projectDir, query, kind);
204
239
  let entries = unionEntries(await searchIndex(query, kind), factory);
205
240
  if (entries.length === 0 && !query && !kind && !airGapped) {
206
- const { autoSyncForSearch } = await import('../source-HTT6CXUP.js');
241
+ const { autoSyncForSearch } = await import('../source-OKRJT53H.js');
207
242
  if (await autoSyncForSearch(projectDir)) {
208
243
  entries = unionEntries(await searchIndex(query, kind), factory);
209
244
  }
@@ -312,7 +347,7 @@ async function searchStore(query, kind, opts, airGapped) {
312
347
  logInfo("air-gapped (cache_ttl: 0) \u2014 local sources only");
313
348
  return;
314
349
  }
315
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-NVG3CZUO.js');
350
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-Z5NJU4Z5.js');
316
351
  try {
317
352
  const remote = await openCatalogSource2({ projectDir: path36__default.resolve(opts.projectDir) });
318
353
  const assets = await remote.listAssets(kind ? { kind } : {});
@@ -429,11 +464,13 @@ function makeAddCommand() {
429
464
  process.exit(1);
430
465
  }
431
466
  const harnesses = parseHarnessFilter(opts.harness);
467
+ const warnings = deferredWarnings();
432
468
  const am2 = new AssetManager({
433
469
  projectDir: path36__default.resolve(opts.projectDir),
434
470
  global: opts.global || harnesses !== void 0,
435
471
  harnesses,
436
- driverTarget: opts.target
472
+ driverTarget: opts.target,
473
+ onLibraryCollision: warnings.push
437
474
  });
438
475
  const spinner = createSpinner();
439
476
  spinner.start(`Adding ${ref}`);
@@ -444,6 +481,7 @@ function makeAddCommand() {
444
481
  onLibraryOrigin: (deployedRef, library) => libraryOf.set(deployedRef, library)
445
482
  });
446
483
  spinner.stop("Done");
484
+ warnings.flush();
447
485
  await promptSoftDepAdds(am2, ref, {
448
486
  isTTY: !!process.stdin.isTTY,
449
487
  link: opts.link,
@@ -471,6 +509,7 @@ function makeAddCommand() {
471
509
  await reportBundleMembership(am2, ref, (line) => logInfo(S.dim(line)));
472
510
  } catch (err) {
473
511
  spinner.stop("Failed");
512
+ warnings.flush();
474
513
  logErr(String(err));
475
514
  process.exit(1);
476
515
  }
@@ -643,7 +682,7 @@ async function resolveInfoEntry(am2, ref, opts) {
643
682
  return { entry: match ?? deployed };
644
683
  }
645
684
  const lookup = opts.storeLookup ?? (async (filter) => {
646
- const { resolveCatalogSource } = await import('../open-library-NVG3CZUO.js');
685
+ const { resolveCatalogSource } = await import('../open-library-Z5NJU4Z5.js');
647
686
  const { source, close } = await resolveCatalogSource({ projectDir: opts.projectDir });
648
687
  try {
649
688
  return await source.listAssets(filter);
@@ -659,7 +698,7 @@ async function resolveInfoEntry(am2, ref, opts) {
659
698
  );
660
699
  return { entry: hit ? catalogAssetToEntry(hit) : null };
661
700
  } catch (err) {
662
- const { LocalCatalogDisabledError } = await import('../open-library-NVG3CZUO.js');
701
+ const { LocalCatalogDisabledError } = await import('../open-library-Z5NJU4Z5.js');
663
702
  const storeNote = err instanceof Error ? err.message : String(err);
664
703
  const disabled = err instanceof LocalCatalogDisabledError || /catalog\.url/i.test(storeNote);
665
704
  return { entry: null, storeNote, ...disabled ? { storeDisabled: true } : {} };
@@ -1357,7 +1396,7 @@ function makeCatalogCommand() {
1357
1396
  return catalog;
1358
1397
  }
1359
1398
  async function runLocalCatalogTest(projectDir) {
1360
- const { resolveCatalogSource } = await import('../open-library-NVG3CZUO.js');
1399
+ const { resolveCatalogSource } = await import('../open-library-Z5NJU4Z5.js');
1361
1400
  let resolved;
1362
1401
  try {
1363
1402
  resolved = await resolveCatalogSource({ projectDir });
@@ -1501,8 +1540,8 @@ async function scanLibraryFlowEntries() {
1501
1540
  const indexPath = resolveIndexPath();
1502
1541
  if (!existsSync(indexPath)) return entries;
1503
1542
  const [{ authoringLibraries }, { createFullRegistry: createFullRegistry2 }] = await Promise.all([
1504
- import('../open-library-NVG3CZUO.js'),
1505
- import('../open-registry-IYH6W6CN.js')
1543
+ import('../open-library-Z5NJU4Z5.js'),
1544
+ import('../open-registry-TYUVN5SG.js')
1506
1545
  ]);
1507
1546
  const index = new LocalIndex({ indexPath });
1508
1547
  try {
@@ -2462,7 +2501,7 @@ async function ensureTargetsRegistered(projectDir) {
2462
2501
  const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
2463
2502
  const config = resolveSkWorkspaceConfig2(projectDir);
2464
2503
  if (config.plugins && config.plugins.length > 0) {
2465
- const { ensurePluginsLoaded } = await import('../plugin-store-2DTEIJTG.js');
2504
+ const { ensurePluginsLoaded } = await import('../plugin-store-N6SI2TYM.js');
2466
2505
  const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
2467
2506
  for (const f of result.failed) logWarn(f.error);
2468
2507
  }
@@ -3424,7 +3463,7 @@ function makeLibraryCommand() {
3424
3463
  close();
3425
3464
  }
3426
3465
  });
3427
- cmd.command("init <name>").description("Create (or adopt) a library \u2014 default location ~/.skaile/libraries/<name>").option("--git <url>", "Initialize as a git library tracking <url>").option("--path <dir>", "Register the library at <dir> (created if missing) instead").option("--owner", "Mark as owner (the default)").option("--contributor", "Mark as contributor (needs --git)").option("--reader", "Mark as reader (needs --git)").action(
3466
+ cmd.command("init <name>").description("Create (or adopt) a library \u2014 default location ~/.skaile/libraries/<name>").option("--git <url>", "Initialize as a git library tracking <url>").option("--path <dir>", "Register the library at <dir> (created if missing) instead").option("--owner", "Mark as owner (the default)").option("--contributor", "Mark as contributor (needs --git or an existing git clone)").option("--reader", "Mark as reader (needs --git or an existing git clone)").action(
3428
3467
  async (name, opts) => {
3429
3468
  const flagged = ["owner", "contributor", "reader"].filter((o) => opts[o]);
3430
3469
  if (flagged.length > 1) {
@@ -3432,18 +3471,19 @@ function makeLibraryCommand() {
3432
3471
  process.exit(1);
3433
3472
  }
3434
3473
  const ownership = flagged[0] ?? "owner";
3435
- if (ownership !== "owner" && !opts.git) {
3436
- logErr(
3437
- `--${ownership} needs --git <url>: ownership only governs sync with a git remote, and a local library is always owned by you.`
3438
- );
3439
- process.exit(1);
3440
- }
3441
3474
  const libPath = opts.path ? path36.resolve(opts.path) : path36.join(resolveLibraryDir(), name);
3442
3475
  refuseGlobalInstallFolder(name, libPath);
3443
3476
  if (fs12.existsSync(libPath) && !fs12.statSync(libPath).isDirectory()) {
3444
3477
  logErr(`${libPath} exists and is not a directory.`);
3445
3478
  process.exit(1);
3446
3479
  }
3480
+ const adopted = opts.git ? null : readOriginTracking(libPath);
3481
+ if (ownership !== "owner" && !opts.git && !adopted) {
3482
+ logErr(
3483
+ `--${ownership} needs --git <url> or an existing git clone: ownership only governs sync with a git remote, and a local library is always owned by you.`
3484
+ );
3485
+ process.exit(1);
3486
+ }
3447
3487
  const { manager, library, close } = await openLibraryManager();
3448
3488
  try {
3449
3489
  if (await manager.getLibrary(name)) {
@@ -3454,7 +3494,6 @@ function makeLibraryCommand() {
3454
3494
  const hasDefault = (await manager.listLibraries()).some((l) => l.isDefault);
3455
3495
  let backend = "local";
3456
3496
  let backendConfig;
3457
- let adoptedOrigin = false;
3458
3497
  if (opts.git) {
3459
3498
  const { branch, reason } = cloneOrInitGitRepo(libPath, opts.git, "main");
3460
3499
  if (reason) {
@@ -3464,15 +3503,11 @@ function makeLibraryCommand() {
3464
3503
  }
3465
3504
  backend = "git";
3466
3505
  backendConfig = { url: opts.git, branch, authHint: "ssh" };
3506
+ } else if (adopted) {
3507
+ backend = "git";
3508
+ backendConfig = { url: adopted.url, branch: adopted.branch, authHint: "ssh" };
3467
3509
  } else {
3468
- const origin = readOriginTracking(libPath);
3469
- if (origin) {
3470
- backend = "git";
3471
- backendConfig = { url: origin.url, branch: origin.branch, authHint: "ssh" };
3472
- adoptedOrigin = true;
3473
- } else {
3474
- fs12.mkdirSync(libPath, { recursive: true });
3475
- }
3510
+ fs12.mkdirSync(libPath, { recursive: true });
3476
3511
  }
3477
3512
  const blank = fs12.readdirSync(libPath).every((entry) => entry === ".git");
3478
3513
  const isDefault = !hasDefault && ownership !== "reader";
@@ -3489,8 +3524,15 @@ function makeLibraryCommand() {
3489
3524
  `Library "${name}" ${blank ? "created" : "registered"} at ${libPath}${isDefault ? " (default)" : ""}`
3490
3525
  );
3491
3526
  if (scaffolded.length > 0) logInfo(`Scaffolded ${scaffolded.join(", ")}.`);
3492
- if (adoptedOrigin && backendConfig) {
3493
- logInfo(`Adopted existing git clone as a git library tracking ${backendConfig.url}.`);
3527
+ if (adopted) {
3528
+ logInfo(
3529
+ `Adopted existing git clone as a git library tracking ${adopted.url} (ownership: ${ownership}).`
3530
+ );
3531
+ if (ownership === "owner") {
3532
+ logInfo(
3533
+ `\`library push\` / \`sync\` push to that origin. Not your library? Run \`skaile library set ${name} ownership=reader\` (or \`contributor\` to propose changes).`
3534
+ );
3535
+ }
3494
3536
  }
3495
3537
  if (!blank) {
3496
3538
  const lib = await manager.requireLibrary(name);
@@ -3849,16 +3891,16 @@ function makeLibraryCommand() {
3849
3891
  "With --create-repo: create the repo private (the store only accepts public repos)"
3850
3892
  ).option("--ref <gitref>", "Git ref to ingest (default: the library branch or main)").option("--dry-run", "Print the plan; push nothing and call no store endpoint").action(
3851
3893
  async (lib, opts) => {
3852
- const { runLibraryPublish } = await import('../library-publish-62RFU74A.js');
3894
+ const { runLibraryPublish } = await import('../library-publish-YAI7WOXC.js');
3853
3895
  await withStoreErrorHandling(() => runLibraryPublish(lib, opts));
3854
3896
  }
3855
3897
  );
3856
3898
  cmd.command("register <lib>").description("Register the library's manifest without pushing (bytes already on github)").option("--asset <ref>", "Publish only the single asset matching this ref/name").option("--ref <gitref>", "Git ref to ingest (default: the library branch or main)").option("--dry-run", "Print the plan; call no store endpoint").action(async (lib, opts) => {
3857
- const { runLibraryRegister } = await import('../library-publish-62RFU74A.js');
3899
+ const { runLibraryRegister } = await import('../library-publish-YAI7WOXC.js');
3858
3900
  await withStoreErrorHandling(() => runLibraryRegister(lib, opts));
3859
3901
  });
3860
3902
  cmd.command("yank <lib>").description("Retract the library's published assets from the store").option("--asset <ref>", "Yank only the single asset matching this ref/name").action(async (lib, opts) => {
3861
- const { runLibraryYank } = await import('../library-publish-62RFU74A.js');
3903
+ const { runLibraryYank } = await import('../library-publish-YAI7WOXC.js');
3862
3904
  await withStoreErrorHandling(() => runLibraryYank(lib, opts));
3863
3905
  });
3864
3906
  return cmd;
@@ -4518,7 +4560,7 @@ function scheduleSoftDepPreview() {
4518
4560
  }
4519
4561
  async function loadAssets() {
4520
4562
  softDepPreviewCache.clear();
4521
- const { gatherAssetFeeds } = await import('../asset-feeds-3MVRNS5U.js');
4563
+ const { gatherAssetFeeds } = await import('../asset-feeds-KTFUB7EX.js');
4522
4564
  const { entries, notes } = await gatherAssetFeeds(am, am.projectDir);
4523
4565
  if (notes.length > 0) {
4524
4566
  state.message = notes.map((n) => `[${n.feed}] ${n.message}`).join(" \u2022 ");
@@ -4685,7 +4727,7 @@ function reconcileCollapsedSets(rows) {
4685
4727
  async function loadSourcesAndLibraries() {
4686
4728
  try {
4687
4729
  const [{ openLibraryManager: openLibraryManager2 }, { getGlobalCacheDir: getGlobalCacheDir2, globalSkaileDir: globalSkaileDir2 }] = await Promise.all([
4688
- import('../open-library-NVG3CZUO.js'),
4730
+ import('../open-library-Z5NJU4Z5.js'),
4689
4731
  import('../core/index.js')
4690
4732
  ]);
4691
4733
  const { manager, library, close } = await openLibraryManager2();
@@ -6065,11 +6107,18 @@ function makeNpxCommand() {
6065
6107
  logInfo(`Resolved "${opts.skill}" \u2192 directory "${skillName}".`);
6066
6108
  }
6067
6109
  const skillRef = `skill:@${publisher}/${skillName}`;
6068
- const am2 = new AssetManager({ projectDir, global: opts.global, driverTarget: opts.target });
6110
+ const warnings = deferredWarnings();
6111
+ const am2 = new AssetManager({
6112
+ projectDir,
6113
+ global: opts.global,
6114
+ driverTarget: opts.target,
6115
+ onLibraryCollision: warnings.push
6116
+ });
6069
6117
  spinner.start(`Installing ${skillRef}`);
6070
6118
  try {
6071
6119
  const added = await am2.add(skillRef);
6072
6120
  spinner.stop("Done");
6121
+ warnings.flush();
6073
6122
  if (added.length === 0) {
6074
6123
  logInfo(`${opts.skill} already deployed or not found in source.`);
6075
6124
  } else {
@@ -6078,6 +6127,7 @@ function makeNpxCommand() {
6078
6127
  logInfo(`Source registered in skaile.yaml \u2014 manage via ${S.cmd("skaile source")}.`);
6079
6128
  } catch (err) {
6080
6129
  spinner.stop("Failed");
6130
+ warnings.flush();
6081
6131
  logErr(err.message);
6082
6132
  process.exit(1);
6083
6133
  }
@@ -6223,7 +6273,7 @@ function action2(fn) {
6223
6273
  };
6224
6274
  }
6225
6275
  async function reconcileAndReport(projectDir, plugins) {
6226
- const { reconcilePlugins } = await import('../plugin-store-2DTEIJTG.js');
6276
+ const { reconcilePlugins } = await import('../plugin-store-N6SI2TYM.js');
6227
6277
  if (plugins.length === 0) {
6228
6278
  logInfo("No plugins declared \u2014 nothing to reconcile.");
6229
6279
  return;
@@ -6239,7 +6289,7 @@ async function reconcileAndReport(projectDir, plugins) {
6239
6289
  async function runInstall2(spec, opts) {
6240
6290
  const projectDir = path36__default.resolve(opts.projectDir);
6241
6291
  const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
6242
- const { specName } = await import('../plugin-store-2DTEIJTG.js');
6292
+ const { specName } = await import('../plugin-store-N6SI2TYM.js');
6243
6293
  const yamlPath = path36__default.join(projectDir, "skaile.yaml");
6244
6294
  const editor = WorkspaceYamlEditor2.load(yamlPath);
6245
6295
  const replaced = editor.addPlugin(spec, specName);
@@ -6251,7 +6301,7 @@ async function runInstall2(spec, opts) {
6251
6301
  async function runRemove(name, opts) {
6252
6302
  const projectDir = path36__default.resolve(opts.projectDir);
6253
6303
  const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
6254
- const { specName } = await import('../plugin-store-2DTEIJTG.js');
6304
+ const { specName } = await import('../plugin-store-N6SI2TYM.js');
6255
6305
  const yamlPath = path36__default.join(projectDir, "skaile.yaml");
6256
6306
  const editor = WorkspaceYamlEditor2.load(yamlPath);
6257
6307
  const removed = editor.removePlugin(name, specName);
@@ -6279,7 +6329,7 @@ async function runList(opts) {
6279
6329
  const registry = createPluginRegistry();
6280
6330
  if (declared.length > 0) {
6281
6331
  try {
6282
- const { loadPlugins } = await import('../plugin-store-2DTEIJTG.js');
6332
+ const { loadPlugins } = await import('../plugin-store-N6SI2TYM.js');
6283
6333
  const result = await loadPlugins(projectDir, declared, registry);
6284
6334
  for (const f of result.failed) logWarn(f.error);
6285
6335
  } catch (err) {
@@ -7408,12 +7458,12 @@ function makeServeCommand() {
7408
7458
  );
7409
7459
  }
7410
7460
  async function ensurePluginsLoadedForServe(projectDir) {
7411
- const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-F2RFRT5D.js');
7461
+ const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-PSROT7CU.js');
7412
7462
  try {
7413
7463
  const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
7414
7464
  const config = resolveSkWorkspaceConfig2(projectDir);
7415
7465
  if (!config.plugins || config.plugins.length === 0) return;
7416
- const { ensurePluginsLoaded } = await import('../plugin-store-2DTEIJTG.js');
7466
+ const { ensurePluginsLoaded } = await import('../plugin-store-N6SI2TYM.js');
7417
7467
  const { pluginRegistry } = await import('../plugin-registry/index.js');
7418
7468
  const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
7419
7469
  if (result.loaded.length > 0) {
@@ -7427,14 +7477,14 @@ async function ensurePluginsLoadedForServe(projectDir) {
7427
7477
  }
7428
7478
  }
7429
7479
  async function runCompileTest(opts) {
7430
- const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-F2RFRT5D.js');
7480
+ const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-PSROT7CU.js');
7431
7481
  const { tmpdir } = await import('os');
7432
7482
  const { dirname: dirname3, join: join7, resolve: resolve5 } = await import('path');
7433
7483
  const { fileURLToPath: fileURLToPath2 } = await import('url');
7434
7484
  const { unlinkSync, existsSync: existsSync16 } = await import('fs');
7435
7485
  const { spawn } = await import('child_process');
7436
7486
  const { portableSpawnSync: portableSpawnSync2 } = await import('../core/index.js');
7437
- const { MONOREPO_ROOT } = await import('../paths-STQO4FYF.js');
7487
+ const { MONOREPO_ROOT } = await import('../paths-HKAXUR3W.js');
7438
7488
  if (MONOREPO_ROOT === null) {
7439
7489
  logErr2("--compile-test is only available inside the skaile-dev workspace.");
7440
7490
  logInfo2("Run it from a checkout of skaile-ai/skaile-dev (the monorepo shell).");
@@ -8310,7 +8360,7 @@ function makeStoreCommand() {
8310
8360
  process.exit(2);
8311
8361
  });
8312
8362
  store.command("search <query>").description("Search the AI Asset Store catalog by name, description, or publisher").option("--kind <kind>", "Filter by asset kind (skill, agent, prompt, flow, \u2026)").option("-C, --project-dir <dir>", "Project directory (catalog config overlay)", process.cwd()).action(async (query, opts) => {
8313
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-NVG3CZUO.js');
8363
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-Z5NJU4Z5.js');
8314
8364
  try {
8315
8365
  const remote = await openCatalogSource2({ projectDir: path36__default.resolve(opts.projectDir) });
8316
8366
  const assets = await remote.listAssets(opts.kind ? { kind: opts.kind } : {});
@@ -8338,8 +8388,8 @@ function makeStoreCommand() {
8338
8388
  }
8339
8389
  });
8340
8390
  store.command("show <ref>").description("Show a store asset's details + provenance (source, files, integrity)").option("-C, --project-dir <dir>", "Project directory (catalog config overlay)", process.cwd()).action(async (ref, opts) => {
8341
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-NVG3CZUO.js');
8342
- const { supportsInstallManifest } = await import('../project-44LM6SRV.js');
8391
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-Z5NJU4Z5.js');
8392
+ const { supportsInstallManifest } = await import('../project-SVS4UMGL.js');
8343
8393
  try {
8344
8394
  const remote = await openCatalogSource2({ projectDir: path36__default.resolve(opts.projectDir) });
8345
8395
  const asset = await remote.resolve(ref);
@@ -8511,11 +8561,21 @@ function makeUpdateCommand() {
8511
8561
  total === 0 ? "No sources to sync." : `Synced ${S.heading(`${synced}/${total}`)} source(s)` + (failed ? ` (${failed} failed)` : "")
8512
8562
  );
8513
8563
  }
8514
- const am2 = new AssetManager({ projectDir });
8564
+ const warnings = deferredWarnings();
8565
+ const am2 = new AssetManager({ projectDir, onLibraryCollision: warnings.push });
8515
8566
  const spinner = createSpinner();
8516
8567
  spinner.start("Re-deploying assets");
8517
- const result = await am2.install();
8568
+ let result;
8569
+ try {
8570
+ result = await am2.install();
8571
+ } catch (err) {
8572
+ spinner.stop("Failed");
8573
+ warnings.flush();
8574
+ logErr(String(err));
8575
+ process.exit(1);
8576
+ }
8518
8577
  spinner.stop("Done");
8578
+ warnings.flush();
8519
8579
  if (result.deployed.length > 0) {
8520
8580
  for (const d of result.deployed) logOk(`Updated ${d}`);
8521
8581
  } else {
@@ -9439,7 +9499,7 @@ async function bootstrapUserConfig() {
9439
9499
  }
9440
9500
  async function hydrateInitSources(resolved, created) {
9441
9501
  try {
9442
- const { ensureSourcesCloned } = await import('../ensure-sources-Z3KKLEM6.js');
9502
+ const { ensureSourcesCloned } = await import('../ensure-sources-QFRA46DJ.js');
9443
9503
  const hydrate = ensureSourcesCloned(resolved, { quiet: true });
9444
9504
  for (const n of hydrate.cloned) created.push(`~/.skaile/cache/sources/${n}/`);
9445
9505
  if (hydrate.failed.length > 0) {
@@ -9479,7 +9539,7 @@ function printInitSummary(resolved, projectDir, created) {
9479
9539
  console.log();
9480
9540
  }
9481
9541
  program.command("setup").description("Interactive provider setup wizard").action(async () => {
9482
- const { cmdSetup } = await import('../setup-4BV5ZWOZ.js');
9542
+ const { cmdSetup } = await import('../setup-IOEZGJNC.js');
9483
9543
  await cmdSetup([], { projectDir: process.cwd() });
9484
9544
  });
9485
9545
  program.addCommand(makeInstallCommand());