@skaile/workspaces 0.22.0 → 0.23.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 (124) hide show
  1. package/CHANGELOG.md +92 -0
  2. package/dist/{asset-feeds-Y2CDCM3W.js → asset-feeds-WKIKSZ6Z.js} +9 -9
  3. package/dist/{asset-feeds-Y2CDCM3W.js.map → asset-feeds-WKIKSZ6Z.js.map} +1 -1
  4. package/dist/asset-manager/index.js +7 -7
  5. package/dist/asset-manager/installer.js +6 -6
  6. package/dist/asset-manager/src/index.d.ts +15 -0
  7. package/dist/asset-manager/src/index.d.ts.map +1 -1
  8. package/dist/base-assets/connectors/deploy.js +8 -8
  9. package/dist/base-assets/connectors/devserver.js +8 -8
  10. package/dist/base-assets/connectors/flow/adapter.js +8 -8
  11. package/dist/base-assets/connectors/flow/run-flow.js +9 -9
  12. package/dist/base-assets/connectors/flow.js +8 -8
  13. package/dist/base-assets/connectors/git.js +8 -8
  14. package/dist/base-assets/connectors/gmail.js +8 -8
  15. package/dist/base-assets/connectors/googledrive/driver.d.ts.map +1 -1
  16. package/dist/base-assets/connectors/googledrive.js +8 -8
  17. package/dist/base-assets/connectors/local.js +8 -8
  18. package/dist/base-assets/connectors/mattermost.js +8 -8
  19. package/dist/base-assets/connectors/memory.js +8 -8
  20. package/dist/base-assets/connectors/minio.js +8 -8
  21. package/dist/base-assets/connectors/postgres.js +8 -8
  22. package/dist/base-assets/connectors/s3.js +8 -8
  23. package/dist/base-assets/connectors/sharepoint/driver.d.ts.map +1 -1
  24. package/dist/base-assets/connectors/sharepoint.js +8 -8
  25. package/dist/base-assets/connectors/sqlite.js +8 -8
  26. package/dist/base-assets/connectors/static-server.js +8 -8
  27. package/dist/base-assets/connectors/tunnel.js +8 -8
  28. package/dist/base-assets/connectors/webdav/driver.d.ts.map +1 -1
  29. package/dist/base-assets/connectors/webdav.js +8 -8
  30. package/dist/base-assets/connectors/xstate-store.js +8 -8
  31. package/dist/base-assets/connectors/xstate.js +8 -8
  32. package/dist/{chunk-MNAHNDUI.js → chunk-2F3RUZXC.js} +3 -3
  33. package/dist/{chunk-MNAHNDUI.js.map → chunk-2F3RUZXC.js.map} +1 -1
  34. package/dist/{chunk-2RYQERIT.js → chunk-2RFOFHSM.js} +4 -4
  35. package/dist/{chunk-2RYQERIT.js.map → chunk-2RFOFHSM.js.map} +1 -1
  36. package/dist/{chunk-K2HDYSAM.js → chunk-46COM7M5.js} +5 -5
  37. package/dist/{chunk-K2HDYSAM.js.map → chunk-46COM7M5.js.map} +1 -1
  38. package/dist/{chunk-V5TBKO5Q.js → chunk-542K7SR6.js} +59 -35
  39. package/dist/chunk-542K7SR6.js.map +1 -0
  40. package/dist/{chunk-PFOXL4SH.js → chunk-5ESCS2OS.js} +4 -4
  41. package/dist/{chunk-PFOXL4SH.js.map → chunk-5ESCS2OS.js.map} +1 -1
  42. package/dist/{chunk-WH2EB2SF.js → chunk-AFLH7B64.js} +3 -3
  43. package/dist/{chunk-WH2EB2SF.js.map → chunk-AFLH7B64.js.map} +1 -1
  44. package/dist/{chunk-7HSXUKNB.js → chunk-BTAC2VYT.js} +19 -18
  45. package/dist/chunk-BTAC2VYT.js.map +1 -0
  46. package/dist/{chunk-K7WPR77X.js → chunk-DH4N5AW4.js} +14 -8
  47. package/dist/chunk-DH4N5AW4.js.map +1 -0
  48. package/dist/{chunk-SKXCTV55.js → chunk-DZCFFTAX.js} +9 -9
  49. package/dist/{chunk-SKXCTV55.js.map → chunk-DZCFFTAX.js.map} +1 -1
  50. package/dist/{chunk-OJN25VJO.js → chunk-E4UJ7CVK.js} +31 -126
  51. package/dist/chunk-E4UJ7CVK.js.map +1 -0
  52. package/dist/{chunk-JN2CUVSU.js → chunk-LJ52ZKIU.js} +3 -3
  53. package/dist/{chunk-JN2CUVSU.js.map → chunk-LJ52ZKIU.js.map} +1 -1
  54. package/dist/{chunk-NBJ5TOEC.js → chunk-ODPII24X.js} +3 -3
  55. package/dist/{chunk-NBJ5TOEC.js.map → chunk-ODPII24X.js.map} +1 -1
  56. package/dist/{chunk-NDD5VMN5.js → chunk-OVQZ5OKL.js} +2 -2
  57. package/dist/{chunk-NDD5VMN5.js.map → chunk-OVQZ5OKL.js.map} +1 -1
  58. package/dist/{chunk-6MB7CRME.js → chunk-QMONOHXT.js} +268 -37
  59. package/dist/chunk-QMONOHXT.js.map +1 -0
  60. package/dist/{chunk-53UNDY6K.js → chunk-QTWA6BZK.js} +5 -5
  61. package/dist/{chunk-53UNDY6K.js.map → chunk-QTWA6BZK.js.map} +1 -1
  62. package/dist/{chunk-4NDWKA64.js → chunk-WSZAFRQL.js} +8 -3
  63. package/dist/chunk-WSZAFRQL.js.map +1 -0
  64. package/dist/{chunk-VUCPJBAG.js → chunk-YX3UWPJ5.js} +53 -28
  65. package/dist/chunk-YX3UWPJ5.js.map +1 -0
  66. package/dist/{chunk-ETMUGBHF.js → chunk-Z3M5K67G.js} +8 -8
  67. package/dist/chunk-Z3M5K67G.js.map +1 -0
  68. package/dist/cli/index.js +38 -38
  69. package/dist/cli/index.js.map +1 -1
  70. package/dist/cli/src/commands/manage.d.ts.map +1 -1
  71. package/dist/cli/src/helpers.d.ts +7 -0
  72. package/dist/cli/src/helpers.d.ts.map +1 -1
  73. package/dist/connectors/config.js +6 -6
  74. package/dist/connectors/index.js +8 -8
  75. package/dist/connectors/rclone.js +2 -1
  76. package/dist/connectors/src/rclone-process-manager.d.ts +91 -3
  77. package/dist/connectors/src/rclone-process-manager.d.ts.map +1 -1
  78. package/dist/connectors/src/watcher.d.ts +6 -0
  79. package/dist/connectors/src/watcher.d.ts.map +1 -1
  80. package/dist/core/index.js +5 -5
  81. package/dist/core/manifest.js +2 -2
  82. package/dist/core/models.js +1 -1
  83. package/dist/core/runtime-assets.js +4 -4
  84. package/dist/core/src/lock.d.ts +6 -6
  85. package/dist/core/src/manifest.d.ts.map +1 -1
  86. package/dist/core/src/models.d.ts +25 -18
  87. package/dist/core/src/models.d.ts.map +1 -1
  88. package/dist/core/src/repo-manager.d.ts +8 -2
  89. package/dist/core/src/repo-manager.d.ts.map +1 -1
  90. package/dist/core/workspace-config.js +3 -3
  91. package/dist/deploy/index.js +5 -5
  92. package/dist/discovery/index.js +3 -3
  93. package/dist/{ensure-sources-REWWBH2K.js → ensure-sources-OJUBGX6Z.js} +10 -10
  94. package/dist/{ensure-sources-REWWBH2K.js.map → ensure-sources-OJUBGX6Z.js.map} +1 -1
  95. package/dist/helpers-LTN3HMD3.js +4 -0
  96. package/dist/{helpers-I3SREIC3.js.map → helpers-LTN3HMD3.js.map} +1 -1
  97. package/dist/library/index.js +4 -4
  98. package/dist/open-library-67FSSQWE.js +13 -0
  99. package/dist/{open-library-CT4VVESU.js.map → open-library-67FSSQWE.js.map} +1 -1
  100. package/dist/{plugin-store-QS7TC5HY.js → plugin-store-IZ5SCRAV.js} +7 -7
  101. package/dist/{plugin-store-QS7TC5HY.js.map → plugin-store-IZ5SCRAV.js.map} +1 -1
  102. package/dist/runner/index.js +10 -10
  103. package/dist/sdk/asset-manager.js +7 -7
  104. package/dist/sdk/core.js +5 -5
  105. package/dist/sdk/index.js +10 -10
  106. package/dist/sdk/runner.js +10 -10
  107. package/dist/{setup-F6DGKL7J.js → setup-J7CYEQOF.js} +7 -7
  108. package/dist/{setup-F6DGKL7J.js.map → setup-J7CYEQOF.js.map} +1 -1
  109. package/dist/store-client-AEI6Y3KD.js +14 -0
  110. package/dist/{store-client-JP642EEI.js.map → store-client-AEI6Y3KD.js.map} +1 -1
  111. package/dist/tui/index.js +10 -10
  112. package/dist/workspace-plugin/index.js +1 -1
  113. package/package.json +1 -1
  114. package/dist/chunk-4NDWKA64.js.map +0 -1
  115. package/dist/chunk-6MB7CRME.js.map +0 -1
  116. package/dist/chunk-7HSXUKNB.js.map +0 -1
  117. package/dist/chunk-ETMUGBHF.js.map +0 -1
  118. package/dist/chunk-K7WPR77X.js.map +0 -1
  119. package/dist/chunk-OJN25VJO.js.map +0 -1
  120. package/dist/chunk-V5TBKO5Q.js.map +0 -1
  121. package/dist/chunk-VUCPJBAG.js.map +0 -1
  122. package/dist/helpers-I3SREIC3.js +0 -4
  123. package/dist/open-library-CT4VVESU.js +0 -13
  124. package/dist/store-client-JP642EEI.js +0 -14
