@skaile/workspaces 0.22.0-beta.0 → 0.22.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +136 -0
- package/dist/{asset-feeds-PJDJ3QYI.js → asset-feeds-QXCSAJRN.js} +9 -9
- package/dist/{asset-feeds-PJDJ3QYI.js.map → asset-feeds-QXCSAJRN.js.map} +1 -1
- package/dist/asset-manager/catalog-deployer.d.ts +2 -0
- package/dist/asset-manager/contrib.d.ts +2 -0
- package/dist/asset-manager/fragments.d.ts +2 -0
- package/dist/asset-manager/history.d.ts +2 -0
- package/dist/asset-manager/index.d.ts +2 -0
- package/dist/asset-manager/index.js +7 -7
- package/dist/asset-manager/installer.d.ts +2 -0
- package/dist/asset-manager/installer.js +6 -6
- package/dist/asset-manager/renderers.d.ts +2 -0
- package/dist/asset-manager/src/index.d.ts +18 -7
- package/dist/asset-manager/src/index.d.ts.map +1 -1
- package/dist/asset-manager/src/installer.d.ts +3 -3
- package/dist/asset-manager/src/installer.d.ts.map +1 -1
- package/dist/base-assets/connectors/deploy.d.ts +2 -0
- package/dist/base-assets/connectors/deploy.js +8 -8
- package/dist/base-assets/connectors/devserver.d.ts +2 -0
- package/dist/base-assets/connectors/devserver.js +8 -8
- package/dist/base-assets/connectors/flow/adapter.js +8 -8
- package/dist/base-assets/connectors/flow/engine.d.ts +2 -0
- package/dist/base-assets/connectors/flow/run-flow.js +9 -9
- package/dist/base-assets/connectors/flow.d.ts +2 -0
- package/dist/base-assets/connectors/flow.js +8 -8
- package/dist/base-assets/connectors/git.d.ts +2 -0
- package/dist/base-assets/connectors/git.js +8 -8
- package/dist/base-assets/connectors/gmail.d.ts +2 -0
- package/dist/base-assets/connectors/gmail.js +8 -8
- package/dist/base-assets/connectors/googledrive.d.ts +2 -0
- package/dist/base-assets/connectors/googledrive.js +8 -8
- package/dist/base-assets/connectors/local.d.ts +2 -0
- package/dist/base-assets/connectors/local.js +8 -8
- package/dist/base-assets/connectors/mattermost.d.ts +2 -0
- package/dist/base-assets/connectors/mattermost.js +8 -8
- package/dist/base-assets/connectors/memory.d.ts +2 -0
- package/dist/base-assets/connectors/memory.js +8 -8
- package/dist/base-assets/connectors/minio.d.ts +2 -0
- package/dist/base-assets/connectors/minio.js +8 -8
- package/dist/base-assets/connectors/postgres.d.ts +2 -0
- package/dist/base-assets/connectors/postgres.js +8 -8
- package/dist/base-assets/connectors/s3.d.ts +2 -0
- package/dist/base-assets/connectors/s3.js +8 -8
- package/dist/base-assets/connectors/sharepoint.d.ts +2 -0
- package/dist/base-assets/connectors/sharepoint.js +8 -8
- package/dist/base-assets/connectors/sqlite.d.ts +2 -0
- package/dist/base-assets/connectors/sqlite.js +8 -8
- package/dist/base-assets/connectors/static-server.d.ts +2 -0
- package/dist/base-assets/connectors/static-server.js +8 -8
- package/dist/base-assets/connectors/tunnel.d.ts +2 -0
- package/dist/base-assets/connectors/tunnel.js +8 -8
- package/dist/base-assets/connectors/webdav.d.ts +2 -0
- package/dist/base-assets/connectors/webdav.js +8 -8
- package/dist/base-assets/connectors/xstate-store.d.ts +2 -0
- package/dist/base-assets/connectors/xstate-store.js +8 -8
- package/dist/base-assets/connectors/xstate.d.ts +2 -0
- package/dist/base-assets/connectors/xstate.js +8 -8
- package/dist/bridge/drivers/claude-sdk.d.ts +2 -0
- package/dist/bridge/drivers/claude-sdk.js +2 -2
- package/dist/bridge/drivers/codex.d.ts +2 -0
- package/dist/bridge/drivers/codex.js +2 -2
- package/dist/bridge/drivers/echo.d.ts +2 -0
- package/dist/bridge/drivers/echo.js +2 -2
- package/dist/bridge/drivers/omp.d.ts +2 -0
- package/dist/bridge/drivers/omp.js +2 -2
- package/dist/bridge/index.d.ts +2 -0
- package/dist/bridge/index.js +3 -3
- package/dist/bridge/src/registry.d.ts +4 -2
- package/dist/bridge/src/registry.d.ts.map +1 -1
- package/dist/{chunk-UZVHJ7LX.js → chunk-3ECS5PFD.js} +4 -4
- package/dist/{chunk-UZVHJ7LX.js.map → chunk-3ECS5PFD.js.map} +1 -1
- package/dist/{chunk-WIR34WMU.js → chunk-4AZKT2BU.js} +13 -13
- package/dist/chunk-4AZKT2BU.js.map +1 -0
- package/dist/{chunk-UZRY5UI2.js → chunk-6E6PKKAD.js} +68 -3
- package/dist/chunk-6E6PKKAD.js.map +1 -0
- package/dist/{chunk-IGQEXBBG.js → chunk-6VTG73UY.js} +13 -9
- package/dist/chunk-6VTG73UY.js.map +1 -0
- package/dist/{chunk-GKM6MDUC.js → chunk-APAOQLPT.js} +3 -3
- package/dist/{chunk-GKM6MDUC.js.map → chunk-APAOQLPT.js.map} +1 -1
- package/dist/{chunk-SL6JVGRD.js → chunk-D7K72XEY.js} +3 -3
- package/dist/{chunk-SL6JVGRD.js.map → chunk-D7K72XEY.js.map} +1 -1
- package/dist/{chunk-CSDQBWE6.js → chunk-DKGDOALM.js} +5 -5
- package/dist/{chunk-CSDQBWE6.js.map → chunk-DKGDOALM.js.map} +1 -1
- package/dist/{chunk-TTY56FQQ.js → chunk-GFNW72LW.js} +17 -5
- package/dist/chunk-GFNW72LW.js.map +1 -0
- package/dist/{chunk-X5Y4EGZB.js → chunk-I3UEM3FX.js} +36 -8
- package/dist/chunk-I3UEM3FX.js.map +1 -0
- package/dist/{chunk-TKOLD2O7.js → chunk-J3VKAEQP.js} +497 -143
- package/dist/chunk-J3VKAEQP.js.map +1 -0
- package/dist/{chunk-KA46DUM4.js → chunk-JHF66MCK.js} +49 -3
- package/dist/chunk-JHF66MCK.js.map +1 -0
- package/dist/{chunk-G6GKWGOW.js → chunk-LT4DLEYE.js} +6 -6
- package/dist/chunk-LT4DLEYE.js.map +1 -0
- package/dist/{chunk-XHFMUGDD.js → chunk-M5TE6YI5.js} +3 -3
- package/dist/{chunk-XHFMUGDD.js.map → chunk-M5TE6YI5.js.map} +1 -1
- package/dist/{chunk-J2FCO6TM.js → chunk-NJLHHZIW.js} +2 -2
- package/dist/{chunk-J2FCO6TM.js.map → chunk-NJLHHZIW.js.map} +1 -1
- package/dist/{chunk-MO4JPTRD.js → chunk-PTIHB2TV.js} +5 -5
- package/dist/{chunk-MO4JPTRD.js.map → chunk-PTIHB2TV.js.map} +1 -1
- package/dist/{chunk-RENHNO4J.js → chunk-UMOENHVH.js} +206 -137
- package/dist/chunk-UMOENHVH.js.map +1 -0
- package/dist/{chunk-NGC7ZQI4.js → chunk-V3QMSM5I.js} +38 -43
- package/dist/chunk-V3QMSM5I.js.map +1 -0
- package/dist/{chunk-2DNSSQ22.js → chunk-VCYXVP2S.js} +263 -177
- package/dist/chunk-VCYXVP2S.js.map +1 -0
- package/dist/{chunk-F3MGZ5E6.js → chunk-XIHFJVOD.js} +3 -3
- package/dist/{chunk-F3MGZ5E6.js.map → chunk-XIHFJVOD.js.map} +1 -1
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +102 -100
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/src/commands/deploy.d.ts.map +1 -1
- package/dist/cli/src/commands/manage.d.ts +1 -1
- package/dist/cli/src/commands/project.d.ts.map +1 -1
- package/dist/cli/src/commands/source.d.ts.map +1 -1
- package/dist/cli/src/commands/update.d.ts.map +1 -1
- package/dist/cli/src/ensure-sources.d.ts.map +1 -1
- package/dist/client/index.d.ts +2 -0
- package/dist/connectors/config.d.ts +2 -0
- package/dist/connectors/config.js +6 -6
- package/dist/connectors/index.d.ts +2 -0
- package/dist/connectors/index.js +8 -8
- package/dist/connectors/rclone-config.d.ts +2 -0
- package/dist/connectors/rclone.d.ts +2 -0
- package/dist/connectors-shared/index.d.ts +2 -0
- package/dist/core/discovery.d.ts +2 -0
- package/dist/core/driver-targets.d.ts +2 -0
- package/dist/core/framework.d.ts +2 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +5 -5
- package/dist/core/logging.d.ts +2 -0
- package/dist/core/manifest.d.ts +2 -0
- package/dist/core/manifest.js +2 -2
- package/dist/core/models.d.ts +2 -0
- package/dist/core/models.js +1 -1
- package/dist/core/runtime-assets.d.ts +2 -0
- package/dist/core/runtime-assets.js +4 -4
- package/dist/core/src/index.d.ts +7 -5
- package/dist/core/src/index.d.ts.map +1 -1
- package/dist/core/src/lock.d.ts +47 -26
- package/dist/core/src/lock.d.ts.map +1 -1
- package/dist/core/src/models.d.ts +53 -47
- package/dist/core/src/models.d.ts.map +1 -1
- package/dist/core/src/repo-manager.d.ts +62 -34
- package/dist/core/src/repo-manager.d.ts.map +1 -1
- package/dist/core/src/runtime-assets.d.ts.map +1 -1
- package/dist/core/src/walker.d.ts +52 -0
- package/dist/core/src/walker.d.ts.map +1 -0
- package/dist/core/src/workspace-config.d.ts +160 -45
- package/dist/core/src/workspace-config.d.ts.map +1 -1
- package/dist/core/src/workspace-yaml-editor.d.ts +33 -16
- package/dist/core/src/workspace-yaml-editor.d.ts.map +1 -1
- package/dist/core/store.d.ts +2 -0
- package/dist/core/workspace-config.d.ts +2 -0
- package/dist/core/workspace-config.js +3 -3
- package/dist/deploy/index.d.ts +2 -0
- package/dist/deploy/index.js +34 -15
- package/dist/deploy/index.js.map +1 -1
- package/dist/deploy/src/targets/container-runtime.d.ts +1 -0
- package/dist/deploy/src/targets/container-runtime.d.ts.map +1 -1
- package/dist/deploy/src/targets/docker.d.ts +1 -0
- package/dist/deploy/src/targets/docker.d.ts.map +1 -1
- package/dist/deploy/src/targets/local.d.ts.map +1 -1
- package/dist/deploy/src/targets/podman.d.ts +1 -0
- package/dist/deploy/src/targets/podman.d.ts.map +1 -1
- package/dist/discovery/index.d.ts +2 -0
- package/dist/discovery/index.js +3 -3
- package/dist/discovery/src/source-config.d.ts +2 -2
- package/dist/{ensure-sources-COGVKY44.js → ensure-sources-SL2S4UEX.js} +20 -16
- package/dist/ensure-sources-SL2S4UEX.js.map +1 -0
- package/dist/library/index.d.ts +2 -0
- package/dist/library/index.js +4 -4
- package/dist/library/src/remote/remote-catalog-source.d.ts +17 -0
- package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
- package/dist/open-library-M4DB3D3J.js +13 -0
- package/dist/{open-library-DWAQFUSQ.js.map → open-library-M4DB3D3J.js.map} +1 -1
- package/dist/plugin-registry/index.d.ts +2 -0
- package/dist/plugin-registry/index.js +1 -1
- package/dist/plugin-registry/src/deploy-handle.d.ts +17 -1
- package/dist/plugin-registry/src/deploy-handle.d.ts.map +1 -1
- package/dist/plugin-registry/src/deploy-helpers.d.ts +69 -0
- package/dist/plugin-registry/src/deploy-helpers.d.ts.map +1 -0
- package/dist/plugin-registry/src/index.d.ts +6 -4
- package/dist/plugin-registry/src/index.d.ts.map +1 -1
- package/dist/plugin-registry/src/internal.d.ts.map +1 -1
- package/dist/plugin-registry/src/registry.d.ts +1 -0
- package/dist/plugin-registry/src/registry.d.ts.map +1 -1
- package/dist/plugin-registry/src/targets.d.ts +4 -0
- package/dist/plugin-registry/src/targets.d.ts.map +1 -1
- package/dist/{plugin-store-6OENKNFW.js → plugin-store-AJ3FGXIC.js} +8 -8
- package/dist/{plugin-store-6OENKNFW.js.map → plugin-store-AJ3FGXIC.js.map} +1 -1
- package/dist/plugins/index.d.ts +2 -0
- package/dist/resolver/index.d.ts +2 -0
- package/dist/runner/index.d.ts +2 -0
- package/dist/runner/index.js +13 -13
- package/dist/runner/prompt-assembly.d.ts +2 -0
- package/dist/runner/src/resources.d.ts.map +1 -1
- package/dist/runner/src/serve.d.ts.map +1 -1
- package/dist/sdk/asset-manager.d.ts +2 -0
- package/dist/sdk/asset-manager.js +7 -7
- package/dist/sdk/bridge.d.ts +2 -0
- package/dist/sdk/bridge.js +3 -3
- package/dist/sdk/client.d.ts +2 -0
- package/dist/sdk/core.d.ts +2 -0
- package/dist/sdk/core.js +5 -5
- package/dist/sdk/flow.d.ts +2 -0
- package/dist/sdk/index.d.ts +2 -0
- package/dist/sdk/index.js +49 -16
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/resolver.d.ts +2 -0
- package/dist/sdk/runner.d.ts +2 -0
- package/dist/sdk/runner.js +13 -13
- package/dist/sdk/session.d.ts +2 -0
- package/dist/sdk/src/local-runtime.d.ts +8 -0
- package/dist/sdk/src/local-runtime.d.ts.map +1 -1
- package/dist/sdk/src/transport.d.ts +7 -1
- package/dist/sdk/src/transport.d.ts.map +1 -1
- package/dist/sdk/store.d.ts +2 -0
- package/dist/sdk/telemetry.d.ts +2 -0
- package/dist/sdk/transport/ws/client.d.ts +2 -0
- package/dist/sdk/transport/ws/server.d.ts +2 -0
- package/dist/sdk/transport/ws.d.ts +2 -0
- package/dist/sdk/transport.d.ts +2 -0
- package/dist/sdk/types.d.ts +2 -0
- package/dist/secrets/index.d.ts +2 -0
- package/dist/session/index.d.ts +2 -0
- package/dist/{setup-ACMP3QZC.js → setup-GBSQX7JF.js} +10 -10
- package/dist/{setup-ACMP3QZC.js.map → setup-GBSQX7JF.js.map} +1 -1
- package/dist/store/index.d.ts +2 -0
- package/dist/store/react.d.ts +2 -0
- package/dist/store/vue.d.ts +2 -0
- package/dist/store-client-5WBRUC5U.js +14 -0
- package/dist/{store-client-ZSLNOOQG.js.map → store-client-5WBRUC5U.js.map} +1 -1
- package/dist/telemetry/index.d.ts +2 -0
- package/dist/transport/index.d.ts +2 -0
- package/dist/transport/ws/client.d.ts +2 -0
- package/dist/transport/ws/server.d.ts +2 -0
- package/dist/transport/ws.d.ts +2 -0
- package/dist/tui/index.d.ts +2 -0
- package/dist/tui/index.js +13 -13
- package/dist/types/index.d.ts +2 -0
- package/dist/types/manifests.d.ts +2 -0
- package/dist/workspace-plugin/adapters/mcp.d.ts +2 -0
- package/dist/workspace-plugin/adapters/omp.d.ts +2 -0
- package/dist/workspace-plugin/index.d.ts +2 -0
- package/dist/workspace-plugin/index.js +1 -1
- package/package.json +4 -2
- package/dist/chunk-2DNSSQ22.js.map +0 -1
- package/dist/chunk-G6GKWGOW.js.map +0 -1
- package/dist/chunk-IGQEXBBG.js.map +0 -1
- package/dist/chunk-KA46DUM4.js.map +0 -1
- package/dist/chunk-NGC7ZQI4.js.map +0 -1
- package/dist/chunk-RENHNO4J.js.map +0 -1
- package/dist/chunk-TKOLD2O7.js.map +0 -1
- package/dist/chunk-TTY56FQQ.js.map +0 -1
- package/dist/chunk-UZRY5UI2.js.map +0 -1
- package/dist/chunk-WIR34WMU.js.map +0 -1
- package/dist/chunk-X5Y4EGZB.js.map +0 -1
- package/dist/ensure-sources-COGVKY44.js.map +0 -1
- package/dist/open-library-DWAQFUSQ.js +0 -13
- package/dist/store-client-ZSLNOOQG.js +0 -14
package/dist/cli/index.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
import { openCatalogSource, openLibrary, createFullRegistry, openLibraryManager } from '../chunk-UZVHJ7LX.js';
|
|
2
|
+
import { openCatalogSource, openLibrary, createFullRegistry, openLibraryManager } from '../chunk-3ECS5PFD.js';
|
|
4
3
|
import { logErr, S, logOk, colorRef, logInfo, logWarn, kindColorPad, kindColor, formatRelativeTime } from '../chunk-4NDWKA64.js';
|
|
5
|
-
import { getStoreConfig, storeFetch, saveStoreTokens, clearStoreTokens, isStoreAuthenticated } from '../chunk-
|
|
4
|
+
import { getStoreConfig, storeFetch, saveStoreTokens, clearStoreTokens, isStoreAuthenticated } from '../chunk-XIHFJVOD.js';
|
|
5
|
+
import { AI_RESOURCES } from '../chunk-2M3XTMOL.js';
|
|
6
6
|
import { LocalSecretsProvider } from '../chunk-JDX54X4Y.js';
|
|
7
|
-
import { resolveLibraryDir, LocalCatalogSource, skaileHomeDir } from '../chunk-
|
|
7
|
+
import { resolveLibraryDir, LocalCatalogSource, skaileHomeDir } from '../chunk-JHF66MCK.js';
|
|
8
8
|
import '../chunk-R7FOF242.js';
|
|
9
|
-
import '../chunk-
|
|
9
|
+
import '../chunk-D7K72XEY.js';
|
|
10
10
|
import '../chunk-OKRUTSG7.js';
|
|
11
|
-
import { runFlow, resumeFlow } from '../chunk-
|
|
11
|
+
import { runFlow, resumeFlow } from '../chunk-DKGDOALM.js';
|
|
12
12
|
import '../chunk-GCJXPUHG.js';
|
|
13
13
|
import { validateFlowVersions, parseSkillFrontmatter } from '../chunk-IPUYL6TD.js';
|
|
14
|
-
import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-
|
|
15
|
-
import { buildClaudePluginFiles } from '../chunk-
|
|
14
|
+
import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-V3QMSM5I.js';
|
|
15
|
+
import { buildClaudePluginFiles } from '../chunk-NJLHHZIW.js';
|
|
16
16
|
import '../chunk-X5YPJV4N.js';
|
|
17
17
|
import '../chunk-O7SG5PC2.js';
|
|
18
18
|
import '../chunk-W2O5LWYU.js';
|
|
@@ -20,28 +20,29 @@ import '../chunk-7PTP3SQJ.js';
|
|
|
20
20
|
import '../chunk-PBWMV5GM.js';
|
|
21
21
|
import '../chunk-W3UDISS2.js';
|
|
22
22
|
import '../chunk-TDSRLMDB.js';
|
|
23
|
-
import '../chunk-
|
|
23
|
+
import '../chunk-M5TE6YI5.js';
|
|
24
24
|
import '../chunk-DQWREFRQ.js';
|
|
25
25
|
import '../chunk-KOVLSBXK.js';
|
|
26
26
|
import '../chunk-RRVQAE5D.js';
|
|
27
|
-
import '../chunk-
|
|
28
|
-
import '../chunk-
|
|
29
|
-
import '../chunk-
|
|
27
|
+
import '../chunk-6VTG73UY.js';
|
|
28
|
+
import '../chunk-LV2HPH3C.js';
|
|
29
|
+
import '../chunk-LT4DLEYE.js';
|
|
30
|
+
import '../chunk-APAOQLPT.js';
|
|
30
31
|
import '../chunk-6MB7CRME.js';
|
|
31
32
|
import '../chunk-QAVZOJCV.js';
|
|
32
|
-
import '../chunk-
|
|
33
|
+
import '../chunk-6E6PKKAD.js';
|
|
33
34
|
import { loadAllFlows } from '../chunk-ICS76R4T.js';
|
|
34
35
|
import '../chunk-GZWJGNNN.js';
|
|
35
36
|
import '../chunk-FVTV7M76.js';
|
|
36
|
-
import { AssetManager } from '../chunk-
|
|
37
|
-
import '../chunk-
|
|
38
|
-
import { readLock, resolveSettings, globalSettingsPath, projectSettingsPath, loadSettings, saveSettings, portableSpawn, portableSpawnSync, WorkspaceYamlEditor } from '../chunk-
|
|
37
|
+
import { AssetManager } from '../chunk-VCYXVP2S.js';
|
|
38
|
+
import '../chunk-PTIHB2TV.js';
|
|
39
|
+
import { readLock, resolveSettings, globalSettingsPath, projectSettingsPath, loadSettings, saveSettings, portableSpawn, portableSpawnSync, WorkspaceYamlEditor } from '../chunk-UMOENHVH.js';
|
|
39
40
|
import { DRIVER_DEFAULTS } from '../chunk-K5GBV4SA.js';
|
|
40
41
|
import '../chunk-KLNL7QHN.js';
|
|
41
|
-
import '../chunk-
|
|
42
|
-
import { resolveSkWorkspaceConfig, resolveAgentDir, findWorkspaceRoot, workspaceConfigFilename } from '../chunk-
|
|
43
|
-
import '../chunk-
|
|
44
|
-
import { ASSET_KINDS } from '../chunk-
|
|
42
|
+
import '../chunk-GFNW72LW.js';
|
|
43
|
+
import { resolveSkWorkspaceConfig, resolveAgentDir, findWorkspaceRoot, workspaceConfigFilename } from '../chunk-J3VKAEQP.js';
|
|
44
|
+
import '../chunk-4AZKT2BU.js';
|
|
45
|
+
import { ASSET_KINDS } from '../chunk-I3UEM3FX.js';
|
|
45
46
|
import '../chunk-JKNWJ64A.js';
|
|
46
47
|
import { SUPPORTED_DRIVER_TARGETS } from '../chunk-O4JH3KUE.js';
|
|
47
48
|
import { openSqlite } from '../chunk-24UIWON4.js';
|
|
@@ -50,7 +51,6 @@ import '../chunk-UQ6LFBPZ.js';
|
|
|
50
51
|
import '../chunk-6FNCZYJY.js';
|
|
51
52
|
import '../chunk-NELZIQ2E.js';
|
|
52
53
|
import '../chunk-CGYEHQOX.js';
|
|
53
|
-
import '../chunk-LV2HPH3C.js';
|
|
54
54
|
import '../chunk-NSBPE2FW.js';
|
|
55
55
|
import * as fs10 from 'fs';
|
|
56
56
|
import fs10__default, { readFileSync, existsSync, writeFileSync, rmSync, statSync } from 'fs';
|
|
@@ -309,7 +309,7 @@ function makeSearchCommand() {
|
|
|
309
309
|
}
|
|
310
310
|
if (showStore) {
|
|
311
311
|
try {
|
|
312
|
-
const { getStoreConfig: getStoreConfig2, storeFetch: storeFetch2 } = await import('../store-client-
|
|
312
|
+
const { getStoreConfig: getStoreConfig2, storeFetch: storeFetch2 } = await import('../store-client-5WBRUC5U.js');
|
|
313
313
|
const config = getStoreConfig2();
|
|
314
314
|
const params = {};
|
|
315
315
|
if (query) params.q = query;
|
|
@@ -336,7 +336,7 @@ function makeSearchCommand() {
|
|
|
336
336
|
});
|
|
337
337
|
}
|
|
338
338
|
function makeAddCommand() {
|
|
339
|
-
return new Command("add").description("Add to skaile.yaml + deploy").argument("<ref>", "Asset reference (kind:name[@repo])").option("--project-dir <path>", "Project directory", process.cwd()).option("--global", "Deploy to global dir (~/.claude)").option("--target <agent>", "Driver target", "claude-code").action((ref, opts) => {
|
|
339
|
+
return new Command("add").description("Add to skaile.yaml + deploy").argument("<ref>", "Asset reference (kind:name[@repo])").option("--project-dir <path>", "Project directory", process.cwd()).option("--global", "Deploy to global dir (~/.claude)").option("--target <agent>", "Driver target", "claude-code").action(async (ref, opts) => {
|
|
340
340
|
const am2 = new AssetManager({
|
|
341
341
|
projectDir: path14__default.resolve(opts.projectDir),
|
|
342
342
|
global: opts.global,
|
|
@@ -345,7 +345,7 @@ function makeAddCommand() {
|
|
|
345
345
|
const spinner5 = p5.spinner();
|
|
346
346
|
spinner5.start(`Adding ${ref}`);
|
|
347
347
|
try {
|
|
348
|
-
const added = am2.add(ref);
|
|
348
|
+
const added = await am2.add(ref);
|
|
349
349
|
spinner5.stop("Done");
|
|
350
350
|
if (added.length === 0) logInfo("Nothing added (already up to date or not found).");
|
|
351
351
|
else for (const a of added) logOk(a);
|
|
@@ -411,7 +411,7 @@ function makeInfoCommand() {
|
|
|
411
411
|
console.log(` kind: ${kindColor(entry.kind)}`);
|
|
412
412
|
if (entry.version) console.log(` version: ${entry.version}`);
|
|
413
413
|
if (entry.description) console.log(` description: ${entry.description}`);
|
|
414
|
-
if (entry.
|
|
414
|
+
if (entry.publisher) console.log(` repository: ${S.dim(entry.publisher)}`);
|
|
415
415
|
console.log(` source: ${S.dim(entry.source)}`);
|
|
416
416
|
if (entry.requires.length) {
|
|
417
417
|
console.log(` requires:`);
|
|
@@ -471,7 +471,7 @@ function makeCatalogCommand() {
|
|
|
471
471
|
const cfg = resolveConfig({ projectDir });
|
|
472
472
|
const baseUrl = opts.url ?? cfg.catalog.url;
|
|
473
473
|
if (isLocalCatalogUrl(baseUrl)) {
|
|
474
|
-
const { resolveCatalogSource } = await import('../open-library-
|
|
474
|
+
const { resolveCatalogSource } = await import('../open-library-M4DB3D3J.js');
|
|
475
475
|
let resolved;
|
|
476
476
|
try {
|
|
477
477
|
resolved = await resolveCatalogSource({ projectDir: opts.projectDir });
|
|
@@ -1432,7 +1432,7 @@ async function ensureTargetsRegistered(projectDir) {
|
|
|
1432
1432
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
1433
1433
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
1434
1434
|
if (config.plugins && config.plugins.length > 0) {
|
|
1435
|
-
const { ensurePluginsLoaded } = await import('../plugin-store-
|
|
1435
|
+
const { ensurePluginsLoaded } = await import('../plugin-store-AJ3FGXIC.js');
|
|
1436
1436
|
const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
|
|
1437
1437
|
for (const f of result.failed) logWarn(f.error);
|
|
1438
1438
|
}
|
|
@@ -1443,9 +1443,10 @@ async function runUp(opts) {
|
|
|
1443
1443
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
1444
1444
|
const { resolveDeployTarget, pluginRegistry } = await import('../plugin-registry/index.js');
|
|
1445
1445
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
1446
|
+
const overrideConfig = opts.target === config.deploy?.target ? config.deploy?.config : void 0;
|
|
1446
1447
|
const resolution = await resolveDeployTarget(
|
|
1447
1448
|
{ deploy: config.deploy },
|
|
1448
|
-
opts.target ? { target: opts.target, config:
|
|
1449
|
+
opts.target ? { target: opts.target, config: overrideConfig, reason: "cli --target" } : void 0,
|
|
1449
1450
|
pluginRegistry
|
|
1450
1451
|
);
|
|
1451
1452
|
const { ctx, controller } = await buildDeployContext(projectDir);
|
|
@@ -1493,8 +1494,15 @@ async function restoreFromHandle(projectDir) {
|
|
|
1493
1494
|
logErr(`unknown deploy target "${stored.targetId}" \u2014 is its plugin installed?`);
|
|
1494
1495
|
return null;
|
|
1495
1496
|
}
|
|
1497
|
+
const parsed = target.payloadSchema.safeParse(stored.payload);
|
|
1498
|
+
if (!parsed.success) {
|
|
1499
|
+
logErr(
|
|
1500
|
+
`deploy handle for "${stored.targetId}" is malformed: ${parsed.error.message}. Remove ${S.cmd(".skaile/deploy/handle.json")} to reset.`
|
|
1501
|
+
);
|
|
1502
|
+
return null;
|
|
1503
|
+
}
|
|
1496
1504
|
const { ctx } = await buildDeployContext(projectDir);
|
|
1497
|
-
const handle = await target.restore(
|
|
1505
|
+
const handle = await target.restore(parsed.data, ctx);
|
|
1498
1506
|
return { target, handle, ctx };
|
|
1499
1507
|
}
|
|
1500
1508
|
async function runDown(opts) {
|
|
@@ -2207,7 +2215,7 @@ function buildVisibleRows(rows, collapsedSources, collapsedDomains) {
|
|
|
2207
2215
|
if (collapsedSources.has(row.source)) return false;
|
|
2208
2216
|
return !hasCollapsedAncestor(row.source, row.domain, collapsedDomains, true);
|
|
2209
2217
|
}
|
|
2210
|
-
const source = row.entry?.
|
|
2218
|
+
const source = row.entry?.publisher || "other";
|
|
2211
2219
|
const domain = row.entry?.domain || "other";
|
|
2212
2220
|
if (collapsedSources.has(source)) return false;
|
|
2213
2221
|
return !hasCollapsedAncestor(source, domain, collapsedDomains, false);
|
|
@@ -2242,7 +2250,7 @@ function isAsset(r) {
|
|
|
2242
2250
|
return r.type === "asset";
|
|
2243
2251
|
}
|
|
2244
2252
|
function inSource(r, source) {
|
|
2245
|
-
return (r.entry?.
|
|
2253
|
+
return (r.entry?.publisher || "other") === source;
|
|
2246
2254
|
}
|
|
2247
2255
|
function inDomain(r, source, domain) {
|
|
2248
2256
|
if (!inSource(r, source)) return false;
|
|
@@ -2300,7 +2308,7 @@ function actOnHeader(row, action3) {
|
|
|
2300
2308
|
return false;
|
|
2301
2309
|
}
|
|
2302
2310
|
async function loadAssets() {
|
|
2303
|
-
const { gatherAssetFeeds } = await import('../asset-feeds-
|
|
2311
|
+
const { gatherAssetFeeds } = await import('../asset-feeds-QXCSAJRN.js');
|
|
2304
2312
|
const { entries, notes } = await gatherAssetFeeds(am, am.projectDir);
|
|
2305
2313
|
if (notes.length > 0) {
|
|
2306
2314
|
state.message = notes.map((n) => `[${n.feed}] ${n.message}`).join(" \u2022 ");
|
|
@@ -2308,7 +2316,7 @@ async function loadAssets() {
|
|
|
2308
2316
|
const installed = new Set(am.listDeployed().map((e) => `${e.kind}:${e.name}`));
|
|
2309
2317
|
const bySource = /* @__PURE__ */ new Map();
|
|
2310
2318
|
for (const e of entries) {
|
|
2311
|
-
const source = e.
|
|
2319
|
+
const source = e.publisher || "other";
|
|
2312
2320
|
const domain = e.domain || "other";
|
|
2313
2321
|
if (!bySource.has(source)) bySource.set(source, /* @__PURE__ */ new Map());
|
|
2314
2322
|
const domainMap = bySource.get(source);
|
|
@@ -2357,7 +2365,7 @@ async function loadAssets() {
|
|
|
2357
2365
|
async function loadSourcesAndLibraries() {
|
|
2358
2366
|
try {
|
|
2359
2367
|
const [{ openLibraryManager: openLibraryManager2 }, { skaileHomeDir: skaileHomeDir2 }] = await Promise.all([
|
|
2360
|
-
import('../open-library-
|
|
2368
|
+
import('../open-library-M4DB3D3J.js'),
|
|
2361
2369
|
import('../library/index.js')
|
|
2362
2370
|
]);
|
|
2363
2371
|
const { manager, library, close } = await openLibraryManager2();
|
|
@@ -2654,7 +2662,7 @@ async function showInfo() {
|
|
|
2654
2662
|
console.log(` ${S.rule(50)}`);
|
|
2655
2663
|
if (e.version) console.log(` version: ${e.version}`);
|
|
2656
2664
|
if (e.description) console.log(` description: ${e.description}`);
|
|
2657
|
-
if (e.
|
|
2665
|
+
if (e.publisher) console.log(` source: ${pc5.dim(e.publisher)}`);
|
|
2658
2666
|
console.log(` manifest: ${pc5.dim(e.source)}`);
|
|
2659
2667
|
console.log(` installed: ${row.installed ? pc5.green("yes") : pc5.red("no")}`);
|
|
2660
2668
|
if (e.requires.length) {
|
|
@@ -2955,7 +2963,7 @@ function makeNpxCommand() {
|
|
|
2955
2963
|
const am2 = new AssetManager({ projectDir, global: opts.global, driverTarget: opts.target });
|
|
2956
2964
|
spinner5.start(`Installing ${skillRef}`);
|
|
2957
2965
|
try {
|
|
2958
|
-
const added = am2.add(skillRef);
|
|
2966
|
+
const added = await am2.add(skillRef);
|
|
2959
2967
|
spinner5.stop("Done");
|
|
2960
2968
|
if (added.length === 0) {
|
|
2961
2969
|
logInfo(`${opts.skill} already deployed or not found in source.`);
|
|
@@ -3620,7 +3628,7 @@ function makeOutdatedCommand() {
|
|
|
3620
3628
|
console.log(` ${S.rule(nameW + 40)}`);
|
|
3621
3629
|
for (const e of filtered) {
|
|
3622
3630
|
console.log(
|
|
3623
|
-
` ${kindColorPad(e.kind)} ${e.name.padEnd(nameW)} ${S.dim(e.
|
|
3631
|
+
` ${kindColorPad(e.kind)} ${e.name.padEnd(nameW)} ${S.dim(e.publisher)} ${pc5.yellow(`${e.behind} commit(s) behind`)}`
|
|
3624
3632
|
);
|
|
3625
3633
|
}
|
|
3626
3634
|
console.log();
|
|
@@ -3683,7 +3691,7 @@ function action2(fn) {
|
|
|
3683
3691
|
};
|
|
3684
3692
|
}
|
|
3685
3693
|
async function reconcileAndReport(projectDir, plugins) {
|
|
3686
|
-
const { reconcilePlugins } = await import('../plugin-store-
|
|
3694
|
+
const { reconcilePlugins } = await import('../plugin-store-AJ3FGXIC.js');
|
|
3687
3695
|
if (plugins.length === 0) {
|
|
3688
3696
|
logInfo("No plugins declared \u2014 nothing to reconcile.");
|
|
3689
3697
|
return;
|
|
@@ -3699,7 +3707,7 @@ async function reconcileAndReport(projectDir, plugins) {
|
|
|
3699
3707
|
async function runInstall2(spec, opts) {
|
|
3700
3708
|
const projectDir = path14__default.resolve(opts.projectDir);
|
|
3701
3709
|
const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
|
|
3702
|
-
const { specName } = await import('../plugin-store-
|
|
3710
|
+
const { specName } = await import('../plugin-store-AJ3FGXIC.js');
|
|
3703
3711
|
const yamlPath = path14__default.join(projectDir, "skaile.yaml");
|
|
3704
3712
|
const editor = WorkspaceYamlEditor2.load(yamlPath);
|
|
3705
3713
|
const replaced = editor.addPlugin(spec, specName);
|
|
@@ -3711,7 +3719,7 @@ async function runInstall2(spec, opts) {
|
|
|
3711
3719
|
async function runRemove(name, opts) {
|
|
3712
3720
|
const projectDir = path14__default.resolve(opts.projectDir);
|
|
3713
3721
|
const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
|
|
3714
|
-
const { specName } = await import('../plugin-store-
|
|
3722
|
+
const { specName } = await import('../plugin-store-AJ3FGXIC.js');
|
|
3715
3723
|
const yamlPath = path14__default.join(projectDir, "skaile.yaml");
|
|
3716
3724
|
const editor = WorkspaceYamlEditor2.load(yamlPath);
|
|
3717
3725
|
const removed = editor.removePlugin(name, specName);
|
|
@@ -3739,7 +3747,7 @@ async function runList(opts) {
|
|
|
3739
3747
|
const registry = createPluginRegistry();
|
|
3740
3748
|
if (declared.length > 0) {
|
|
3741
3749
|
try {
|
|
3742
|
-
const { loadPlugins } = await import('../plugin-store-
|
|
3750
|
+
const { loadPlugins } = await import('../plugin-store-AJ3FGXIC.js');
|
|
3743
3751
|
const result = await loadPlugins(projectDir, declared, registry);
|
|
3744
3752
|
for (const f of result.failed) logWarn(f.error);
|
|
3745
3753
|
} catch (err) {
|
|
@@ -3942,7 +3950,7 @@ function makeInstallCommand() {
|
|
|
3942
3950
|
const spinner6 = p5.spinner();
|
|
3943
3951
|
spinner6.start(`Installing ${ref}`);
|
|
3944
3952
|
try {
|
|
3945
|
-
const { openCatalogSource: openCatalogSource2, openLibrary: openLibrary2 } = await import('../open-library-
|
|
3953
|
+
const { openCatalogSource: openCatalogSource2, openLibrary: openLibrary2 } = await import('../open-library-M4DB3D3J.js');
|
|
3946
3954
|
const catalog = await openCatalogSource2({ projectDir: path14__default.resolve(opts.projectDir) });
|
|
3947
3955
|
if (!supportsInstallManifest(catalog)) {
|
|
3948
3956
|
throw new Error(
|
|
@@ -3974,7 +3982,7 @@ function makeInstallCommand() {
|
|
|
3974
3982
|
}
|
|
3975
3983
|
const projectDir = path14__default.resolve(opts.projectDir);
|
|
3976
3984
|
try {
|
|
3977
|
-
const { ensureSourcesCloned } = await import('../ensure-sources-
|
|
3985
|
+
const { ensureSourcesCloned } = await import('../ensure-sources-SL2S4UEX.js');
|
|
3978
3986
|
const hydrate = ensureSourcesCloned(projectDir, { quiet: true });
|
|
3979
3987
|
if (hydrate.cloned.length > 0) {
|
|
3980
3988
|
logOk(`Cloned source(s): ${hydrate.cloned.join(", ")}`);
|
|
@@ -4008,13 +4016,6 @@ function makeInstallCommand() {
|
|
|
4008
4016
|
if (result.missing.length > 0) {
|
|
4009
4017
|
for (const m of result.missing) logErr(`Missing: ${m}`);
|
|
4010
4018
|
}
|
|
4011
|
-
if (result.collisions.length > 0) {
|
|
4012
|
-
for (const c of result.collisions) {
|
|
4013
|
-
logWarn(
|
|
4014
|
-
`${c.key} resolved from ${S.bold(c.resolvedFrom)}, also found in: ${c.shadowedIn.join(", ")}. Use @repo qualifier to pin.`
|
|
4015
|
-
);
|
|
4016
|
-
}
|
|
4017
|
-
}
|
|
4018
4019
|
if (result.lockWritten) {
|
|
4019
4020
|
logInfo(`Lock file written: ${S.dim("skaile.lock.yaml")}`);
|
|
4020
4021
|
}
|
|
@@ -4439,7 +4440,7 @@ async function ensurePluginsLoadedForServe(projectDir) {
|
|
|
4439
4440
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
4440
4441
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
4441
4442
|
if (!config.plugins || config.plugins.length === 0) return;
|
|
4442
|
-
const { ensurePluginsLoaded } = await import('../plugin-store-
|
|
4443
|
+
const { ensurePluginsLoaded } = await import('../plugin-store-AJ3FGXIC.js');
|
|
4443
4444
|
const { pluginRegistry } = await import('../plugin-registry/index.js');
|
|
4444
4445
|
const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
|
|
4445
4446
|
if (result.loaded.length > 0) {
|
|
@@ -5315,13 +5316,14 @@ function readProjectSources(yamlPath) {
|
|
|
5315
5316
|
}
|
|
5316
5317
|
}
|
|
5317
5318
|
function ensureClone(entry, opts = {}) {
|
|
5318
|
-
const
|
|
5319
|
+
const slug = deriveSlug(entry.url);
|
|
5320
|
+
const dest = sourceClonePath(slug);
|
|
5319
5321
|
if (existsSync(dest)) {
|
|
5320
5322
|
if (!opts.force) return false;
|
|
5321
5323
|
rmSync(dest, { recursive: true, force: true });
|
|
5322
5324
|
}
|
|
5323
5325
|
const args = ["clone", entry.url, dest];
|
|
5324
|
-
if (entry.
|
|
5326
|
+
if (entry.pin) args.splice(1, 0, "--branch", entry.pin);
|
|
5325
5327
|
const clone = spawnSync("git", args, { stdio: "inherit" });
|
|
5326
5328
|
if (clone.status !== 0) {
|
|
5327
5329
|
logErr(`git clone failed for ${entry.url}`);
|
|
@@ -5332,13 +5334,14 @@ function ensureClone(entry, opts = {}) {
|
|
|
5332
5334
|
async function refreshManifestCache(entry, includeDev = false) {
|
|
5333
5335
|
const { manager, library, close } = await openLibraryManager();
|
|
5334
5336
|
try {
|
|
5335
|
-
const
|
|
5336
|
-
const
|
|
5337
|
+
const slug = deriveSlug(entry.url);
|
|
5338
|
+
const dest = sourceClonePath(slug);
|
|
5339
|
+
const existing = (await manager.listLibraries()).find((l) => l.name === slug);
|
|
5337
5340
|
const lib = existing ?? await manager.addLibrary({
|
|
5338
|
-
name:
|
|
5341
|
+
name: slug,
|
|
5339
5342
|
path: dest,
|
|
5340
5343
|
backend: "git",
|
|
5341
|
-
backendConfig: { url: entry.url, branch: entry.
|
|
5344
|
+
backendConfig: { url: entry.url, branch: entry.pin ?? "main", authHint: "ssh" },
|
|
5342
5345
|
ownership: "reader"
|
|
5343
5346
|
});
|
|
5344
5347
|
const catalog = new LocalCatalogSource(library, lib.id, dest, createFullRegistry());
|
|
@@ -5368,20 +5371,19 @@ function makeSourceCommand() {
|
|
|
5368
5371
|
const cmd = new Command("source").description(
|
|
5369
5372
|
"Manage github sources for the current project (recorded in skaile.yaml)"
|
|
5370
5373
|
);
|
|
5371
|
-
cmd.command("add <git-url>").description("Clone a github repo and register it in this project's skaile.yaml").option("--name <slug>", "
|
|
5374
|
+
cmd.command("add <git-url>").description("Clone a github repo and register it in this project's skaile.yaml").option("--name <slug>", "[deprecated] no-op \u2014 the source entry stores only the URL").option("--pin <ref>", "Pin a branch, tag, or 40-char SHA").option("--branch <branch>", "[deprecated] alias for --pin").option("--force", "Remove an existing clone and re-clone", false).option("--dev", "Also index dev-only assets under the source's dev_paths", false).action(
|
|
5372
5375
|
async (url, opts) => {
|
|
5373
5376
|
const yamlPath = requireProjectYamlPath();
|
|
5374
|
-
|
|
5375
|
-
|
|
5376
|
-
|
|
5377
|
-
const editor = WorkspaceYamlEditor.load(yamlPath);
|
|
5378
|
-
const existing = editor.getSources().find((s) => s.name === slug);
|
|
5379
|
-
if (existing && existing.url !== url) {
|
|
5380
|
-
logErr(
|
|
5381
|
-
`A source named "${slug}" already exists in ${yamlPath} with a different url (${existing.url}). Pass --name to use a different slug.`
|
|
5377
|
+
if (opts.name) {
|
|
5378
|
+
logWarn(
|
|
5379
|
+
"the --name flag is deprecated; the source entry now stores only the URL (the cache slug is derived from it)."
|
|
5382
5380
|
);
|
|
5383
|
-
process.exit(1);
|
|
5384
5381
|
}
|
|
5382
|
+
const pin = opts.pin ?? opts.branch;
|
|
5383
|
+
const slug = deriveSlug(url);
|
|
5384
|
+
const entry = { url };
|
|
5385
|
+
if (pin) entry.pin = pin;
|
|
5386
|
+
const editor = WorkspaceYamlEditor.load(yamlPath);
|
|
5385
5387
|
editor.setSource(entry);
|
|
5386
5388
|
editor.save();
|
|
5387
5389
|
const dest = sourceClonePath(slug);
|
|
@@ -5411,69 +5413,77 @@ function makeSourceCommand() {
|
|
|
5411
5413
|
console.log();
|
|
5412
5414
|
console.log(S.heading(" Sources"));
|
|
5413
5415
|
for (const s of sources) {
|
|
5414
|
-
const
|
|
5415
|
-
|
|
5416
|
+
const slug = deriveSlug(s.url);
|
|
5417
|
+
const cached = existsSync(sourceClonePath(slug)) ? "" : S.warn(" (not cached)");
|
|
5418
|
+
console.log(` ${S.cmd(slug.padEnd(24))} ${S.dim(s.url)}${cached}`);
|
|
5416
5419
|
}
|
|
5417
5420
|
console.log(`
|
|
5418
5421
|
${S.dim(`${sources.length} source(s)`)}
|
|
5419
5422
|
`);
|
|
5420
5423
|
});
|
|
5421
|
-
cmd.command("show <name>").description("Show details for a source").action(async (
|
|
5424
|
+
cmd.command("show <name-or-url>").description("Show details for a source (matched by URL or derived slug)").action(async (key) => {
|
|
5422
5425
|
const yamlPath = requireProjectYamlPath();
|
|
5423
|
-
const entry = readProjectSources(yamlPath).find(
|
|
5426
|
+
const entry = readProjectSources(yamlPath).find(
|
|
5427
|
+
(s) => s.url === key || deriveSlug(s.url) === key
|
|
5428
|
+
);
|
|
5424
5429
|
if (!entry) {
|
|
5425
|
-
logErr(`No source
|
|
5430
|
+
logErr(`No source matching "${key}" in ${yamlPath}.`);
|
|
5426
5431
|
process.exit(1);
|
|
5427
5432
|
}
|
|
5433
|
+
const slug = deriveSlug(entry.url);
|
|
5428
5434
|
console.log(
|
|
5429
5435
|
JSON.stringify(
|
|
5430
5436
|
{
|
|
5431
5437
|
...entry,
|
|
5432
|
-
|
|
5433
|
-
|
|
5438
|
+
slug,
|
|
5439
|
+
clonePath: sourceClonePath(slug),
|
|
5440
|
+
cached: existsSync(sourceClonePath(slug))
|
|
5434
5441
|
},
|
|
5435
5442
|
null,
|
|
5436
5443
|
2
|
|
5437
5444
|
)
|
|
5438
5445
|
);
|
|
5439
5446
|
});
|
|
5440
|
-
cmd.command("remove <name>").description("Remove a source from this project's skaile.yaml").option("--purge", "Also delete the cached clone from ~/.skaile/sources/", false).action(async (
|
|
5447
|
+
cmd.command("remove <name-or-url>").description("Remove a source from this project's skaile.yaml (matched by URL or slug)").option("--purge", "Also delete the cached clone from ~/.skaile/sources/", false).action(async (key, opts) => {
|
|
5441
5448
|
const yamlPath = requireProjectYamlPath();
|
|
5442
5449
|
const editor = WorkspaceYamlEditor.load(yamlPath);
|
|
5443
|
-
const
|
|
5444
|
-
if (!
|
|
5445
|
-
logErr(`No source
|
|
5450
|
+
const match = editor.getSources().find((s) => s.url === key || deriveSlug(s.url) === key);
|
|
5451
|
+
if (!match) {
|
|
5452
|
+
logErr(`No source matching "${key}" in ${yamlPath}.`);
|
|
5446
5453
|
process.exit(1);
|
|
5447
5454
|
}
|
|
5455
|
+
const slug = deriveSlug(match.url);
|
|
5456
|
+
editor.removeSource(match.url);
|
|
5448
5457
|
editor.save();
|
|
5449
|
-
await dropManifestCache(
|
|
5458
|
+
await dropManifestCache(slug, opts.purge);
|
|
5450
5459
|
logOk(
|
|
5451
|
-
opts.purge ? `Removed source "${
|
|
5460
|
+
opts.purge ? `Removed source "${slug}" and purged its clone.` : `Removed source "${slug}" from skaile.yaml (clone left in ~/.skaile/sources/).`
|
|
5452
5461
|
);
|
|
5453
5462
|
});
|
|
5454
|
-
cmd.command("sync [name]").description("Pull upstream changes and refresh the manifest cache").option("--dev", "Also index dev-only assets under each source's dev_paths", false).action(async (
|
|
5463
|
+
cmd.command("sync [name]").description("Pull upstream changes and refresh the manifest cache").option("--dev", "Also index dev-only assets under each source's dev_paths", false).action(async (key, opts) => {
|
|
5455
5464
|
const yamlPath = requireProjectYamlPath();
|
|
5456
5465
|
const all = readProjectSources(yamlPath);
|
|
5457
|
-
const targets =
|
|
5466
|
+
const targets = key ? all.filter((s) => s.url === key || deriveSlug(s.url) === key) : all;
|
|
5458
5467
|
if (targets.length === 0) {
|
|
5459
|
-
logInfo(
|
|
5468
|
+
logInfo(key ? `No source matching "${key}".` : "No sources in skaile.yaml.");
|
|
5460
5469
|
return;
|
|
5461
5470
|
}
|
|
5462
5471
|
for (const entry of targets) {
|
|
5463
|
-
const
|
|
5472
|
+
const slug = deriveSlug(entry.url);
|
|
5473
|
+
const dest = sourceClonePath(slug);
|
|
5464
5474
|
if (!existsSync(dest)) {
|
|
5465
5475
|
ensureClone(entry);
|
|
5466
|
-
logOk(`${
|
|
5476
|
+
logOk(`${slug}: cloned to ${dest}.`);
|
|
5467
5477
|
} else {
|
|
5468
5478
|
const pull = spawnSync("git", ["pull", "--ff-only"], { cwd: dest, stdio: "inherit" });
|
|
5469
5479
|
if (pull.status !== 0) {
|
|
5470
|
-
logWarn(`${
|
|
5480
|
+
logWarn(`${slug}: git pull failed, skipping manifest refresh.`);
|
|
5471
5481
|
continue;
|
|
5472
5482
|
}
|
|
5473
5483
|
}
|
|
5474
5484
|
const result = await refreshManifestCache(entry, opts.dev);
|
|
5475
|
-
logOk(`${
|
|
5476
|
-
for (const err of result.errors) logWarn(`${
|
|
5485
|
+
logOk(`${slug}: indexed ${result.assetsUpdated} of ${result.assetsFound} asset(s).`);
|
|
5486
|
+
for (const err of result.errors) logWarn(`${slug}: ${err}`);
|
|
5477
5487
|
}
|
|
5478
5488
|
});
|
|
5479
5489
|
cmd.command("patch <ref>").description("Extract an asset for editing against the source").action((_ref) => {
|
|
@@ -5696,13 +5706,6 @@ function makeUpdateCommand() {
|
|
|
5696
5706
|
} else {
|
|
5697
5707
|
logInfo("Nothing to update.");
|
|
5698
5708
|
}
|
|
5699
|
-
if (result.collisions.length > 0) {
|
|
5700
|
-
for (const c of result.collisions) {
|
|
5701
|
-
logWarn(
|
|
5702
|
-
`${c.key} resolved from ${S.heading(c.resolvedFrom)}, also found in: ${c.shadowedIn.join(", ")}`
|
|
5703
|
-
);
|
|
5704
|
-
}
|
|
5705
|
-
}
|
|
5706
5709
|
}
|
|
5707
5710
|
);
|
|
5708
5711
|
}
|
|
@@ -6284,8 +6287,7 @@ program.command("init [project-dir]").description("Initialize a project director
|
|
|
6284
6287
|
driver: "claude-sdk",
|
|
6285
6288
|
max_turns: 200
|
|
6286
6289
|
}
|
|
6287
|
-
}
|
|
6288
|
-
ai_resources: []
|
|
6290
|
+
}
|
|
6289
6291
|
})
|
|
6290
6292
|
);
|
|
6291
6293
|
created.push("skaile.yaml");
|
|
@@ -6305,7 +6307,7 @@ program.command("init [project-dir]").description("Initialize a project director
|
|
|
6305
6307
|
const append = entries.filter((e) => !have.has(e));
|
|
6306
6308
|
if (append.length > 0) {
|
|
6307
6309
|
const prefix = existing && !existing.endsWith("\n") ? "\n" : "";
|
|
6308
|
-
writeFileSync2(gitignorePath, existing + prefix
|
|
6310
|
+
writeFileSync2(gitignorePath, `${existing + prefix}${append.join("\n")}
|
|
6309
6311
|
`);
|
|
6310
6312
|
if (!existing) created.push(".gitignore");
|
|
6311
6313
|
}
|
|
@@ -6336,7 +6338,7 @@ program.command("init [project-dir]").description("Initialize a project director
|
|
|
6336
6338
|
);
|
|
6337
6339
|
}
|
|
6338
6340
|
try {
|
|
6339
|
-
const { ensureSourcesCloned } = await import('../ensure-sources-
|
|
6341
|
+
const { ensureSourcesCloned } = await import('../ensure-sources-SL2S4UEX.js');
|
|
6340
6342
|
const hydrate = ensureSourcesCloned(resolved, { quiet: true });
|
|
6341
6343
|
for (const n of hydrate.cloned) created.push(`~/.skaile/sources/${n}/`);
|
|
6342
6344
|
if (hydrate.failed.length > 0) {
|
|
@@ -6362,7 +6364,7 @@ program.command("init [project-dir]").description("Initialize a project director
|
|
|
6362
6364
|
console.log();
|
|
6363
6365
|
});
|
|
6364
6366
|
program.command("setup").description("Interactive provider setup wizard").action(async () => {
|
|
6365
|
-
const { cmdSetup } = await import('../setup-
|
|
6367
|
+
const { cmdSetup } = await import('../setup-GBSQX7JF.js');
|
|
6366
6368
|
await cmdSetup([], { projectDir: process.cwd() });
|
|
6367
6369
|
});
|
|
6368
6370
|
program.addCommand(makeInstallCommand());
|