@@ -1 +1 @@
1
- {"version":3,"file":"manage.d.ts","sourceRoot":"","sources":["../../../../cli/src/commands/manage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,kBAAkB,GAAG,aAAa,GAAG,OAAO,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA6ED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,QAAQ,EAAE,EAChB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAC1B,QAAQ,EAAE,CAWZ;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAKzF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAK1E;AAi2BD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAO3C"}
1
+ {"version":3,"file":"manage.d.ts","sourceRoot":"","sources":["../../../../cli/src/commands/manage.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,EAAiB,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,kBAAkB,GAAG,aAAa,GAAG,OAAO,CAAC;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AA6ED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,QAAQ,EAAE,EAChB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,EAC7B,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAC1B,QAAQ,EAAE,CAWZ;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAKzF;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAK1E;AAm2BD;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAO3C"}
@@ -15,6 +15,13 @@ export declare const S: {
15
15
  label: (s: string) => string;
16
16
  rule: (w?: number) => string;
17
17
  };
18
+ /**
19
+ * Fit a plain (ANSI-free) string into exactly `width` columns: truncate with a
20
+ * trailing `…` when too long, pad with spaces when too short. Keeps fixed-width
21
+ * columns from overflowing the row when a value (e.g. an asset name) is wider
22
+ * than its budget.
23
+ */
24
+ export declare function fitWidth(s: string, width: number): string;
18
25
  /** Color-code an asset kind string. */
19
26
  export declare function kindColor(kind: string): string;
20
27
  /** Color-code and pad an asset kind string. */
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../cli/src/helpers.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,CAAC;eACD,MAAM;aACR,MAAM;iBACF,MAAM;cACT,MAAM;aACP,MAAM;YACP,MAAM;cACJ,MAAM;aACP,MAAM;eACJ,MAAM;;CAElB,CAAC;AAiBF,uCAAuC;AACvC,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED,+CAA+C;AAC/C,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,MAAM,CAG5D;AAED,iDAAiD;AACjD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM5C;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,QAEhC;AACD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,QAEjC;AACD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,QAElC;AACD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,QAElC;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAUrD"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../cli/src/helpers.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,CAAC;eACD,MAAM;aACR,MAAM;iBACF,MAAM;cACT,MAAM;aACP,MAAM;YACP,MAAM;cACJ,MAAM;aACP,MAAM;eACJ,MAAM;;CAElB,CAAC;AAiBF;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIzD;AAED,uCAAuC;AACvC,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED,+CAA+C;AAC/C,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,MAAM,CAG5D;AAED,iDAAiD;AACjD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAM5C;AAED;;;;;GAKG;AACH,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,QAEhC;AACD;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,QAEjC;AACD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,QAElC;AACD;;;;;GAKG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,QAElC;AAED,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAUrD"}
@@ -1,11 +1,11 @@
1
- export { LegacyAuthGrammarError, createCliSecretProviderChain, createForgeSecretProviderChain, loadConnectorDeclarations, resolveAuth, resolveAuthRef, resolveBackendAuthFor } from '../chunk-NBJ5TOEC.js';
2
- import '../chunk-ETMUGBHF.js';
1
+ export { LegacyAuthGrammarError, createCliSecretProviderChain, createForgeSecretProviderChain, loadConnectorDeclarations, resolveAuth, resolveAuthRef, resolveBackendAuthFor } from '../chunk-ODPII24X.js';
2
+ import '../chunk-Z3M5K67G.js';
3
3
  import '../chunk-K5GBV4SA.js';
4
4
  import '../chunk-KLNL7QHN.js';
5
- import '../chunk-PFOXL4SH.js';
6
- import '../chunk-V5TBKO5Q.js';
7
- import '../chunk-K7WPR77X.js';
8
- import '../chunk-VUCPJBAG.js';
5
+ import '../chunk-5ESCS2OS.js';
6
+ import '../chunk-542K7SR6.js';
7
+ import '../chunk-DH4N5AW4.js';
8
+ import '../chunk-YX3UWPJ5.js';
9
9
  import '../chunk-JKNWJ64A.js';
10
10
  import '../chunk-O4JH3KUE.js';
11
11
  import '../chunk-24UIWON4.js';
@@ -1,18 +1,18 @@
1
- export { AbstractConnector, BUILTIN_CONNECTOR_CATALOG, ConnectorFieldMissingError, ConnectorManager, ConnectorStartupError, FlowAdapter, LogBuffer, ManagedGitconfigCollisionError, atomicReplaceCredential, buildConnectorPromptSection, buildSdkConnectorTools, createFsWatcher, createWorktree, defaultSpawn, ensureFleetMounted, findGitRoot, findMissingPackages, getConnector, installNpmPackages, isFleetManaged, isPackageResolvable, listConnectors, listWorktrees, registerBuiltinConnectors, removeMountBlock, renderCredentialHelperScript, tryGetConnector, worktreeRegistry, writeHelperScript, writeMountBlock } from '../chunk-OJN25VJO.js';
2
- export { EnvSecretProvider, ForgeSecretProvider, InMemorySecretProvider, LegacyAuthGrammarError, LockedSecretProvider, OAuthRequiredError, PreMintedSecretProvider, SecretProviderChain, createCliSecretProviderChain, createForgeSecretProviderChain, loadConnectorDeclarations, resolveAuth, resolveAuthRef, resolveBackendAuthFor } from '../chunk-NBJ5TOEC.js';
3
- export { PortPool, RcloneProcessManager, ensureDirMode } from '../chunk-6MB7CRME.js';
1
+ export { AbstractConnector, BUILTIN_CONNECTOR_CATALOG, ConnectorFieldMissingError, ConnectorManager, ConnectorStartupError, FlowAdapter, LogBuffer, ManagedGitconfigCollisionError, atomicReplaceCredential, buildConnectorPromptSection, buildSdkConnectorTools, createWorktree, defaultSpawn, ensureFleetMounted, findGitRoot, findMissingPackages, getConnector, installNpmPackages, isFleetManaged, isPackageResolvable, listConnectors, listWorktrees, registerBuiltinConnectors, removeMountBlock, renderCredentialHelperScript, tryGetConnector, worktreeRegistry, writeHelperScript, writeMountBlock } from '../chunk-E4UJ7CVK.js';
2
+ export { EnvSecretProvider, ForgeSecretProvider, InMemorySecretProvider, LegacyAuthGrammarError, LockedSecretProvider, OAuthRequiredError, PreMintedSecretProvider, SecretProviderChain, createCliSecretProviderChain, createForgeSecretProviderChain, loadConnectorDeclarations, resolveAuth, resolveAuthRef, resolveBackendAuthFor } from '../chunk-ODPII24X.js';
3
+ export { PortPool, RcloneProcessManager, createFsWatcher, ensureDirMode } from '../chunk-QMONOHXT.js';
4
4
  export { renderGoogleDriveConfig, renderOneDriveConfig, renderWebDAVConfig } from '../chunk-QAVZOJCV.js';
5
5
  import '../chunk-6E6PKKAD.js';
6
6
  import '../chunk-ICS76R4T.js';
7
7
  import '../chunk-GZWJGNNN.js';
8
8
  import '../chunk-FVTV7M76.js';
9
- import '../chunk-ETMUGBHF.js';
9
+ import '../chunk-Z3M5K67G.js';
10
10
  import '../chunk-K5GBV4SA.js';
11
11
  import '../chunk-KLNL7QHN.js';
12
- import '../chunk-PFOXL4SH.js';
13
- import '../chunk-V5TBKO5Q.js';
14
- import '../chunk-K7WPR77X.js';
15
- import '../chunk-VUCPJBAG.js';
12
+ import '../chunk-5ESCS2OS.js';
13
+ import '../chunk-542K7SR6.js';
14
+ import '../chunk-DH4N5AW4.js';
15
+ import '../chunk-YX3UWPJ5.js';
16
16
  import '../chunk-JKNWJ64A.js';
17
17
  import '../chunk-O4JH3KUE.js';
18
18
  import '../chunk-24UIWON4.js';
@@ -1,4 +1,5 @@
1
- export { RcloneProcessManager, _routeRcloneLogLine } from '../chunk-6MB7CRME.js';
1
+ export { DEFAULT_UPLOAD_STUCK_THRESHOLD, DEFAULT_VFS_WRITE_BACK, RcloneProcessManager, _buildRcloneArgs, _routeRcloneLogLine, awaitQuiescent } from '../chunk-QMONOHXT.js';
2
+ import '../chunk-24UIWON4.js';
2
3
  import '../chunk-NSBPE2FW.js';
3
4
  //# sourceMappingURL=rclone.js.map
4
5
  //# sourceMappingURL=rclone.js.map
@@ -15,6 +15,10 @@
15
15
  * `_devlog/specs/2026-05-01-debug-logging-design.md` for the source taxonomy.
16
16
  */
17
17
  import type { Logger } from "@skaile/workspaces/types";
18
+ /** Default rclone `--vfs-write-back` delay; raised from 5s so a rapidly-rewritten file settles before upload (avoids mid-write "sizes differ" aborts). */
19
+ export declare const DEFAULT_VFS_WRITE_BACK = "30s";
20
+ /** Consecutive failed upload retries for one object before a stuck-upload error is surfaced. */
21
+ export declare const DEFAULT_UPLOAD_STUCK_THRESHOLD = 3;
18
22
  /**
19
23
  * Spawn-time configuration for a single rclone FUSE mount.
20
24
  * @docLink packages/connectors/api-reference#rclone-spawn-config
@@ -41,6 +45,39 @@ export interface RcloneSpawnConfig {
41
45
  cacheMaxSize?: string;
42
46
  /** Per-mount cache age cap. Default: '168h'. */
43
47
  cacheMaxAge?: string;
48
+ /**
49
+ * Skip rclone's post-transfer size + checksum verification by appending
50
+ * `--ignore-size --ignore-checksum`. Default: false (verification on).
51
+ *
52
+ * Escape hatch for remotes that mutate uploaded bytes server-side (notably
53
+ * SharePoint Online normalising LF→CRLF on text/html), which makes the
54
+ * remote object a different size/hash than the local source. rclone reads
55
+ * that as `corrupted on transfer`, deletes the upload, and retries forever,
56
+ * so the file never durably lands. Enabling this trades integrity
57
+ * verification for sync-ability and must only be set by drivers that have
58
+ * confirmed the mutation is benign. Off-by-default; wired per-driver, never
59
+ * globally.
60
+ */
61
+ ignoreSizeCheck?: boolean;
62
+ /**
63
+ * rclone `--vfs-write-back` delay (e.g. '30s', '1m'). Controls how long a
64
+ * dirty file sits before rclone starts uploading it. Default:
65
+ * {@link DEFAULT_VFS_WRITE_BACK}. Raise it when the agent rewrites files
66
+ * faster than they upload, to avoid mid-write "sizes differ" aborts.
67
+ */
68
+ vfsWriteBack?: string;
69
+ /**
70
+ * Consecutive upload retries for one object before {@link onUploadStuck}
71
+ * fires. Default: {@link DEFAULT_UPLOAD_STUCK_THRESHOLD}.
72
+ */
73
+ uploadStuckThreshold?: number;
74
+ /**
75
+ * Optional hook invoked once per object when its upload has failed
76
+ * `uploadStuckThreshold` times in a row. spawn() always also logs an
77
+ * error-level entry through the `${driverName}+rclone` child logger; this
78
+ * hook lets callers surface the stranded file elsewhere (e.g. a sync event).
79
+ */
80
+ onUploadStuck?: (object: string, tries: number) => void;
44
81
  /**
45
82
  * Parent driver Logger — already tagged
46
83
  * `{kind:"mount", subkind:<driver>, instance:<mountId>}` by ConnectorManager.
@@ -80,6 +117,10 @@ export declare class RcloneProcessManager {
80
117
  * Stop an rclone subprocess. Attempts a flush first, then SIGTERM, then
81
118
  * SIGKILL + fusermount3 if `graceMs` elapses without the mountpoint
82
119
  * disappearing.
120
+ *
121
+ * `graceMs` bounds both the flush stabilization gate and the SIGTERM→SIGKILL
122
+ * window — it is *not* a single total wall-clock cap: the flush also waits on
123
+ * rclone's `/vfs/stats` drain (its own 60s ceiling) between the two.
83
124
  */
84
125
  stop(handle: RcloneHandle, opts?: {
85
126
  graceMs?: number;
@@ -87,18 +128,65 @@ export declare class RcloneProcessManager {
87
128
  /**
88
129
  * Force rclone to upload pending writes, then wait until the in-use
89
130
  * counter reaches zero.
131
+ *
132
+ * Before issuing the refresh it waits for the vfs cache dir to go quiescent
133
+ * (no write for `stabilityThresholdMs`, bounded by `stabilizeTimeoutMs`) so a
134
+ * close/hibernate-triggered flush doesn't snapshot a half-written file and
135
+ * trigger rclone's mid-write "sizes differ" abort. Pass `stabilize: false`
136
+ * to skip the gate.
90
137
  */
91
- flush(handle: RcloneHandle): Promise<void>;
138
+ flush(handle: RcloneHandle, opts?: {
139
+ stabilize?: boolean;
140
+ stabilityThresholdMs?: number;
141
+ stabilizeTimeoutMs?: number;
142
+ }): Promise<void>;
92
143
  /** Liveness + cache-dir size. */
93
144
  status(handle: RcloneHandle): Promise<{
94
145
  alive: boolean;
95
146
  cacheBytes: number;
96
147
  }>;
97
148
  }
149
+ /**
150
+ * Per-process state threaded through {@link _routeRcloneLogLine} so it can
151
+ * detect a sustained upload failure (the same object failing to upload K times
152
+ * in a row) and surface it exactly once, instead of letting rclone retry
153
+ * silently at INFO level forever.
154
+ */
155
+ export interface RcloneLogRouteContext {
156
+ /** Consecutive retries for one object before {@link onUploadStuck} fires. */
157
+ stuckThreshold?: number;
158
+ /** Objects already alerted on, to fire once and not on every later retry. */
159
+ alertedObjects?: Set<string>;
160
+ /** Called the first time an object crosses {@link stuckThreshold}. */
161
+ onUploadStuck?: (object: string, tries: number) => void;
162
+ }
98
163
  /**
99
164
  * @internal
100
165
  * Route a single rclone log line (JSON or raw) to the appropriate Logger
101
- * call. Exported for tests; not part of the public API.
166
+ * call. Exported for tests; not part of the public API. When `ctx` is
167
+ * supplied, also tracks consecutive upload failures per object and invokes
168
+ * `ctx.onUploadStuck` once the retry count for an object reaches the threshold.
169
+ */
170
+ export declare function _routeRcloneLogLine(line: string, log: Logger, ctx?: RcloneLogRouteContext): void;
171
+ /**
172
+ * @internal
173
+ * Build the `rclone mount` argv from a spawn config. Extracted from spawn() so
174
+ * the flag wiring (notably `--vfs-write-back` and the conditional
175
+ * `--ignore-size --ignore-checksum`) is unit-testable without actually
176
+ * launching rclone. Exported for tests; not part of the public API.
177
+ */
178
+ export declare function _buildRcloneArgs(config: RcloneSpawnConfig, io: {
179
+ configPath: string;
180
+ rcAddr: string;
181
+ }): string[];
182
+ /**
183
+ * Poll `dir` until its newest file mtime is at least `thresholdMs` in the past
184
+ * (no write for that long), or `timeoutMs` elapses. Returns true if it went
185
+ * quiescent, false on timeout. An empty/missing dir counts as quiescent.
102
186
  */
103
- export declare function _routeRcloneLogLine(line: string, log: Logger): void;
187
+ export declare function awaitQuiescent(dir: string, opts: {
188
+ thresholdMs: number;
189
+ timeoutMs: number;
190
+ pollMs: number;
191
+ }): Promise<boolean>;
104
192
  //# sourceMappingURL=rclone-process-manager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rclone-process-manager.d.ts","sourceRoot":"","sources":["../../../connectors/src/rclone-process-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAOvD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,2FAA2F;IAC3F,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,YAAY,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC5C,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;CAChB;AAmBD;;;;;GAKG;AACH,qBAAa,oBAAoB;IAC/B;;;;OAIG;IACG,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAgJ7D;;;;OAIG;IACG,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAkD5E;;;OAGG;IACG,KAAK,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BhD,iCAAiC;IAC3B,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CASpF;AAaD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CA4CnE"}
1
+ {"version":3,"file":"rclone-process-manager.d.ts","sourceRoot":"","sources":["../../../connectors/src/rclone-process-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAQH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAQvD,0JAA0J;AAC1J,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAE5C,gGAAgG;AAChG,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAYhD;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,sFAAsF;IACtF,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,2FAA2F;IAC3F,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,YAAY,EAAE,MAAM,CAAC;IACrB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,YAAY,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC5C,+CAA+C;IAC/C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxD;;;;;OAKG;IACH,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,8CAA8C;IAC9C,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;CAChB;AAmBD;;;;;GAKG;AACH,qBAAa,oBAAoB;IAC/B;;;;OAIG;IACG,KAAK,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC;IAuI7D;;;;;;;;OAQG;IACG,IAAI,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAoD5E;;;;;;;;;OASG;IACG,KAAK,CACT,MAAM,EAAE,YAAY,EACpB,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,OAAO,CAAC;QAAC,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAAC,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAAE,GACzF,OAAO,CAAC,IAAI,CAAC;IAgDhB,iCAAiC;IAC3B,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;CASpF;AAWD;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,sEAAsE;IACtE,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;CACzD;AAOD;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,qBAAqB,GAAG,IAAI,CA+ChG;AAuCD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,iBAAiB,EACzB,EAAE,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACzC,MAAM,EAAE,CAoCV;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE;IAAE,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC/D,OAAO,CAAC,OAAO,CAAC,CAQlB"}
@@ -10,6 +10,12 @@
10
10
  */
11
11
  import type { ConnectorChangeEvent } from "./connector-types.js";
12
12
  import type { WatchHandle, WatchOptions } from "./shared-types.js";
13
+ /**
14
+ * Default chokidar `awaitWriteFinish` stability threshold (ms). Exported so the
15
+ * rclone process manager can reuse the same write-stabilization concept when
16
+ * gating a flush on a quiescent mount.
17
+ */
18
+ export declare const DEFAULT_DEBOUNCE_MS = 150;
13
19
  /**
14
20
  * Create a cross-platform filesystem watcher on `rootDir` using chokidar.
15
21
  * Auto-reads `.gitignore` from `rootDir` and merges those patterns into the ignore list.
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../connectors/src/watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AA6HnE;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,EAC/C,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,WAAW,CAAC,CA0CtB"}
1
+ {"version":3,"file":"watcher.d.ts","sourceRoot":"","sources":["../../../connectors/src/watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AASH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAoEnE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,MAAM,CAAC;AAyDvC;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,EAC/C,OAAO,CAAC,EAAE,YAAY,GACrB,OAAO,CAAC,WAAW,CAAC,CA0CtB"}
@@ -1,10 +1,10 @@
1
- export { ALL_PROVIDERS, SETTINGS_DEFAULTS, WorkspaceYamlEditor, applyPatch, buildLockFile, computeHash, detectEnvApiKeys, extractForPatch, generatePatch, globalSettingsPath, listPatches, loadSettings, mapLegacyFields, maskApiKey, migrateSettings, portableSpawn, portableSpawnSync, projectSettingsPath, providerEnvKey, readLock, readPatch, readPluginsLockSlice, resolveAllKeys, resolveApiKey, resolveSettings, savePatch, saveSettings, verifyLock, walkForSettings, writeLock, writePluginsLockSlice } from '../chunk-ETMUGBHF.js';
1
+ export { ALL_PROVIDERS, SETTINGS_DEFAULTS, WorkspaceYamlEditor, applyPatch, buildLockFile, computeHash, detectEnvApiKeys, extractForPatch, generatePatch, globalSettingsPath, listPatches, loadSettings, mapLegacyFields, maskApiKey, migrateSettings, portableSpawn, portableSpawnSync, projectSettingsPath, providerEnvKey, readLock, readPatch, readPluginsLockSlice, resolveAllKeys, resolveApiKey, resolveSettings, savePatch, saveSettings, verifyLock, walkForSettings, writeLock, writePluginsLockSlice } from '../chunk-Z3M5K67G.js';
2
2
  export { DRIVER_DEFAULTS, resolveDriverPaths } from '../chunk-K5GBV4SA.js';
3
3
  export { detectAiResources, detectDomains, detectMonorepoRoot } from '../chunk-KLNL7QHN.js';
4
- export { BASE_ASSETS_REPO_NAME, resolveBaseAssetsRoot, resolveRuntimeAssets } from '../chunk-PFOXL4SH.js';
5
- export { COMPACTION_DEFAULTS, CanonicalRefConflictError, DEFAULT_RECIPE_ATTR, SK_WORKSPACE_DEFAULT_NAME, SK_WORKSPACE_SUFFIX, buildProvenanceIndex, checkRepoStatus, checkoutPin, cloneRepo, decodeSkaileYaml, encodeSkaileYaml, ensureRepo, findWorkspaceRoot, getGlobalCacheDir, getRepoCommit, linkRepo, listSkWorkspaceConfigs, loadMcpServerDeclarations, loadSkWorkspaceConfig, mergeSkWorkspaceConfigs, normalizeConfig, pullRepo, readLinks, resolveAgentDir, resolveAll, resolveAsset, resolveSkWorkspaceConfig, saveSkWorkspaceConfig, scanRepo, unlinkRepo, validateAssetRecipeAttr, validateAssetRecipeFlake, workspaceConfigFilename, writeLinks } from '../chunk-V5TBKO5Q.js';
6
- export { bundleDepRefs, fromAgentMd, fromAgentYaml, fromBundleYaml, fromConnectorMd, fromContractMd, fromFlowYaml, fromMcpServerMd, fromPromptMd, fromSkillMd, parseFrontmatter, parseRequires, scanDirectory, walkDir } from '../chunk-K7WPR77X.js';
7
- export { ASSET_KINDS, INDIVIDUAL_KINDS, assetRefToDep, assetRefToStr, depToStr, entryFromRaw, entryToRaw, parseAssetRef, parseDep, repositoryFromRaw, repositoryToRaw } from '../chunk-VUCPJBAG.js';
4
+ export { BASE_ASSETS_REPO_NAME, resolveBaseAssetsRoot, resolveRuntimeAssets } from '../chunk-5ESCS2OS.js';
5
+ export { COMPACTION_DEFAULTS, CanonicalRefConflictError, DEFAULT_RECIPE_ATTR, SK_WORKSPACE_DEFAULT_NAME, SK_WORKSPACE_SUFFIX, buildProvenanceIndex, checkRepoStatus, checkoutPin, cloneRepo, decodeSkaileYaml, encodeSkaileYaml, ensureRepo, findWorkspaceRoot, getGlobalCacheDir, getRepoCommit, linkRepo, listSkWorkspaceConfigs, loadMcpServerDeclarations, loadSkWorkspaceConfig, mergeSkWorkspaceConfigs, normalizeConfig, pullRepo, readLinks, resolveAgentDir, resolveAll, resolveAsset, resolveSkWorkspaceConfig, saveSkWorkspaceConfig, scanRepo, unlinkRepo, validateAssetRecipeAttr, validateAssetRecipeFlake, workspaceConfigFilename, writeLinks } from '../chunk-542K7SR6.js';
6
+ export { bundleDepRefs, fromAgentMd, fromAgentYaml, fromBundleYaml, fromConnectorMd, fromContractMd, fromFlowYaml, fromMcpServerMd, fromPromptMd, fromSkillMd, parseFrontmatter, parseRequires, scanDirectory, walkDir } from '../chunk-DH4N5AW4.js';
7
+ export { ASSET_KINDS, INDIVIDUAL_KINDS, assetRefToDep, assetRefToStr, depToStr, entryFromRaw, entryToRaw, parseAssetRef, parseDep, repositoryFromRaw, repositoryToRaw } from '../chunk-YX3UWPJ5.js';
8
8
  export { deployedBase, deployedDir, isDeployed } from '../chunk-JKNWJ64A.js';
9
9
  export { DRIVER_TARGETS, SUPPORTED_DRIVER_TARGETS } from '../chunk-O4JH3KUE.js';
10
10
  export { LogStore, LogStoreDisabledError, NoOpSink, OnLogBridgeSink, SqliteSink, StdoutSink, WsLogSink, createLogStoreFromConfig, createLogger, getLogStore, normalizeError, openSqlite, registerLogStore, resetLogStore, resolveLogStoreConfig, sanitizeData } from '../chunk-24UIWON4.js';
@@ -1,5 +1,5 @@
1
- export { bundleDepRefs, fromAgentMd, fromAgentYaml, fromBundleYaml, fromConnectorMd, fromContractMd, fromFlowYaml, fromKnowledgeYaml, fromMcpServerMd, fromPromptMd, fromSkillMd, parseFrontmatter, parseRequires, scanDirectory, walkDir } from '../chunk-K7WPR77X.js';
2
- import '../chunk-VUCPJBAG.js';
1
+ export { bundleDepRefs, fromAgentMd, fromAgentYaml, fromBundleYaml, fromConnectorMd, fromContractMd, fromFlowYaml, fromKnowledgeYaml, fromMcpServerMd, fromPromptMd, fromSkillMd, parseFrontmatter, parseRequires, scanDirectory, walkDir } from '../chunk-DH4N5AW4.js';
2
+ import '../chunk-YX3UWPJ5.js';
3
3
  import '../chunk-NSBPE2FW.js';
4
4
  //# sourceMappingURL=manifest.js.map
5
5
  //# sourceMappingURL=manifest.js.map
@@ -1,4 +1,4 @@
1
- export { ASSET_KINDS, INDIVIDUAL_KINDS, assetRefToDep, assetRefToStr, depToStr, entryFromRaw, entryToRaw, parseAssetRef, parseDep, repositoryFromRaw, repositoryToRaw } from '../chunk-VUCPJBAG.js';
1
+ export { ASSET_KINDS, INDIVIDUAL_KINDS, assetRefToDep, assetRefToStr, depToStr, entryFromRaw, entryToRaw, parseAssetRef, parseDep, repositoryFromRaw, repositoryToRaw } from '../chunk-YX3UWPJ5.js';
2
2
  import '../chunk-NSBPE2FW.js';
3
3
  //# sourceMappingURL=models.js.map
4
4
  //# sourceMappingURL=models.js.map
@@ -1,7 +1,7 @@
1
- export { BASE_ASSETS_REPO_NAME, resolveBaseAssetsRoot, resolveRuntimeAssets } from '../chunk-PFOXL4SH.js';
2
- import '../chunk-V5TBKO5Q.js';
3
- import '../chunk-K7WPR77X.js';
4
- import '../chunk-VUCPJBAG.js';
1
+ export { BASE_ASSETS_REPO_NAME, resolveBaseAssetsRoot, resolveRuntimeAssets } from '../chunk-5ESCS2OS.js';
2
+ import '../chunk-542K7SR6.js';
3
+ import '../chunk-DH4N5AW4.js';
4
+ import '../chunk-YX3UWPJ5.js';
5
5
  import '../chunk-NSBPE2FW.js';
6
6
  //# sourceMappingURL=runtime-assets.js.map
7
7
  //# sourceMappingURL=runtime-assets.js.map
@@ -1,8 +1,8 @@
1
1
  /**
2
- * Lock file I/O and integrity verification (schema v2).
2
+ * Lock file I/O and integrity verification (schema v3).
3
3
  *
4
4
  * The lock file (skaile.lock.yaml) captures the complete resolved state: every
5
- * asset keyed by its canonical ref `<publisher>/<kind>:<name>@<version>`, the
5
+ * asset keyed by its canonical ref `<kind>:@<publisher>/<name>#<version>`, the
6
6
  * upstream source + commit it resolved from, a per-file + composite content
7
7
  * hash for drift detection, and whether an `overrides[]` entry pinned it. A
8
8
  * top-level `sources:` block records every contributing source URL at its
@@ -48,9 +48,9 @@ export declare function compositeHash(files: Array<{
48
48
  sha256: string;
49
49
  }>): string;
50
50
  /**
51
- * Build a v2 `LockFile` from the resolver's output.
51
+ * Build a v3 `LockFile` from the resolver's output.
52
52
  *
53
- * Assets are keyed by canonical ref `<publisher>/<kind>:<name>@<version>`; the
53
+ * Assets are keyed by canonical ref `<kind>:@<publisher>/<name>#<version>`; the
54
54
  * top-level `sources:` block lists every contributing source URL pinned to its
55
55
  * resolved commit.
56
56
  *
@@ -73,8 +73,8 @@ export declare function buildLockFile(resolved: ProvenanceCandidate[], overrides
73
73
  export declare function readPluginsLockSlice(projectDir: string): Record<string, LockPluginEntry> | undefined;
74
74
  /**
75
75
  * Merge a `plugins` slice into a project's `skaile.lock.yaml`, preserving all
76
- * other fields. Creates a minimal v2 lock file when none exists (or the
77
- * existing one is a legacy v1 that can't be read).
76
+ * other fields. Creates a minimal v3 lock file when none exists (or the
77
+ * existing one is an outdated schema that can't be read).
78
78
  *
79
79
  * @param projectDir - Project root containing `skaile.lock.yaml`
80
80
  * @param slice - The `plugins` record to persist
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../core/src/manifest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAa,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKvE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAUhE;AASD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,EAAE,CAUzE;AAID;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAe5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAY5E;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CA0F9E;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAa7E;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAmB7E;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAqB/E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAY/E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CA8BhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAelF;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAqBhF;AAID,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;GASG;AACH,wBAAiB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAoB1D;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CA+B5E"}
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../core/src/manifest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAa,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKvE;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,yEAAyE;IACzE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,2DAA2D;IAC3D,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAUhE;AASD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU,EAAE,CAUzE;AAID;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAe5E;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAY5E;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAkG9E;AAED;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAa7E;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAmB7E;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAqB/E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAkBxD;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAY/E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CA8BhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAelF;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,CAqBhF;AAID,UAAU,SAAS;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;GASG;AACH,wBAAiB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC,SAAS,CAAC,CAoB1D;AAID;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CA+B5E"}
@@ -103,7 +103,7 @@ export declare function entryFromRaw(d: Record<string, unknown>): CatalogEntry;
103
103
  */
104
104
  export declare function entryToRaw(e: CatalogEntry): Record<string, unknown>;
105
105
  /**
106
- * A parsed asset reference: `kind:name@<publisher>[#pin]`.
106
+ * A parsed asset reference: `kind:@<publisher>/name[#pin]`.
107
107
  *
108
108
  * `publisher` is the canonical, GitHub-shaped publisher namespace (≤39 chars,
109
109
  * alphanumeric+hyphen). `pin` is a SemVer constraint, exact SHA, or absent.
@@ -124,29 +124,36 @@ export interface AssetRef {
124
124
  /**
125
125
  * Parse a canonical asset reference string into an `AssetRef` object.
126
126
  *
127
- * Grammar: `kind:name@<publisher>[#pin]`
128
- * "skill:audit@skaile-ai" → { kind: "skill", name: "audit", publisher: "skaile-ai" }
129
- * "skill:audit@skaile-ai#^1.4.0" → { …, pin: "^1.4.0" }
130
- * "skill:audit@skaile-ai#<40-sha>" → { …, pin: "<40-sha>" }
127
+ * Grammar: `kind:@<publisher>/name[#version]`
128
+ * "skill:@skaile-ai/audit" → { kind: "skill", name: "audit", publisher: "skaile-ai" }
129
+ * "skill:@skaile-ai/audit#^1.4.0" → { …, pin: "^1.4.0" }
130
+ * "skill:@skaile-ai/audit#<40-sha>" → { …, pin: "<40-sha>" }
131
131
  *
132
- * `<publisher>` is required and GitHub-shaped (≤39 chars, alphanumeric+hyphen,
133
- * no leading/trailing or double hyphen). `pin` accepts a SemVer constraint
134
- * (`^`, `~`, `x`, exact), a 40-char SHA, or is absent. Floating refs
135
- * (`main`/`latest`/`HEAD`/anything non-canonical) are parse-time errors.
132
+ * `@` is the scope sigil and `#` the version sigil. `<publisher>` is GitHub-shaped
133
+ * (≤39 chars, alphanumeric+hyphen, no leading/trailing or double hyphen). `pin`
134
+ * accepts a SemVer constraint (`^`, `~`, `x`, exact), a 40-char SHA, or is absent.
135
+ * Floating refs (`main`/`latest`/`HEAD`/anything non-canonical) are parse-time errors.
136
136
  *
137
- * The shorthand `mcp:` is normalized to `mcp-server:`.
137
+ * The shorthand `mcp:` is normalized to `mcp-server:`. `kind` defaults to `"skill"`.
138
+ *
139
+ * During the deprecation window the legacy `kind:name@publisher[#pin]` and trailing
140
+ * `@version` shapes still parse, each emitting a one-time deprecation warning.
138
141
  *
139
142
  * @param s - Asset reference string
140
143
  * @returns Parsed `AssetRef`
141
- * @throws When the publisher is missing/malformed or the pin is a floating ref.
144
+ * @throws When the ref matches no grammar, the publisher is malformed, or the pin
145
+ * is a floating ref.
142
146
  * @docLink packages/core/concepts#parse-asset-ref
143
147
  */
144
148
  export declare function parseAssetRef(s: string): AssetRef;
145
149
  /**
146
150
  * Serialize an AssetRef back to its canonical string form.
147
151
  *
152
+ * Emits the scope form `kind:@publisher/name[#pin]` when `publisher` is present,
153
+ * and the bare `kind:name[#pin]` form for transitive refs that inherit it.
154
+ *
148
155
  * @param ref - AssetRef to serialize
149
- * @returns String in `"kind:name[@repository][#pin]"` format
156
+ * @returns String in `"kind:@publisher/name[#pin]"` (or bare `"kind:name[#pin]"`) format
150
157
  * @docLink packages/core/concepts#asset-ref-to-str
151
158
  */
152
159
  export declare function assetRefToStr(ref: AssetRef): string;
@@ -164,8 +171,8 @@ export interface LockFileEntry {
164
171
  sha256: string;
165
172
  }
166
173
  /**
167
- * Per-asset entry in the lock file (v2 schema).
168
- * Keyed in `LockFile.assets` by canonical ref (`<publisher>/<kind>:<name>@<version>`).
174
+ * Per-asset entry in the lock file (v3 schema).
175
+ * Keyed in `LockFile.assets` by canonical ref (`<kind>:@<publisher>/<name>#<version>`).
169
176
  * @docLink packages/core/api-reference#lock-entry
170
177
  */
171
178
  export interface LockEntry {
@@ -187,15 +194,15 @@ export interface LockSourceEntry {
187
194
  commit: string;
188
195
  }
189
196
  /**
190
- * Full skaile.lock.yaml structure (v2 schema).
197
+ * Full skaile.lock.yaml structure (v3 schema).
191
198
  * @docLink packages/core/api-reference#lock-file
192
199
  */
193
200
  export interface LockFile {
194
- /** Lock file schema version. v2 is canonical. */
195
- schema_version: 2;
201
+ /** Lock file schema version. v3 is canonical. */
202
+ schema_version: 3;
196
203
  /** ISO timestamp of when the lock was generated. */
197
204
  locked_at: string;
198
- /** Resolved assets keyed by canonical ref `<publisher>/<kind>:<name>@<version>`. */
205
+ /** Resolved assets keyed by canonical ref `<kind>:@<publisher>/<name>#<version>`. */
199
206
  assets: Record<string, LockEntry>;
200
207
  /** Every source URL that contributed at least one resolved asset. */
201
208
  sources: LockSourceEntry[];
@@ -1 +1 @@
1
- {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../core/src/models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../../core/src/models.ts"],"names":[],"mappings":"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"}
@@ -141,8 +141,14 @@ export declare function repoSlugFromGitRemote(rootDir: string): string | undefin
141
141
  * derived once from the root's git remote onto every entry (the GitHub
142
142
  * coordinate is a property of the scanned root, not of individual assets).
143
143
  *
144
+ * The `publisher` field is overridden with the source's declared canonical
145
+ * publisher (`skaile.yaml` `publisher` / GitHub org) so refs emitted from
146
+ * filename-convention scans match the provenance index `resolveAll` builds.
147
+ * Without this, a source whose declared publisher differs from its config slug
148
+ * yields refs (`name@<slug>`) that resolution can't find (`name@<publisher>`).
149
+ *
144
150
  * @param repoDir - Absolute path to the repository root
145
- * @param repoName - Repository name attached to each produced entry
151
+ * @param repoName - Repository config key; fallback publisher and `repository` field
146
152
  * @returns Array of `CatalogEntry` objects found in the repository
147
153
  * @docLink packages/core/api-reference#scan-repo
148
154
  */
@@ -232,7 +238,7 @@ export interface ResolveOpts {
232
238
  * cross-check runs when both a source and a store produced a candidate at the
233
239
  * chosen version.
234
240
  *
235
- * @param deps - Top-level canonical asset ref strings (`kind:name@<publisher>[#pin]`).
241
+ * @param deps - Top-level canonical asset ref strings (`kind:@<publisher>/name[#pin]`).
236
242
  * @param opts - Provenance index, overrides, stores, and an optional store fetcher.
237
243
  * @returns `ResolveResult` with resolved candidates, missing refs, provenance map, applied overrides.
238
244
  * @docLink packages/core/api-reference#resolve-all
@@ -1 +1 @@
1
- {"version":3,"file":"repo-manager.d.ts","sourceRoot":"","sources":["../../../core/src/repo-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"repo-manager.d.ts","sourceRoot":"","sources":["../../../core/src/repo-manager.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- export { COMPACTION_DEFAULTS, DEFAULT_RECIPE_ATTR, SKAILE_YAML_DEFAULT, SKAILE_YAML_SUFFIX, SK_WORKSPACE_DEFAULT_NAME, SK_WORKSPACE_SUFFIX, decodeSkaileYaml, encodeSkaileYaml, findWorkspaceRoot, isWorkspaceConfigFilename, listSkWorkspaceConfigs, loadMcpServerDeclarations, loadSkWorkspaceConfig, mergeSkWorkspaceConfigs, normalizeConfig, resolveAgentDir, resolveSkWorkspaceConfig, saveSkWorkspaceConfig, validateAssetRecipeAttr, validateAssetRecipeFlake, workspaceConfigFilename, workspaceNameFromFilename } from '../chunk-V5TBKO5Q.js';
2
- import '../chunk-K7WPR77X.js';
3
- import '../chunk-VUCPJBAG.js';
1
+ export { COMPACTION_DEFAULTS, DEFAULT_RECIPE_ATTR, SKAILE_YAML_DEFAULT, SKAILE_YAML_SUFFIX, SK_WORKSPACE_DEFAULT_NAME, SK_WORKSPACE_SUFFIX, decodeSkaileYaml, encodeSkaileYaml, findWorkspaceRoot, isWorkspaceConfigFilename, listSkWorkspaceConfigs, loadMcpServerDeclarations, loadSkWorkspaceConfig, mergeSkWorkspaceConfigs, normalizeConfig, resolveAgentDir, resolveSkWorkspaceConfig, saveSkWorkspaceConfig, validateAssetRecipeAttr, validateAssetRecipeFlake, workspaceConfigFilename, workspaceNameFromFilename } from '../chunk-542K7SR6.js';
2
+ import '../chunk-DH4N5AW4.js';
3
+ import '../chunk-YX3UWPJ5.js';
4
4
  import '../chunk-NSBPE2FW.js';
5
5
  //# sourceMappingURL=workspace-config.js.map
6
6
  //# sourceMappingURL=workspace-config.js.map
@@ -1,11 +1,11 @@
1
1
  import { pluginRegistry } from '../chunk-6E6PKKAD.js';
2
- import { portableSpawnSync, portableSpawn } from '../chunk-ETMUGBHF.js';
2
+ import { portableSpawnSync, portableSpawn } from '../chunk-Z3M5K67G.js';
3
3
  import '../chunk-K5GBV4SA.js';
4
4
  import '../chunk-KLNL7QHN.js';
5
- import '../chunk-PFOXL4SH.js';
6
- import '../chunk-V5TBKO5Q.js';
7
- import '../chunk-K7WPR77X.js';
8
- import '../chunk-VUCPJBAG.js';
5
+ import '../chunk-5ESCS2OS.js';
6
+ import '../chunk-542K7SR6.js';
7
+ import '../chunk-DH4N5AW4.js';
8
+ import '../chunk-YX3UWPJ5.js';
9
9
  import '../chunk-JKNWJ64A.js';
10
10
  import '../chunk-O4JH3KUE.js';
11
11
  import '../chunk-24UIWON4.js';
@@ -1,7 +1,7 @@
1
- export { AssetKindRegistry, BUILTIN_PROVIDERS, SEMVER_RE, SourceConfigSchema, VERSION, agentProvider, buildRequiresGraph, computeDeterministicHash, computeDeterministicHashDetailed, connectorProvider, contractProvider, createDefaultRegistry, detectCycles, discoverAssetsInTree, discoverAssetsInTreeEntries, discoverFromManifest, extractRequires, isExcludedDevPath, isManifestMode, loadMergedSourceConfig, loadSourceConfig, mcpServerProvider, mergeSourceConfigs, parseSourceConfig, personaProvider, presetProvider, promptProvider, rulesetProvider, skillProvider, validateSourceConfig } from '../chunk-JN2CUVSU.js';
1
+ export { AssetKindRegistry, BUILTIN_PROVIDERS, SEMVER_RE, SourceConfigSchema, VERSION, agentProvider, buildRequiresGraph, computeDeterministicHash, computeDeterministicHashDetailed, connectorProvider, contractProvider, createDefaultRegistry, detectCycles, discoverAssetsInTree, discoverAssetsInTreeEntries, discoverFromManifest, extractRequires, isExcludedDevPath, isManifestMode, loadMergedSourceConfig, loadSourceConfig, mcpServerProvider, mergeSourceConfigs, parseSourceConfig, personaProvider, presetProvider, promptProvider, rulesetProvider, skillProvider, validateSourceConfig } from '../chunk-LJ52ZKIU.js';
2
2
  import '../chunk-OKRUTSG7.js';
3
- import '../chunk-K7WPR77X.js';
4
- import '../chunk-VUCPJBAG.js';
3
+ import '../chunk-DH4N5AW4.js';
4
+ import '../chunk-YX3UWPJ5.js';
5
5
  import '../chunk-NELZIQ2E.js';
6
6
  import '../chunk-NSBPE2FW.js';
7
7
  //# sourceMappingURL=index.js.map
@@ -1,15 +1,15 @@
1
- import { logErr, logOk, logInfo } from './chunk-4NDWKA64.js';
2
- import { skaileHomeDir } from './chunk-MNAHNDUI.js';
1
+ import { logErr, logOk, logInfo } from './chunk-WSZAFRQL.js';
2
+ import { skaileHomeDir } from './chunk-2F3RUZXC.js';
3
3
  import './chunk-R7FOF242.js';
4
- import './chunk-JN2CUVSU.js';
4
+ import './chunk-LJ52ZKIU.js';
5
5
  import './chunk-OKRUTSG7.js';
6
- import { WorkspaceYamlEditor } from './chunk-ETMUGBHF.js';
6
+ import { WorkspaceYamlEditor } from './chunk-Z3M5K67G.js';
7
7
  import './chunk-K5GBV4SA.js';
8
8
  import './chunk-KLNL7QHN.js';
9
- import './chunk-PFOXL4SH.js';
10
- import './chunk-V5TBKO5Q.js';
11
- import './chunk-K7WPR77X.js';
12
- import './chunk-VUCPJBAG.js';
9
+ import './chunk-5ESCS2OS.js';
10
+ import './chunk-542K7SR6.js';
11
+ import './chunk-DH4N5AW4.js';
12
+ import './chunk-YX3UWPJ5.js';
13
13
  import './chunk-JKNWJ64A.js';
14
14
  import './chunk-O4JH3KUE.js';
15
15
  import './chunk-24UIWON4.js';
@@ -68,5 +68,5 @@ function ensureSourcesCloned(projectDir, opts = {}) {
68
68
  }
69
69
 
70
70
  export { ensureSourcesCloned };
71
- //# sourceMappingURL=ensure-sources-REWWBH2K.js.map
72
- //# sourceMappingURL=ensure-sources-REWWBH2K.js.map
71
+ //# sourceMappingURL=ensure-sources-OJUBGX6Z.js.map
72
+ //# sourceMappingURL=ensure-sources-OJUBGX6Z.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../cli/src/ensure-sources.ts"],"names":[],"mappings":"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","file":"ensure-sources-REWWBH2K.js","sourcesContent":["/**\n * ensure-sources.ts — hydrate the `~/.skaile/sources/` clone cache from a\n * project's `skaile.yaml` `sources:` entries.\n *\n * Called by `skaile init` (idempotent: no-op when no sources declared) and\n * `skaile install` so checking out a project pulls its source clones onto\n * the local machine.\n */\n\nimport { spawnSync } from \"node:child_process\";\nimport { existsSync } from \"node:fs\";\nimport * as path from \"node:path\";\nimport { type SourceEntry, WorkspaceYamlEditor } from \"@skaile/workspaces/core\";\nimport { skaileHomeDir } from \"@skaile/workspaces/library\";\nimport { logErr, logInfo, logOk } from \"./helpers.ts\";\n\nfunction sourceClonePath(slug: string): string {\n return path.join(skaileHomeDir(), \"sources\", slug);\n}\n\n/** Derive a cache slug from a source git URL. */\nfunction deriveSlug(url: string): string {\n return (\n url\n .replace(/\\.git$/, \"\")\n .split(/[/:]/)\n .pop() ?? \"source\"\n );\n}\n\nexport interface EnsureResult {\n cloned: string[];\n cached: string[];\n failed: string[];\n}\n\n/**\n * Walk `projectDir/skaile.yaml` `sources:` and clone any entries whose\n * clone directory does not yet exist under `~/.skaile/sources/`. Existing\n * clones are left untouched — this is hydration, not sync.\n *\n * Quiet by default: when `quiet: true` the helper only prints failures.\n * On full hydrate (`quiet: false`) it logs each cloned/cached entry.\n */\nexport function ensureSourcesCloned(\n projectDir: string,\n opts: { quiet?: boolean } = {},\n): EnsureResult {\n const result: EnsureResult = { cloned: [], cached: [], failed: [] };\n const yamlPath = path.join(projectDir, \"skaile.yaml\");\n if (!existsSync(yamlPath)) return result;\n\n let sources: SourceEntry[];\n try {\n sources = WorkspaceYamlEditor.load(yamlPath).getSources();\n } catch (err) {\n if (!opts.quiet) {\n logErr(`Could not read ${yamlPath}: ${err instanceof Error ? err.message : String(err)}`);\n }\n return result;\n }\n if (sources.length === 0) return result;\n\n for (const entry of sources) {\n const slug = deriveSlug(entry.url);\n const dest = sourceClonePath(slug);\n if (existsSync(dest)) {\n result.cached.push(slug);\n continue;\n }\n const args = [\"clone\", entry.url, dest];\n if (entry.pin) args.splice(1, 0, \"--branch\", entry.pin);\n const clone = spawnSync(\"git\", args, { stdio: opts.quiet ? \"pipe\" : \"inherit\" });\n if (clone.status !== 0) {\n result.failed.push(slug);\n if (opts.quiet) {\n logErr(`git clone failed for ${entry.url}`);\n }\n continue;\n }\n result.cloned.push(slug);\n }\n\n if (!opts.quiet) {\n for (const n of result.cloned) logOk(`Cloned source \"${n}\".`);\n if (result.cached.length > 0) {\n logInfo(`Reused cached clones: ${result.cached.join(\", \")}`);\n }\n }\n\n return result;\n}\n"]}
1
+ {"version":3,"sources":["../cli/src/ensure-sources.ts"],"names":[],"mappings":"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","file":"ensure-sources-OJUBGX6Z.js","sourcesContent":["/**\n * ensure-sources.ts — hydrate the `~/.skaile/sources/` clone cache from a\n * project's `skaile.yaml` `sources:` entries.\n *\n * Called by `skaile init` (idempotent: no-op when no sources declared) and\n * `skaile install` so checking out a project pulls its source clones onto\n * the local machine.\n */\n\nimport { spawnSync } from \"node:child_process\";\nimport { existsSync } from \"node:fs\";\nimport * as path from \"node:path\";\nimport { type SourceEntry, WorkspaceYamlEditor } from \"@skaile/workspaces/core\";\nimport { skaileHomeDir } from \"@skaile/workspaces/library\";\nimport { logErr, logInfo, logOk } from \"./helpers.ts\";\n\nfunction sourceClonePath(slug: string): string {\n return path.join(skaileHomeDir(), \"sources\", slug);\n}\n\n/** Derive a cache slug from a source git URL. */\nfunction deriveSlug(url: string): string {\n return (\n url\n .replace(/\\.git$/, \"\")\n .split(/[/:]/)\n .pop() ?? \"source\"\n );\n}\n\nexport interface EnsureResult {\n cloned: string[];\n cached: string[];\n failed: string[];\n}\n\n/**\n * Walk `projectDir/skaile.yaml` `sources:` and clone any entries whose\n * clone directory does not yet exist under `~/.skaile/sources/`. Existing\n * clones are left untouched — this is hydration, not sync.\n *\n * Quiet by default: when `quiet: true` the helper only prints failures.\n * On full hydrate (`quiet: false`) it logs each cloned/cached entry.\n */\nexport function ensureSourcesCloned(\n projectDir: string,\n opts: { quiet?: boolean } = {},\n): EnsureResult {\n const result: EnsureResult = { cloned: [], cached: [], failed: [] };\n const yamlPath = path.join(projectDir, \"skaile.yaml\");\n if (!existsSync(yamlPath)) return result;\n\n let sources: SourceEntry[];\n try {\n sources = WorkspaceYamlEditor.load(yamlPath).getSources();\n } catch (err) {\n if (!opts.quiet) {\n logErr(`Could not read ${yamlPath}: ${err instanceof Error ? err.message : String(err)}`);\n }\n return result;\n }\n if (sources.length === 0) return result;\n\n for (const entry of sources) {\n const slug = deriveSlug(entry.url);\n const dest = sourceClonePath(slug);\n if (existsSync(dest)) {\n result.cached.push(slug);\n continue;\n }\n const args = [\"clone\", entry.url, dest];\n if (entry.pin) args.splice(1, 0, \"--branch\", entry.pin);\n const clone = spawnSync(\"git\", args, { stdio: opts.quiet ? \"pipe\" : \"inherit\" });\n if (clone.status !== 0) {\n result.failed.push(slug);\n if (opts.quiet) {\n logErr(`git clone failed for ${entry.url}`);\n }\n continue;\n }\n result.cloned.push(slug);\n }\n\n if (!opts.quiet) {\n for (const n of result.cloned) logOk(`Cloned source \"${n}\".`);\n if (result.cached.length > 0) {\n logInfo(`Reused cached clones: ${result.cached.join(\", \")}`);\n }\n }\n\n return result;\n}\n"]}