@skaile/workspaces 4.9.2 → 4.9.3

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 (136) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{asset-feeds-ZKMRNVV2.js → asset-feeds-74HE5Q7W.js} +5 -5
  3. package/dist/{asset-feeds-ZKMRNVV2.js.map → asset-feeds-74HE5Q7W.js.map} +1 -1
  4. package/dist/asset-manager/catalog-deployer.js +1 -1
  5. package/dist/asset-manager/index.js +2 -2
  6. package/dist/asset-manager/installer.js +1 -1
  7. package/dist/bridge/drivers/claude-sdk.js +3 -3
  8. package/dist/bridge/drivers/codex.js +4 -4
  9. package/dist/bridge/drivers/continue.js +3 -3
  10. package/dist/bridge/drivers/echo.js +2 -2
  11. package/dist/bridge/drivers/gemini.js +5 -5
  12. package/dist/bridge/drivers/goose.js +3 -3
  13. package/dist/bridge/drivers/omp.js +2 -2
  14. package/dist/bridge/drivers/opencode.js +3 -3
  15. package/dist/bridge/drivers/qwen.js +5 -5
  16. package/dist/bridge/index.js +4 -4
  17. package/dist/{chunk-45LLHKQ2.js → chunk-2HUQUTJ3.js} +3 -3
  18. package/dist/{chunk-45LLHKQ2.js.map → chunk-2HUQUTJ3.js.map} +1 -1
  19. package/dist/{chunk-TLMDSUEL.js → chunk-2KVFAWUA.js} +3 -3
  20. package/dist/{chunk-TLMDSUEL.js.map → chunk-2KVFAWUA.js.map} +1 -1
  21. package/dist/{chunk-FTG7CRFD.js → chunk-3HKYCT2M.js} +69 -6
  22. package/dist/chunk-3HKYCT2M.js.map +1 -0
  23. package/dist/{chunk-OZAF24OQ.js → chunk-6L2WH2LS.js} +6 -6
  24. package/dist/{chunk-OZAF24OQ.js.map → chunk-6L2WH2LS.js.map} +1 -1
  25. package/dist/{chunk-5OZVZI2E.js → chunk-7ZWLVXQN.js} +2 -2
  26. package/dist/{chunk-5OZVZI2E.js.map → chunk-7ZWLVXQN.js.map} +1 -1
  27. package/dist/{chunk-5VKBD3QV.js → chunk-FTSXFA7P.js} +5 -5
  28. package/dist/{chunk-5VKBD3QV.js.map → chunk-FTSXFA7P.js.map} +1 -1
  29. package/dist/{chunk-5YB4GYMB.js → chunk-JU736VOI.js} +5 -5
  30. package/dist/{chunk-5YB4GYMB.js.map → chunk-JU736VOI.js.map} +1 -1
  31. package/dist/{chunk-NHZR3NVY.js → chunk-KQTMJP3X.js} +3 -3
  32. package/dist/{chunk-NHZR3NVY.js.map → chunk-KQTMJP3X.js.map} +1 -1
  33. package/dist/{chunk-QBH7PC4D.js → chunk-LDQB5VEC.js} +2 -2
  34. package/dist/{chunk-QBH7PC4D.js.map → chunk-LDQB5VEC.js.map} +1 -1
  35. package/dist/{chunk-X5VZOIAP.js → chunk-LMS54WVA.js} +3 -3
  36. package/dist/{chunk-X5VZOIAP.js.map → chunk-LMS54WVA.js.map} +1 -1
  37. package/dist/{chunk-6YIFJW2I.js → chunk-LN4M7WMX.js} +88 -67
  38. package/dist/chunk-LN4M7WMX.js.map +1 -0
  39. package/dist/{chunk-XJLB4OH2.js → chunk-O33RRDO5.js} +2 -2
  40. package/dist/{chunk-XJLB4OH2.js.map → chunk-O33RRDO5.js.map} +1 -1
  41. package/dist/{chunk-TAHJRTAD.js → chunk-RL7O3OZQ.js} +4 -4
  42. package/dist/{chunk-TAHJRTAD.js.map → chunk-RL7O3OZQ.js.map} +1 -1
  43. package/dist/{chunk-6QMWCPME.js → chunk-VLRP35H4.js} +6 -6
  44. package/dist/{chunk-6QMWCPME.js.map → chunk-VLRP35H4.js.map} +1 -1
  45. package/dist/{chunk-DB6H7M5O.js → chunk-WPW5XS6I.js} +2 -2
  46. package/dist/{chunk-DB6H7M5O.js.map → chunk-WPW5XS6I.js.map} +1 -1
  47. package/dist/{chunk-BZBRCPEB.js → chunk-WXECUQC6.js} +3 -3
  48. package/dist/{chunk-BZBRCPEB.js.map → chunk-WXECUQC6.js.map} +1 -1
  49. package/dist/{chunk-CJCZIWW6.js → chunk-XEWX4V7T.js} +3 -3
  50. package/dist/{chunk-CJCZIWW6.js.map → chunk-XEWX4V7T.js.map} +1 -1
  51. package/dist/{chunk-7ZYKHL6Y.js → chunk-XZYZOCPK.js} +3 -3
  52. package/dist/{chunk-7ZYKHL6Y.js.map → chunk-XZYZOCPK.js.map} +1 -1
  53. package/dist/{chunk-7LBL25WI.js → chunk-YCIW4YOT.js} +3 -3
  54. package/dist/{chunk-7LBL25WI.js.map → chunk-YCIW4YOT.js.map} +1 -1
  55. package/dist/{chunk-6DN6U2CK.js → chunk-ZVYWMD6Q.js} +3 -3
  56. package/dist/{chunk-6DN6U2CK.js.map → chunk-ZVYWMD6Q.js.map} +1 -1
  57. package/dist/cli/index.js +42 -42
  58. package/dist/connectors/config.js +1 -1
  59. package/dist/connectors/index.js +5 -5
  60. package/dist/core/index.js +1 -1
  61. package/dist/core/logging.js +1 -1
  62. package/dist/core/src/logging/index.d.ts +3 -1
  63. package/dist/core/src/logging/index.d.ts.map +1 -1
  64. package/dist/core/src/logging/retention.d.ts +29 -0
  65. package/dist/core/src/logging/retention.d.ts.map +1 -0
  66. package/dist/core/src/logging/sinks/sqlite-runtime.d.ts +6 -1
  67. package/dist/core/src/logging/sinks/sqlite-runtime.d.ts.map +1 -1
  68. package/dist/deploy/index.js +1 -1
  69. package/dist/{ensure-sources-FRG6HKPM.js → ensure-sources-VTIIEJBO.js} +5 -5
  70. package/dist/{ensure-sources-FRG6HKPM.js.map → ensure-sources-VTIIEJBO.js.map} +1 -1
  71. package/dist/factory-assets/connectors/box.js +5 -5
  72. package/dist/factory-assets/connectors/deploy.js +5 -5
  73. package/dist/factory-assets/connectors/devserver.js +5 -5
  74. package/dist/factory-assets/connectors/flow/adapter.js +5 -5
  75. package/dist/factory-assets/connectors/flow/engine.js +1 -1
  76. package/dist/factory-assets/connectors/flow/run-flow.js +6 -6
  77. package/dist/factory-assets/connectors/flow.js +5 -5
  78. package/dist/factory-assets/connectors/git.js +5 -5
  79. package/dist/factory-assets/connectors/gmail.js +5 -5
  80. package/dist/factory-assets/connectors/googledrive.js +5 -5
  81. package/dist/factory-assets/connectors/local.js +5 -5
  82. package/dist/factory-assets/connectors/mattermost.js +5 -5
  83. package/dist/factory-assets/connectors/memory.js +5 -5
  84. package/dist/factory-assets/connectors/minio.js +5 -5
  85. package/dist/factory-assets/connectors/postgres.js +5 -5
  86. package/dist/factory-assets/connectors/s3.js +5 -5
  87. package/dist/factory-assets/connectors/sharepoint.js +5 -5
  88. package/dist/factory-assets/connectors/sqlite.js +5 -5
  89. package/dist/factory-assets/connectors/static-server.js +5 -5
  90. package/dist/factory-assets/connectors/tunnel.js +5 -5
  91. package/dist/factory-assets/connectors/webdav.js +5 -5
  92. package/dist/factory-assets/connectors/xstate-store.js +5 -5
  93. package/dist/factory-assets/connectors/xstate.js +5 -5
  94. package/dist/{flows-377JICTL.js → flows-SYYQDDCT.js} +4 -4
  95. package/dist/{flows-377JICTL.js.map → flows-SYYQDDCT.js.map} +1 -1
  96. package/dist/{helpers-JHGUA7T7.js → helpers-JJ4OLUVW.js} +5 -5
  97. package/dist/{helpers-JHGUA7T7.js.map → helpers-JJ4OLUVW.js.map} +1 -1
  98. package/dist/library/index.js +1 -1
  99. package/dist/library/install.js +1 -1
  100. package/dist/{library-publish-CUFLZUEV.js → library-publish-IA76SB6X.js} +7 -7
  101. package/dist/{library-publish-CUFLZUEV.js.map → library-publish-IA76SB6X.js.map} +1 -1
  102. package/dist/{open-library-ZI6TWEM6.js → open-library-F24FIE65.js} +6 -6
  103. package/dist/{open-library-ZI6TWEM6.js.map → open-library-F24FIE65.js.map} +1 -1
  104. package/dist/{paths-WJUPZXFS.js → paths-NHONUGUU.js} +3 -3
  105. package/dist/{paths-WJUPZXFS.js.map → paths-NHONUGUU.js.map} +1 -1
  106. package/dist/{plugin-store-ZW4GDES3.js → plugin-store-4RALGK5S.js} +3 -3
  107. package/dist/{plugin-store-ZW4GDES3.js.map → plugin-store-4RALGK5S.js.map} +1 -1
  108. package/dist/{project-TVZ6Y6AR.js → project-OGJSXBAC.js} +6 -6
  109. package/dist/{project-TVZ6Y6AR.js.map → project-OGJSXBAC.js.map} +1 -1
  110. package/dist/resolver/index.js +1 -1
  111. package/dist/runner/index.js +11 -11
  112. package/dist/runner/src/logging-bootstrap.d.ts +11 -0
  113. package/dist/runner/src/logging-bootstrap.d.ts.map +1 -1
  114. package/dist/runner/src/serve.d.ts.map +1 -1
  115. package/dist/sdk/asset-manager.js +2 -2
  116. package/dist/sdk/bridge.js +4 -4
  117. package/dist/sdk/core.js +1 -1
  118. package/dist/sdk/flow.js +1 -1
  119. package/dist/sdk/index.js +11 -11
  120. package/dist/sdk/resolver.js +1 -1
  121. package/dist/sdk/runner.js +11 -11
  122. package/dist/{setup-54FNPLTS.js → setup-3IIIW3QM.js} +9 -9
  123. package/dist/{setup-54FNPLTS.js.map → setup-3IIIW3QM.js.map} +1 -1
  124. package/dist/{skills-J6KZ2WUT.js → skills-VUPPILR5.js} +3 -3
  125. package/dist/{skills-J6KZ2WUT.js.map → skills-VUPPILR5.js.map} +1 -1
  126. package/dist/{source-SPMRD7S2.js → source-HBEZDIWE.js} +7 -7
  127. package/dist/{source-SPMRD7S2.js.map → source-HBEZDIWE.js.map} +1 -1
  128. package/dist/{source-manifest-publish-3LSSDCSI.js → source-manifest-publish-G7ZAYFMH.js} +8 -8
  129. package/dist/{source-manifest-publish-3LSSDCSI.js.map → source-manifest-publish-G7ZAYFMH.js.map} +1 -1
  130. package/dist/tui/index.js +11 -11
  131. package/dist/workspace-plugin/adapters/mcp.js +3 -3
  132. package/dist/workspace-plugin/adapters/omp.js +7 -7
  133. package/dist/workspace-plugin/index.js +2 -2
  134. package/package.json +1 -1
  135. package/dist/chunk-6YIFJW2I.js.map +0 -1
  136. package/dist/chunk-FTG7CRFD.js.map +0 -1
package/dist/cli/index.js CHANGED
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
2
  import { AI_RESOURCES } from '../chunk-F4PCBWPB.js';
3
- import { makeInstallCommand, makeCheckCommand, makeCleanCommand, reportInstalledSoftDeps } from '../chunk-6QMWCPME.js';
4
- import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError } from '../chunk-TAHJRTAD.js';
3
+ import { makeInstallCommand, makeCheckCommand, makeCleanCommand, reportInstalledSoftDeps } from '../chunk-VLRP35H4.js';
4
+ import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError } from '../chunk-RL7O3OZQ.js';
5
5
  import { getStoreConfig, storeFetch, deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, isStoreAuthenticated, getStoreToken, getStoreIdentity } from '../chunk-S4RYZDBB.js';
6
- import { makeSourceCommand, syncProjectSources } from '../chunk-OZAF24OQ.js';
7
- import { openCatalogSource, openLibraryManager, createFullRegistry, openLibrary } from '../chunk-7ZYKHL6Y.js';
8
- import { logErr, S, logOk, logInfo, logWarn, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth } from '../chunk-TLMDSUEL.js';
6
+ import { makeSourceCommand, syncProjectSources } from '../chunk-6L2WH2LS.js';
7
+ import { openCatalogSource, openLibraryManager, createFullRegistry, openLibrary } from '../chunk-XZYZOCPK.js';
8
+ import { logErr, S, logOk, logInfo, logWarn, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth } from '../chunk-2KVFAWUA.js';
9
9
  import { LocalSecretsProvider } from '../chunk-6BEGKO2Q.js';
10
- import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-6YIFJW2I.js';
11
- import { buildClaudePluginFiles } from '../chunk-5OZVZI2E.js';
12
- import '../chunk-CJCZIWW6.js';
13
- import '../chunk-DB6H7M5O.js';
10
+ import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-LN4M7WMX.js';
11
+ import { buildClaudePluginFiles } from '../chunk-7ZWLVXQN.js';
12
+ import '../chunk-XEWX4V7T.js';
13
+ import '../chunk-WPW5XS6I.js';
14
14
  import '../chunk-FAI2SMFE.js';
15
15
  import '../chunk-7IRJ4K4F.js';
16
16
  import '../chunk-4ZTPYIBE.js';
@@ -23,22 +23,22 @@ import '../chunk-GTS2FODO.js';
23
23
  import '../chunk-73ZXUUL6.js';
24
24
  import '../chunk-32NA4TVC.js';
25
25
  import '../chunk-W3UDISS2.js';
26
- import '../chunk-45LLHKQ2.js';
27
- import { runFlow, resumeFlow } from '../chunk-BZBRCPEB.js';
26
+ import '../chunk-2HUQUTJ3.js';
27
+ import { runFlow, resumeFlow } from '../chunk-WXECUQC6.js';
28
28
  import '../chunk-4R6DROGN.js';
29
29
  import { validateFlowVersions, parseSkillFrontmatter } from '../chunk-3XXQPHGL.js';
30
30
  import '../chunk-7BUZQVRR.js';
31
31
  import '../chunk-I3UWSGEB.js';
32
- import '../chunk-5YB4GYMB.js';
32
+ import '../chunk-JU736VOI.js';
33
33
  import '../chunk-SDNGG6FB.js';
34
34
  import '../chunk-JUZJUKWM.js';
35
- import '../chunk-6DN6U2CK.js';
35
+ import '../chunk-ZVYWMD6Q.js';
36
36
  import '../chunk-OUJVFZWJ.js';
37
37
  import '../chunk-LOO5CB5M.js';
38
38
  import '../chunk-3GKBSHUG.js';
39
- import '../chunk-7LBL25WI.js';
39
+ import '../chunk-YCIW4YOT.js';
40
40
  import '../chunk-GAH4YRCI.js';
41
- import { getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-QBH7PC4D.js';
41
+ import { getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-LDQB5VEC.js';
42
42
  import '../chunk-6E6PKKAD.js';
43
43
  import '../chunk-IFGTRL2I.js';
44
44
  import { projectAiAssetsRoots, loadFlow, loadAllFlowEntries, findFlowFileInRoots } from '../chunk-AOE4KOMJ.js';
@@ -47,7 +47,7 @@ import '../chunk-REYJKU7T.js';
47
47
  import '../chunk-2D5BYAL6.js';
48
48
  import { nodeLabel, nodeSkillAsset, nodeIsInert, nodeIsOptional, nodeRunKind, flowSkillVersionPins } from '../chunk-ELPR5XBG.js';
49
49
  import '../chunk-QAH24E5U.js';
50
- import { AssetManager, NON_DEPLOYABLE_KINDS, MissingManifestError, parseRefTolerant, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-XJLB4OH2.js';
50
+ import { AssetManager, NON_DEPLOYABLE_KINDS, MissingManifestError, parseRefTolerant, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-O33RRDO5.js';
51
51
  import { getStoreManifestsDir, getDefaultValue, isSecretPlaceholder } from '../chunk-7LHSC2DS.js';
52
52
  import '../chunk-M5H4DWIA.js';
53
53
  import '../chunk-UKJMQZV6.js';
@@ -66,7 +66,7 @@ import { SUPPORTED_DRIVER_TARGETS } from '../chunk-MENCWIHW.js';
66
66
  import { SKAILE_MANIFEST_FILENAME, decodeSkaileManifest, loadSkPublishManifest, saveSkPublishManifest } from '../chunk-P4VHQA4N.js';
67
67
  import { parseFrontmatter, scanDirectory } from '../chunk-MKZOK4JU.js';
68
68
  import { parseAssetRef, ASSET_KINDS, isValidAssetName, slugifyAssetName, ASSET_NAME_HINT, assetRefToStr } from '../chunk-GEEW6SY2.js';
69
- import { openSqlite } from '../chunk-FTG7CRFD.js';
69
+ import { openSqlite } from '../chunk-3HKYCT2M.js';
70
70
  import { portableSpawn, portableSpawnSync } from '../chunk-KSIRR5PL.js';
71
71
  import { parseModelRef, resolveEntryBaseUrl } from '../chunk-ILG4BXYE.js';
72
72
  import '../chunk-W4IPN3DD.js';
@@ -125,7 +125,7 @@ async function runSearch(kind, query, opts) {
125
125
  }
126
126
  }
127
127
  async function searchIndex(query, kind) {
128
- const { openLibrary: openLibrary2 } = await import('../open-library-ZI6TWEM6.js');
128
+ const { openLibrary: openLibrary2 } = await import('../open-library-F24FIE65.js');
129
129
  const library = await openLibrary2();
130
130
  try {
131
131
  const defs = await library.listAssetDefs(kind ? { kind } : {});
@@ -178,7 +178,7 @@ async function searchLocal(query, kind, opts, showStore, airGapped) {
178
178
  const factory = await searchFactory(projectDir, query, kind);
179
179
  let entries = unionEntries(await searchIndex(query, kind), factory);
180
180
  if (entries.length === 0 && !query && !kind && !airGapped) {
181
- const { autoSyncForSearch } = await import('../source-SPMRD7S2.js');
181
+ const { autoSyncForSearch } = await import('../source-HBEZDIWE.js');
182
182
  if (await autoSyncForSearch(projectDir)) {
183
183
  entries = unionEntries(await searchIndex(query, kind), factory);
184
184
  }
@@ -232,7 +232,7 @@ async function searchStore(query, kind, opts, airGapped) {
232
232
  logInfo("air-gapped (cache_ttl: 0) \u2014 local sources only");
233
233
  return;
234
234
  }
235
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-ZI6TWEM6.js');
235
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-F24FIE65.js');
236
236
  try {
237
237
  const remote = await openCatalogSource2({ projectDir: path36__default.resolve(opts.projectDir) });
238
238
  const assets = await remote.listAssets(kind ? { kind } : {});
@@ -547,7 +547,7 @@ async function resolveInfoEntry(am2, ref, opts) {
547
547
  return { entry: match ?? deployed };
548
548
  }
549
549
  const lookup = opts.storeLookup ?? (async (filter) => {
550
- const { resolveCatalogSource } = await import('../open-library-ZI6TWEM6.js');
550
+ const { resolveCatalogSource } = await import('../open-library-F24FIE65.js');
551
551
  const { source, close } = await resolveCatalogSource({ projectDir: opts.projectDir });
552
552
  try {
553
553
  return await source.listAssets(filter);
@@ -563,7 +563,7 @@ async function resolveInfoEntry(am2, ref, opts) {
563
563
  );
564
564
  return { entry: hit ? catalogAssetToEntry(hit) : null };
565
565
  } catch (err) {
566
- const { LocalCatalogDisabledError } = await import('../open-library-ZI6TWEM6.js');
566
+ const { LocalCatalogDisabledError } = await import('../open-library-F24FIE65.js');
567
567
  const storeNote = err instanceof Error ? err.message : String(err);
568
568
  const disabled = err instanceof LocalCatalogDisabledError || /catalog\.url/i.test(storeNote);
569
569
  return { entry: null, storeNote, ...disabled ? { storeDisabled: true } : {} };
@@ -1183,7 +1183,7 @@ function makeCatalogCommand() {
1183
1183
  return catalog;
1184
1184
  }
1185
1185
  async function runLocalCatalogTest(projectDir) {
1186
- const { resolveCatalogSource } = await import('../open-library-ZI6TWEM6.js');
1186
+ const { resolveCatalogSource } = await import('../open-library-F24FIE65.js');
1187
1187
  let resolved;
1188
1188
  try {
1189
1189
  resolved = await resolveCatalogSource({ projectDir });
@@ -2245,7 +2245,7 @@ async function ensureTargetsRegistered(projectDir) {
2245
2245
  const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
2246
2246
  const config = resolveSkWorkspaceConfig2(projectDir);
2247
2247
  if (config.plugins && config.plugins.length > 0) {
2248
- const { ensurePluginsLoaded } = await import('../plugin-store-ZW4GDES3.js');
2248
+ const { ensurePluginsLoaded } = await import('../plugin-store-4RALGK5S.js');
2249
2249
  const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
2250
2250
  for (const f of result.failed) logWarn(f.error);
2251
2251
  }
@@ -3500,16 +3500,16 @@ function makeLibraryCommand() {
3500
3500
  });
3501
3501
  cmd.command("publish <lib>").description("Push + register the library's manifest atomically (needs git backend)").option("--asset <ref>", "Publish only the single asset matching this ref/name").option("--create-repo", "Provision + link a public github repo if the library has no remote").option("--ref <gitref>", "Git ref to ingest (default: the library branch or main)").option("--dry-run", "Print the plan; push nothing and call no store endpoint").action(
3502
3502
  async (lib, opts) => {
3503
- const { runLibraryPublish } = await import('../library-publish-CUFLZUEV.js');
3503
+ const { runLibraryPublish } = await import('../library-publish-IA76SB6X.js');
3504
3504
  await withStoreErrorHandling(() => runLibraryPublish(lib, opts));
3505
3505
  }
3506
3506
  );
3507
3507
  cmd.command("register <lib>").description("Register the library's manifest without pushing (bytes already on github)").option("--asset <ref>", "Publish only the single asset matching this ref/name").option("--ref <gitref>", "Git ref to ingest (default: the library branch or main)").option("--dry-run", "Print the plan; call no store endpoint").action(async (lib, opts) => {
3508
- const { runLibraryRegister } = await import('../library-publish-CUFLZUEV.js');
3508
+ const { runLibraryRegister } = await import('../library-publish-IA76SB6X.js');
3509
3509
  await withStoreErrorHandling(() => runLibraryRegister(lib, opts));
3510
3510
  });
3511
3511
  cmd.command("yank <lib>").description("Retract the library's published assets from the store").option("--asset <ref>", "Yank only the single asset matching this ref/name").action(async (lib, opts) => {
3512
- const { runLibraryYank } = await import('../library-publish-CUFLZUEV.js');
3512
+ const { runLibraryYank } = await import('../library-publish-IA76SB6X.js');
3513
3513
  await withStoreErrorHandling(() => runLibraryYank(lib, opts));
3514
3514
  });
3515
3515
  return cmd;
@@ -4231,7 +4231,7 @@ function scheduleSoftDepPreview() {
4231
4231
  }
4232
4232
  async function loadAssets() {
4233
4233
  softDepPreviewCache.clear();
4234
- const { gatherAssetFeeds } = await import('../asset-feeds-ZKMRNVV2.js');
4234
+ const { gatherAssetFeeds } = await import('../asset-feeds-74HE5Q7W.js');
4235
4235
  const { entries, domains, notes } = await gatherAssetFeeds(am, am.projectDir);
4236
4236
  if (notes.length > 0) {
4237
4237
  state.message = notes.map((n) => `[${n.feed}] ${n.message}`).join(" \u2022 ");
@@ -4437,7 +4437,7 @@ function reconcileCollapsedSets(rows) {
4437
4437
  async function loadSourcesAndLibraries() {
4438
4438
  try {
4439
4439
  const [{ openLibraryManager: openLibraryManager2 }, { skaileHomeDir }, { getGlobalCacheDir: getGlobalCacheDir2 }] = await Promise.all([
4440
- import('../open-library-ZI6TWEM6.js'),
4440
+ import('../open-library-F24FIE65.js'),
4441
4441
  import('../library/index.js'),
4442
4442
  import('../core/index.js')
4443
4443
  ]);
@@ -6074,7 +6074,7 @@ function action2(fn) {
6074
6074
  };
6075
6075
  }
6076
6076
  async function reconcileAndReport(projectDir, plugins) {
6077
- const { reconcilePlugins } = await import('../plugin-store-ZW4GDES3.js');
6077
+ const { reconcilePlugins } = await import('../plugin-store-4RALGK5S.js');
6078
6078
  if (plugins.length === 0) {
6079
6079
  logInfo("No plugins declared \u2014 nothing to reconcile.");
6080
6080
  return;
@@ -6090,7 +6090,7 @@ async function reconcileAndReport(projectDir, plugins) {
6090
6090
  async function runInstall2(spec, opts) {
6091
6091
  const projectDir = path36__default.resolve(opts.projectDir);
6092
6092
  const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
6093
- const { specName } = await import('../plugin-store-ZW4GDES3.js');
6093
+ const { specName } = await import('../plugin-store-4RALGK5S.js');
6094
6094
  const yamlPath = path36__default.join(projectDir, "skaile.yaml");
6095
6095
  const editor = WorkspaceYamlEditor2.load(yamlPath);
6096
6096
  const replaced = editor.addPlugin(spec, specName);
@@ -6102,7 +6102,7 @@ async function runInstall2(spec, opts) {
6102
6102
  async function runRemove(name, opts) {
6103
6103
  const projectDir = path36__default.resolve(opts.projectDir);
6104
6104
  const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
6105
- const { specName } = await import('../plugin-store-ZW4GDES3.js');
6105
+ const { specName } = await import('../plugin-store-4RALGK5S.js');
6106
6106
  const yamlPath = path36__default.join(projectDir, "skaile.yaml");
6107
6107
  const editor = WorkspaceYamlEditor2.load(yamlPath);
6108
6108
  const removed = editor.removePlugin(name, specName);
@@ -6130,7 +6130,7 @@ async function runList(opts) {
6130
6130
  const registry = createPluginRegistry();
6131
6131
  if (declared.length > 0) {
6132
6132
  try {
6133
- const { loadPlugins } = await import('../plugin-store-ZW4GDES3.js');
6133
+ const { loadPlugins } = await import('../plugin-store-4RALGK5S.js');
6134
6134
  const result = await loadPlugins(projectDir, declared, registry);
6135
6135
  for (const f of result.failed) logWarn(f.error);
6136
6136
  } catch (err) {
@@ -7232,12 +7232,12 @@ function makeServeCommand() {
7232
7232
  );
7233
7233
  }
7234
7234
  async function ensurePluginsLoadedForServe(projectDir) {
7235
- const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-JHGUA7T7.js');
7235
+ const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-JJ4OLUVW.js');
7236
7236
  try {
7237
7237
  const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
7238
7238
  const config = resolveSkWorkspaceConfig2(projectDir);
7239
7239
  if (!config.plugins || config.plugins.length === 0) return;
7240
- const { ensurePluginsLoaded } = await import('../plugin-store-ZW4GDES3.js');
7240
+ const { ensurePluginsLoaded } = await import('../plugin-store-4RALGK5S.js');
7241
7241
  const { pluginRegistry } = await import('../plugin-registry/index.js');
7242
7242
  const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
7243
7243
  if (result.loaded.length > 0) {
@@ -7251,14 +7251,14 @@ async function ensurePluginsLoadedForServe(projectDir) {
7251
7251
  }
7252
7252
  }
7253
7253
  async function runCompileTest(opts) {
7254
- const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-JHGUA7T7.js');
7254
+ const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-JJ4OLUVW.js');
7255
7255
  const { tmpdir } = await import('os');
7256
7256
  const { dirname: dirname4, join: join7, resolve: resolve5 } = await import('path');
7257
7257
  const { fileURLToPath: fileURLToPath2 } = await import('url');
7258
7258
  const { unlinkSync, existsSync: existsSync15 } = await import('fs');
7259
7259
  const { spawn } = await import('child_process');
7260
7260
  const { portableSpawnSync: portableSpawnSync2 } = await import('../core/index.js');
7261
- const { MONOREPO_ROOT } = await import('../paths-WJUPZXFS.js');
7261
+ const { MONOREPO_ROOT } = await import('../paths-NHONUGUU.js');
7262
7262
  if (MONOREPO_ROOT === null) {
7263
7263
  logErr2("--compile-test is only available inside the skaile-dev workspace.");
7264
7264
  logInfo2("Run it from a checkout of skaile-ai/skaile-dev (the monorepo shell).");
@@ -8133,7 +8133,7 @@ function makeStoreCommand() {
8133
8133
  process.exit(2);
8134
8134
  });
8135
8135
  store.command("search <query>").description("Search the AI Asset Store catalog by name, description, or publisher").option("--kind <kind>", "Filter by asset kind (skill, agent, prompt, flow, \u2026)").option("-C, --project-dir <dir>", "Project directory (catalog config overlay)", process.cwd()).action(async (query, opts) => {
8136
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-ZI6TWEM6.js');
8136
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-F24FIE65.js');
8137
8137
  try {
8138
8138
  const remote = await openCatalogSource2({ projectDir: path36__default.resolve(opts.projectDir) });
8139
8139
  const assets = await remote.listAssets(opts.kind ? { kind: opts.kind } : {});
@@ -8166,8 +8166,8 @@ function makeStoreCommand() {
8166
8166
  }
8167
8167
  });
8168
8168
  store.command("show <ref>").description("Show a store asset's details + provenance (source, files, integrity)").option("-C, --project-dir <dir>", "Project directory (catalog config overlay)", process.cwd()).action(async (ref, opts) => {
8169
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-ZI6TWEM6.js');
8170
- const { supportsInstallManifest } = await import('../project-TVZ6Y6AR.js');
8169
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-F24FIE65.js');
8170
+ const { supportsInstallManifest } = await import('../project-OGJSXBAC.js');
8171
8171
  try {
8172
8172
  const remote = await openCatalogSource2({ projectDir: path36__default.resolve(opts.projectDir) });
8173
8173
  const asset = await remote.resolve(ref);
@@ -9255,7 +9255,7 @@ async function bootstrapUserConfig() {
9255
9255
  }
9256
9256
  async function hydrateInitSources(resolved, created) {
9257
9257
  try {
9258
- const { ensureSourcesCloned } = await import('../ensure-sources-FRG6HKPM.js');
9258
+ const { ensureSourcesCloned } = await import('../ensure-sources-VTIIEJBO.js');
9259
9259
  const hydrate = ensureSourcesCloned(resolved, { quiet: true });
9260
9260
  for (const n of hydrate.cloned) created.push(`~/.skaile/cache/sources/${n}/`);
9261
9261
  if (hydrate.failed.length > 0) {
@@ -9295,7 +9295,7 @@ function printInitSummary(resolved, projectDir, created) {
9295
9295
  console.log();
9296
9296
  }
9297
9297
  program.command("setup").description("Interactive provider setup wizard").action(async () => {
9298
- const { cmdSetup } = await import('../setup-54FNPLTS.js');
9298
+ const { cmdSetup } = await import('../setup-3IIIW3QM.js');
9299
9299
  await cmdSetup([], { projectDir: process.cwd() });
9300
9300
  });
9301
9301
  program.addCommand(makeInstallCommand());
@@ -10,7 +10,7 @@ import '../chunk-MENCWIHW.js';
10
10
  import '../chunk-P4VHQA4N.js';
11
11
  import '../chunk-MKZOK4JU.js';
12
12
  import '../chunk-GEEW6SY2.js';
13
- import '../chunk-FTG7CRFD.js';
13
+ import '../chunk-3HKYCT2M.js';
14
14
  import '../chunk-KSIRR5PL.js';
15
15
  import '../chunk-ILG4BXYE.js';
16
16
  import '../chunk-W4IPN3DD.js';
@@ -1,13 +1,13 @@
1
- export { AbstractConnector, BUILTIN_CONNECTOR_CATALOG, ConnectorManager, FlowAdapter, LogBuffer, ManagedGitconfigCollisionError, NO_ACTIVE_FLOW_ERROR, PortPool, atomicReplaceCredential, buildConnectorPromptSection, buildLazyFlowToolDefs, buildLazySdkFlowTools, buildSdkConnectorTools, buildSdkFlowTools, classifyConnectError, createFsWatcher, createWorktree, defaultSpawn, ensureDirMode, ensureFleetMounted, ensureRefreshAttemptStamp, findGitRoot, findMissingPackages, getConnector, installNpmPackages, isFleetManaged, isPackageResolvable, listConnectors, listWorktrees, registerBuiltinConnectors, removeMountBlock, removeUnavailableMountBlock, renderCredentialHelperScript, tryGetConnector, worktreeRegistry, writeHelperScript, writeMountBlock, writeUnavailableMountBlock } from '../chunk-5YB4GYMB.js';
1
+ export { AbstractConnector, BUILTIN_CONNECTOR_CATALOG, ConnectorManager, FlowAdapter, LogBuffer, ManagedGitconfigCollisionError, NO_ACTIVE_FLOW_ERROR, PortPool, atomicReplaceCredential, buildConnectorPromptSection, buildLazyFlowToolDefs, buildLazySdkFlowTools, buildSdkConnectorTools, buildSdkFlowTools, classifyConnectError, createFsWatcher, createWorktree, defaultSpawn, ensureDirMode, ensureFleetMounted, ensureRefreshAttemptStamp, findGitRoot, findMissingPackages, getConnector, installNpmPackages, isFleetManaged, isPackageResolvable, listConnectors, listWorktrees, registerBuiltinConnectors, removeMountBlock, removeUnavailableMountBlock, renderCredentialHelperScript, tryGetConnector, worktreeRegistry, writeHelperScript, writeMountBlock, writeUnavailableMountBlock } from '../chunk-JU736VOI.js';
2
2
  export { CONNECT_ERROR_KIND_PROPERTY, ClassifiedConnectError, declaredConnectErrorKind, withConnectErrorKind } from '../chunk-SDNGG6FB.js';
3
3
  export { ConnectorFieldMissingError, ConnectorStartupError, EnvSecretProvider, ForgeSecretProvider, InMemorySecretProvider, LegacyAuthGrammarError, LockedSecretProvider, OAuthRequiredError, PreMintedSecretProvider, SecretProviderChain, createCliSecretProviderChain, createForgeSecretProviderChain, deriveSingleMaterializedConnectorDeclaration, fromMaterializedConnectorMd, isKnownSecretRef, loadConnectorDeclarations, loadMaterializedConnectorDeclarations, readUnavailableMarker, resolveAuthRef, resolveBackendAuthFor, resolvedConfigToDeclarations } from '../chunk-JUZJUKWM.js';
4
- import '../chunk-6DN6U2CK.js';
4
+ import '../chunk-ZVYWMD6Q.js';
5
5
  import '../chunk-OUJVFZWJ.js';
6
6
  import '../chunk-LOO5CB5M.js';
7
7
  import '../chunk-3GKBSHUG.js';
8
- import '../chunk-7LBL25WI.js';
8
+ import '../chunk-YCIW4YOT.js';
9
9
  import '../chunk-GAH4YRCI.js';
10
- import '../chunk-QBH7PC4D.js';
10
+ import '../chunk-LDQB5VEC.js';
11
11
  import '../chunk-6E6PKKAD.js';
12
12
  import '../chunk-IFGTRL2I.js';
13
13
  import '../chunk-AOE4KOMJ.js';
@@ -27,7 +27,7 @@ import '../chunk-MENCWIHW.js';
27
27
  import '../chunk-P4VHQA4N.js';
28
28
  import '../chunk-MKZOK4JU.js';
29
29
  import '../chunk-GEEW6SY2.js';
30
- import '../chunk-FTG7CRFD.js';
30
+ import '../chunk-3HKYCT2M.js';
31
31
  import '../chunk-KSIRR5PL.js';
32
32
  import '../chunk-ILG4BXYE.js';
33
33
  import '../chunk-W4IPN3DD.js';
@@ -9,7 +9,7 @@ export { DRIVER_TARGETS, SUPPORTED_DRIVER_TARGETS, globalBackendRoot } from '../
9
9
  export { SKAILE_MANIFEST_FILENAME, decodeSkaileManifest, encodeSkaileManifest, loadSkPublishManifest, saveSkPublishManifest } from '../chunk-P4VHQA4N.js';
10
10
  export { DEFAULT_FS_DEADLINE_MS, DEFAULT_WALK_BUDGET_MS, DEFAULT_WALK_MAX_DEPTH, DEFAULT_WALK_MAX_ENTRIES, FS_DEADLINE_ENV_VAR, FsDeadlineError, WALK_BUDGET_MS_ENV_VAR, WALK_MAX_DEPTH_ENV_VAR, WALK_MAX_ENTRIES_ENV_VAR, bundleDepRefs, fromAgentMd, fromAgentYaml, fromBundleYaml, fromConnectorMd, fromContractMd, fromFlowYaml, fromMcpServerMd, fromMcpServerMdContent, fromPromptMd, fromSkillMd, fsDeadlineMs, parseFrontmatter, parseRequires, scanDirectory, tryWithFsDeadline, walkDir, withFsDeadline } from '../chunk-MKZOK4JU.js';
11
11
  export { ASSET_KINDS, ASSET_NAME_HINT, INDIVIDUAL_KINDS, assetRefToDep, assetRefToStr, depToStr, entryFromRaw, entryToRaw, isValidAssetName, parseAssetRef, parseDep, repositoryFromRaw, repositoryToRaw, slugifyAssetName } from '../chunk-GEEW6SY2.js';
12
- export { OnLogBridgeSink, SqliteSink, WsLogSink, createLogStoreFromConfig, openSqlite, resolveLogStoreConfig } from '../chunk-FTG7CRFD.js';
12
+ export { DEFAULT_LOGS_RETENTION, OnLogBridgeSink, SqliteSink, WsLogSink, createLogStoreFromConfig, enforceLogsRetention, openSqlite, resolveLogStoreConfig, resolveLogsRetention } from '../chunk-3HKYCT2M.js';
13
13
  export { __resetCredentialCommandCache, portableSpawn, portableSpawnSync, resolveCredential } from '../chunk-KSIRR5PL.js';
14
14
  export { AI_PROVIDER_BASE_URL_TEMPLATES, AI_PROVIDER_CREDENTIAL_KINDS, AI_PROVIDER_DISCOVERY_TYPES, AI_PROVIDER_KINDS, AI_PROVIDER_LAYERS, AI_PROVIDER_SURFACES, AI_PROVIDER_TRANSPORTS, AI_PROVIDER_VOICE_KINDS, entryTransport, formatCredentialRef, isEntryEnabled, isSafeProviderId, looksLikeLiteralSecret, mergeRegistries, parseCredentialRef, parseModelRef, registryEntries, resolveEntryBaseUrl, validateMergedRegistry, validateRegistry } from '../chunk-ILG4BXYE.js';
15
15
  export { LogStore, LogStoreDisabledError, NoOpSink, StdoutSink, __resetBrokenStreams, createLogger, getLogStore, isBrokenPipeError, isStreamOpen, isStreamUsable, isUnwritableStreamError, markStreamBroken, normalizeError, registerLogStore, resetLogStore, sanitizeData } from '../chunk-W4IPN3DD.js';
@@ -1,4 +1,4 @@
1
- export { OnLogBridgeSink, SqliteSink, WsLogSink, createLogStoreFromConfig, openSqlite, resolveLogStoreConfig } from '../chunk-FTG7CRFD.js';
1
+ export { DEFAULT_LOGS_RETENTION, OnLogBridgeSink, SqliteSink, WsLogSink, createLogStoreFromConfig, enforceLogsRetention, openSqlite, resolveLogStoreConfig, resolveLogsRetention } from '../chunk-3HKYCT2M.js';
2
2
  export { LogStore, LogStoreDisabledError, NoOpSink, StdoutSink, __resetBrokenStreams, createLogger, getLogStore, isBrokenPipeError, isStreamOpen, isStreamUsable, isUnwritableStreamError, markStreamBroken, normalizeError, registerLogStore, resetLogStore, sanitizeData } from '../chunk-W4IPN3DD.js';
3
3
  import '../chunk-NSBPE2FW.js';
4
4
  //# sourceMappingURL=logging.js.map
@@ -3,12 +3,14 @@ export { createLogStoreFromConfig, resolveLogStoreConfig, } from "./config.js";
3
3
  export { createLogger, getLogStore, registerLogStore, resetLogStore, } from "./create-logger.js";
4
4
  export type { LogStoreOptions, RecordInput } from "./log-store.js";
5
5
  export { LogStore } from "./log-store.js";
6
+ export type { EnforceLogsRetentionResult } from "./retention.js";
7
+ export { DEFAULT_LOGS_RETENTION, enforceLogsRetention, resolveLogsRetention, } from "./retention.js";
6
8
  export { normalizeError, sanitizeData } from "./sanitize.js";
7
9
  export type { OutputStream } from "./stream-health.js";
8
10
  export { __resetBrokenStreams, isBrokenPipeError, isStreamOpen, isStreamUsable, isUnwritableStreamError, markStreamBroken, } from "./stream-health.js";
9
11
  export { NoOpSink } from "./sinks/no-op-sink.js";
10
12
  export { OnLogBridgeSink } from "./sinks/on-log-bridge-sink.js";
11
- export type { OpenSqliteOptions, PortableDatabase, PortableStatement, } from "./sinks/sqlite-runtime.js";
13
+ export type { OpenSqliteOptions, PortableDatabase, PortableRunResult, PortableStatement, } from "./sinks/sqlite-runtime.js";
12
14
  export { openSqlite } from "./sinks/sqlite-runtime.js";
13
15
  export type { SqliteSinkOptions } from "./sinks/sqlite-sink.js";
14
16
  export { SqliteSink } from "./sinks/sqlite-sink.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../core/src/logging/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,YAAY,EACV,YAAY,EACZ,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../core/src/logging/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EACL,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,aAAa,GACd,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,YAAY,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EACL,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7D,YAAY,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,YAAY,EACZ,cAAc,EACd,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,YAAY,EACV,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,YAAY,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,YAAY,EACV,YAAY,EACZ,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { LogStoreRetention } from "@skaile/workspaces/types";
2
+ /** Rows removed by one {@link enforceLogsRetention} run. */
3
+ export interface EnforceLogsRetentionResult {
4
+ deletedByAge: number;
5
+ deletedByCount: number;
6
+ }
7
+ /**
8
+ * The platform's cloud-mode retention defaults (docker and broker). Used when
9
+ * `skaile.yaml` has no `logging.retention` value for a field.
10
+ */
11
+ export declare const DEFAULT_LOGS_RETENTION: Readonly<Required<LogStoreRetention>>;
12
+ /**
13
+ * Overlay the configured retention on {@link DEFAULT_LOGS_RETENTION}, field by
14
+ * field. A value that is not a non-negative finite number counts as unset.
15
+ * `0` is a valid value: `maxEntries: 0` or `maxAgeDays: 0` deletes every row,
16
+ * as it does on the platform.
17
+ */
18
+ export declare function resolveLogsRetention(configured: LogStoreRetention | undefined): Required<LogStoreRetention>;
19
+ /**
20
+ * Delete rows older than `maxAgeDays`, then keep at most the `maxEntries`
21
+ * newest rows (by ULID id). Uses its own connection with a busy timeout, in
22
+ * bounded batches that yield to the event loop between passes.
23
+ *
24
+ * Returns zero counts when the file does not exist or the policy is empty.
25
+ * Other failures (lock timeout, not a log store) reject; the caller decides
26
+ * how loud to be.
27
+ */
28
+ export declare function enforceLogsRetention(dbPath: string, retention: LogStoreRetention): Promise<EnforceLogsRetentionResult>;
29
+ //# sourceMappingURL=retention.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retention.d.ts","sourceRoot":"","sources":["../../../../core/src/logging/retention.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,4DAA4D;AAC5D,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,QAAQ,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAGvE,CAAC;AAiCH;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,iBAAiB,GAAG,SAAS,GACxC,QAAQ,CAAC,iBAAiB,CAAC,CAS7B;AAyBD;;;;;;;;GAQG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,iBAAiB,GAC3B,OAAO,CAAC,0BAA0B,CAAC,CAyBrC"}
@@ -1,9 +1,14 @@
1
1
  /** A prepared statement bound with `$`-prefixed named parameters. */
2
2
  export interface PortableStatement {
3
- run(params?: Record<string, unknown>): void;
3
+ /** Returns the number of rows the statement changed. */
4
+ run(params?: Record<string, unknown>): PortableRunResult;
4
5
  all<T = unknown>(params?: Record<string, unknown>): T[];
5
6
  get<T = unknown>(params?: Record<string, unknown>): T | undefined;
6
7
  }
8
+ /** Outcome of {@link PortableStatement.run}, normalised across drivers. */
9
+ export interface PortableRunResult {
10
+ changes: number;
11
+ }
7
12
  /** A synchronous embedded SQLite handle, uniform across Bun and Node. */
8
13
  export interface PortableDatabase {
9
14
  exec(sql: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite-runtime.d.ts","sourceRoot":"","sources":["../../../../../core/src/logging/sinks/sqlite-runtime.ts"],"names":[],"mappings":"AAoBA,qEAAqE;AACrE,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC5C,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IACxD,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;CACnE;AAED,yEAAyE;AACzE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACxC,qEAAqE;IACrE,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IACjF,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA2ED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,iBAAsB,GAAG,gBAAgB,CAEvF"}
1
+ {"version":3,"file":"sqlite-runtime.d.ts","sourceRoot":"","sources":["../../../../../core/src/logging/sinks/sqlite-runtime.ts"],"names":[],"mappings":"AAoBA,qEAAqE;AACrE,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB,CAAC;IACzD,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;IACxD,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;CACnE;AAED,2EAA2E;AAC3E,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,yEAAyE;AACzE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC;IACxC,qEAAqE;IACrE,WAAW,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,CAAC;IACjF,KAAK,IAAI,IAAI,CAAC;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA6ED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,iBAAsB,GAAG,gBAAgB,CAEvF"}
@@ -10,7 +10,7 @@ import '../chunk-MENCWIHW.js';
10
10
  import '../chunk-P4VHQA4N.js';
11
11
  import '../chunk-MKZOK4JU.js';
12
12
  import '../chunk-GEEW6SY2.js';
13
- import '../chunk-FTG7CRFD.js';
13
+ import '../chunk-3HKYCT2M.js';
14
14
  import { portableSpawnSync, portableSpawn } from '../chunk-KSIRR5PL.js';
15
15
  import '../chunk-ILG4BXYE.js';
16
16
  import '../chunk-W4IPN3DD.js';
@@ -1,5 +1,5 @@
1
- import { logErr, logOk, logInfo } from './chunk-TLMDSUEL.js';
2
- import './chunk-XJLB4OH2.js';
1
+ import { logErr, logOk, logInfo } from './chunk-2KVFAWUA.js';
2
+ import './chunk-O33RRDO5.js';
3
3
  import './chunk-7LHSC2DS.js';
4
4
  import './chunk-M5H4DWIA.js';
5
5
  import './chunk-UKJMQZV6.js';
@@ -18,7 +18,7 @@ import './chunk-MENCWIHW.js';
18
18
  import './chunk-P4VHQA4N.js';
19
19
  import './chunk-MKZOK4JU.js';
20
20
  import './chunk-GEEW6SY2.js';
21
- import './chunk-FTG7CRFD.js';
21
+ import './chunk-3HKYCT2M.js';
22
22
  import './chunk-KSIRR5PL.js';
23
23
  import './chunk-ILG4BXYE.js';
24
24
  import './chunk-W4IPN3DD.js';
@@ -89,5 +89,5 @@ function ensureSourcesCloned(projectDir, opts = {}) {
89
89
  }
90
90
 
91
91
  export { ensureSourcesCloned };
92
- //# sourceMappingURL=ensure-sources-FRG6HKPM.js.map
93
- //# sourceMappingURL=ensure-sources-FRG6HKPM.js.map
92
+ //# sourceMappingURL=ensure-sources-VTIIEJBO.js.map
93
+ //# sourceMappingURL=ensure-sources-VTIIEJBO.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../cli/src/ensure-sources.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,SAAS,gBAAgB,GAAA,EAAqB;AAC5C,EAAA,OAAY,IAAA,CAAA,IAAA,CAAK,iBAAA,EAAkB,EAAG,GAAG,CAAA;AAC3C;AASA,SAAS,kBAAA,CAAmB,UAAkB,KAAA,EAAsC;AAClF,EAAA,IAAI;AACF,IAAA,OAAO,mBAAA,CAAoB,IAAA,CAAK,QAAQ,CAAA,CAAE,UAAA,EAAW;AAAA,EACvD,SAAS,GAAA,EAAK;AACZ,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,MAAA,CAAO,CAAA,eAAA,EAAkB,QAAQ,CAAA,EAAA,EAAK,GAAA,YAAe,KAAA,GAAQ,IAAI,OAAA,GAAU,MAAA,CAAO,GAAG,CAAC,CAAA,CAAE,CAAA;AAAA,IAC1F;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAMA,SAAS,kBAAA,CAAmB,KAAA,EAAoB,KAAA,EAAgB,MAAA,EAA4B;AAC1F,EAAA,MAAM,GAAA,GAAM,cAAA,CAAe,KAAA,CAAM,GAAG,CAAA;AACpC,EAAA,MAAM,IAAA,GAAO,eAAA,CAAgB,KAAA,CAAM,GAAG,CAAA;AACtC,EAAA,MAAM,IAAA,GAAO,gBAAgB,GAAG,CAAA;AAChC,EAAA,IAAI,UAAA,CAAW,IAAI,CAAA,EAAG;AACpB,IAAA,MAAA,CAAO,MAAA,CAAO,KAAK,IAAI,CAAA;AACvB,IAAA;AAAA,EACF;AACA,EAAA,SAAA,CAAe,aAAQ,IAAI,CAAA,EAAG,EAAE,SAAA,EAAW,MAAM,CAAA;AACjD,EAAA,MAAM,IAAA,GAAO,CAAC,OAAA,EAAS,KAAA,CAAM,KAAK,IAAI,CAAA;AACtC,EAAA,IAAI,KAAA,CAAM,KAAK,IAAA,CAAK,MAAA,CAAO,GAAG,CAAA,EAAG,UAAA,EAAY,MAAM,GAAG,CAAA;AACtD,EAAA,MAAM,KAAA,GAAQ,UAAU,KAAA,EAAO,IAAA,EAAM,EAAE,KAAA,EAAO,KAAA,GAAQ,MAAA,GAAS,SAAA,EAAW,CAAA;AAC1E,EAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,IAAA,MAAA,CAAO,MAAA,CAAO,KAAK,IAAI,CAAA;AACvB,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,MAAA,CAAO,CAAA,qBAAA,EAAwB,KAAA,CAAM,GAAG,CAAA,CAAE,CAAA;AAAA,IAC5C;AACA,IAAA;AAAA,EACF;AACA,EAAA,MAAA,CAAO,MAAA,CAAO,KAAK,IAAI,CAAA;AACzB;AAGA,SAAS,kBAAkB,MAAA,EAA4B;AACrD,EAAA,KAAA,MAAW,KAAK,MAAA,CAAO,MAAA,EAAQ,KAAA,CAAM,CAAA,eAAA,EAAkB,CAAC,CAAA,EAAA,CAAI,CAAA;AAC5D,EAAA,IAAI,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,CAAA,EAAG;AAC5B,IAAA,OAAA,CAAQ,yBAAyB,MAAA,CAAO,MAAA,CAAO,IAAA,CAAK,IAAI,CAAC,CAAA,CAAE,CAAA;AAAA,EAC7D;AACF;AAUO,SAAS,mBAAA,CACd,UAAA,EACA,IAAA,GAA4B,EAAC,EACf;AACd,EAAA,MAAM,MAAA,GAAuB,EAAE,MAAA,EAAQ,EAAC,EAAG,QAAQ,EAAC,EAAG,MAAA,EAAQ,EAAC,EAAE;AAClE,EAAA,MAAM,QAAA,GAAgB,IAAA,CAAA,IAAA,CAAK,UAAA,EAAY,aAAa,CAAA;AACpD,EAAA,IAAI,CAAC,UAAA,CAAW,QAAQ,CAAA,EAAG,OAAO,MAAA;AAElC,EAAA,MAAM,KAAA,GAAQ,KAAK,KAAA,IAAS,KAAA;AAC5B,EAAA,MAAM,OAAA,GAAU,kBAAA,CAAmB,QAAA,EAAU,KAAK,CAAA;AAClD,EAAA,IAAI,OAAA,KAAY,MAAM,OAAO,MAAA;AAC7B,EAAA,IAAI,OAAA,CAAQ,MAAA,KAAW,CAAA,EAAG,OAAO,MAAA;AAEjC,EAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC3B,IAAA,kBAAA,CAAmB,KAAA,EAAO,OAAO,MAAM,CAAA;AAAA,EACzC;AAEA,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,iBAAA,CAAkB,MAAM,CAAA;AAAA,EAC1B;AAEA,EAAA,OAAO,MAAA;AACT","file":"ensure-sources-FRG6HKPM.js","sourcesContent":["/**\n * ensure-sources.ts — hydrate the `~/.skaile/cache/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, mkdirSync } from \"node:fs\";\nimport * as path from \"node:path\";\nimport {\n getGlobalCacheDir,\n type SourceEntry,\n sourceCacheKey,\n sourceShortName,\n WorkspaceYamlEditor,\n} from \"@skaile/workspaces/core\";\nimport { logErr, logInfo, logOk } from \"./helpers.ts\";\n\nfunction sourceClonePath(key: string): string {\n return path.join(getGlobalCacheDir(), key);\n}\n\nexport interface EnsureResult {\n cloned: string[];\n cached: string[];\n failed: string[];\n}\n\n/** Load `sources:` from a project's `skaile.yaml`, or `null` when unavailable. */\nfunction loadProjectSources(yamlPath: string, quiet: boolean): SourceEntry[] | null {\n try {\n return WorkspaceYamlEditor.load(yamlPath).getSources();\n } catch (err) {\n if (!quiet) {\n logErr(`Could not read ${yamlPath}: ${err instanceof Error ? err.message : String(err)}`);\n }\n return null;\n }\n}\n\n/**\n * Hydrate a single source entry into `result`: skip when already cached,\n * otherwise clone and record success/failure. Mutates `result` in place.\n */\nfunction hydrateSourceEntry(entry: SourceEntry, quiet: boolean, result: EnsureResult): void {\n const key = sourceCacheKey(entry.url);\n const slug = sourceShortName(entry.url);\n const dest = sourceClonePath(key);\n if (existsSync(dest)) {\n result.cached.push(slug);\n return;\n }\n mkdirSync(path.dirname(dest), { recursive: true });\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: quiet ? \"pipe\" : \"inherit\" });\n if (clone.status !== 0) {\n result.failed.push(slug);\n if (quiet) {\n logErr(`git clone failed for ${entry.url}`);\n }\n return;\n }\n result.cloned.push(slug);\n}\n\n/** Log a full-hydrate summary of cloned + reused-cached entries. */\nfunction logHydrateSummary(result: EnsureResult): void {\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/**\n * Walk `projectDir/skaile.yaml` `sources:` and clone any entries whose\n * clone directory does not yet exist under `~/.skaile/cache/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 const quiet = opts.quiet ?? false;\n const sources = loadProjectSources(yamlPath, quiet);\n if (sources === null) return result;\n if (sources.length === 0) return result;\n\n for (const entry of sources) {\n hydrateSourceEntry(entry, quiet, result);\n }\n\n if (!quiet) {\n logHydrateSummary(result);\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-VTIIEJBO.js","sourcesContent":["/**\n * ensure-sources.ts — hydrate the `~/.skaile/cache/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, mkdirSync } from \"node:fs\";\nimport * as path from \"node:path\";\nimport {\n getGlobalCacheDir,\n type SourceEntry,\n sourceCacheKey,\n sourceShortName,\n WorkspaceYamlEditor,\n} from \"@skaile/workspaces/core\";\nimport { logErr, logInfo, logOk } from \"./helpers.ts\";\n\nfunction sourceClonePath(key: string): string {\n return path.join(getGlobalCacheDir(), key);\n}\n\nexport interface EnsureResult {\n cloned: string[];\n cached: string[];\n failed: string[];\n}\n\n/** Load `sources:` from a project's `skaile.yaml`, or `null` when unavailable. */\nfunction loadProjectSources(yamlPath: string, quiet: boolean): SourceEntry[] | null {\n try {\n return WorkspaceYamlEditor.load(yamlPath).getSources();\n } catch (err) {\n if (!quiet) {\n logErr(`Could not read ${yamlPath}: ${err instanceof Error ? err.message : String(err)}`);\n }\n return null;\n }\n}\n\n/**\n * Hydrate a single source entry into `result`: skip when already cached,\n * otherwise clone and record success/failure. Mutates `result` in place.\n */\nfunction hydrateSourceEntry(entry: SourceEntry, quiet: boolean, result: EnsureResult): void {\n const key = sourceCacheKey(entry.url);\n const slug = sourceShortName(entry.url);\n const dest = sourceClonePath(key);\n if (existsSync(dest)) {\n result.cached.push(slug);\n return;\n }\n mkdirSync(path.dirname(dest), { recursive: true });\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: quiet ? \"pipe\" : \"inherit\" });\n if (clone.status !== 0) {\n result.failed.push(slug);\n if (quiet) {\n logErr(`git clone failed for ${entry.url}`);\n }\n return;\n }\n result.cloned.push(slug);\n}\n\n/** Log a full-hydrate summary of cloned + reused-cached entries. */\nfunction logHydrateSummary(result: EnsureResult): void {\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/**\n * Walk `projectDir/skaile.yaml` `sources:` and clone any entries whose\n * clone directory does not yet exist under `~/.skaile/cache/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 const quiet = opts.quiet ?? false;\n const sources = loadProjectSources(yamlPath, quiet);\n if (sources === null) return result;\n if (sources.length === 0) return result;\n\n for (const entry of sources) {\n hydrateSourceEntry(entry, quiet, result);\n }\n\n if (!quiet) {\n logHydrateSummary(result);\n }\n\n return result;\n}\n"]}
@@ -1,13 +1,13 @@
1
- export { BoxConnector, createConnector4 as createConnector } from '../../chunk-5YB4GYMB.js';
1
+ export { BoxConnector, createConnector4 as createConnector } from '../../chunk-JU736VOI.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
- import '../../chunk-6DN6U2CK.js';
4
+ import '../../chunk-ZVYWMD6Q.js';
5
5
  import '../../chunk-OUJVFZWJ.js';
6
6
  import '../../chunk-LOO5CB5M.js';
7
7
  import '../../chunk-3GKBSHUG.js';
8
- import '../../chunk-7LBL25WI.js';
8
+ import '../../chunk-YCIW4YOT.js';
9
9
  import '../../chunk-GAH4YRCI.js';
10
- import '../../chunk-QBH7PC4D.js';
10
+ import '../../chunk-LDQB5VEC.js';
11
11
  import '../../chunk-6E6PKKAD.js';
12
12
  import '../../chunk-IFGTRL2I.js';
13
13
  import '../../chunk-AOE4KOMJ.js';
@@ -27,7 +27,7 @@ import '../../chunk-MENCWIHW.js';
27
27
  import '../../chunk-P4VHQA4N.js';
28
28
  import '../../chunk-MKZOK4JU.js';
29
29
  import '../../chunk-GEEW6SY2.js';
30
- import '../../chunk-FTG7CRFD.js';
30
+ import '../../chunk-3HKYCT2M.js';
31
31
  import '../../chunk-KSIRR5PL.js';
32
32
  import '../../chunk-ILG4BXYE.js';
33
33
  import '../../chunk-W4IPN3DD.js';
@@ -1,13 +1,13 @@
1
- export { DeployConnector, createConnector2 as createConnector } from '../../chunk-5YB4GYMB.js';
1
+ export { DeployConnector, createConnector2 as createConnector } from '../../chunk-JU736VOI.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
- import '../../chunk-6DN6U2CK.js';
4
+ import '../../chunk-ZVYWMD6Q.js';
5
5
  import '../../chunk-OUJVFZWJ.js';
6
6
  import '../../chunk-LOO5CB5M.js';
7
7
  import '../../chunk-3GKBSHUG.js';
8
- import '../../chunk-7LBL25WI.js';
8
+ import '../../chunk-YCIW4YOT.js';
9
9
  import '../../chunk-GAH4YRCI.js';
10
- import '../../chunk-QBH7PC4D.js';
10
+ import '../../chunk-LDQB5VEC.js';
11
11
  import '../../chunk-6E6PKKAD.js';
12
12
  import '../../chunk-IFGTRL2I.js';
13
13
  import '../../chunk-AOE4KOMJ.js';
@@ -27,7 +27,7 @@ import '../../chunk-MENCWIHW.js';
27
27
  import '../../chunk-P4VHQA4N.js';
28
28
  import '../../chunk-MKZOK4JU.js';
29
29
  import '../../chunk-GEEW6SY2.js';
30
- import '../../chunk-FTG7CRFD.js';
30
+ import '../../chunk-3HKYCT2M.js';
31
31
  import '../../chunk-KSIRR5PL.js';
32
32
  import '../../chunk-ILG4BXYE.js';
33
33
  import '../../chunk-W4IPN3DD.js';
@@ -1,13 +1,13 @@
1
- export { DevServerConnector, createConnector3 as createConnector } from '../../chunk-5YB4GYMB.js';
1
+ export { DevServerConnector, createConnector3 as createConnector } from '../../chunk-JU736VOI.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
- import '../../chunk-6DN6U2CK.js';
4
+ import '../../chunk-ZVYWMD6Q.js';
5
5
  import '../../chunk-OUJVFZWJ.js';
6
6
  import '../../chunk-LOO5CB5M.js';
7
7
  import '../../chunk-3GKBSHUG.js';
8
- import '../../chunk-7LBL25WI.js';
8
+ import '../../chunk-YCIW4YOT.js';
9
9
  import '../../chunk-GAH4YRCI.js';
10
- import '../../chunk-QBH7PC4D.js';
10
+ import '../../chunk-LDQB5VEC.js';
11
11
  import '../../chunk-6E6PKKAD.js';
12
12
  import '../../chunk-IFGTRL2I.js';
13
13
  import '../../chunk-AOE4KOMJ.js';
@@ -27,7 +27,7 @@ import '../../chunk-MENCWIHW.js';
27
27
  import '../../chunk-P4VHQA4N.js';
28
28
  import '../../chunk-MKZOK4JU.js';
29
29
  import '../../chunk-GEEW6SY2.js';
30
- import '../../chunk-FTG7CRFD.js';
30
+ import '../../chunk-3HKYCT2M.js';
31
31
  import '../../chunk-KSIRR5PL.js';
32
32
  import '../../chunk-ILG4BXYE.js';
33
33
  import '../../chunk-W4IPN3DD.js';
@@ -1,13 +1,13 @@
1
- export { FlowAdapter, createConnector, describeFlowOperations } from '../../../chunk-5YB4GYMB.js';
1
+ export { FlowAdapter, createConnector, describeFlowOperations } from '../../../chunk-JU736VOI.js';
2
2
  import '../../../chunk-SDNGG6FB.js';
3
3
  import '../../../chunk-JUZJUKWM.js';
4
- import '../../../chunk-6DN6U2CK.js';
4
+ import '../../../chunk-ZVYWMD6Q.js';
5
5
  import '../../../chunk-OUJVFZWJ.js';
6
6
  import '../../../chunk-LOO5CB5M.js';
7
7
  import '../../../chunk-3GKBSHUG.js';
8
- import '../../../chunk-7LBL25WI.js';
8
+ import '../../../chunk-YCIW4YOT.js';
9
9
  import '../../../chunk-GAH4YRCI.js';
10
- import '../../../chunk-QBH7PC4D.js';
10
+ import '../../../chunk-LDQB5VEC.js';
11
11
  import '../../../chunk-6E6PKKAD.js';
12
12
  import '../../../chunk-IFGTRL2I.js';
13
13
  export { isBlocking } from '../../../chunk-AOE4KOMJ.js';
@@ -27,7 +27,7 @@ import '../../../chunk-MENCWIHW.js';
27
27
  import '../../../chunk-P4VHQA4N.js';
28
28
  import '../../../chunk-MKZOK4JU.js';
29
29
  import '../../../chunk-GEEW6SY2.js';
30
- import '../../../chunk-FTG7CRFD.js';
30
+ import '../../../chunk-3HKYCT2M.js';
31
31
  import '../../../chunk-KSIRR5PL.js';
32
32
  import '../../../chunk-ILG4BXYE.js';
33
33
  import '../../../chunk-W4IPN3DD.js';
@@ -12,7 +12,7 @@ import '../../../chunk-MENCWIHW.js';
12
12
  import '../../../chunk-P4VHQA4N.js';
13
13
  import '../../../chunk-MKZOK4JU.js';
14
14
  import '../../../chunk-GEEW6SY2.js';
15
- import '../../../chunk-FTG7CRFD.js';
15
+ import '../../../chunk-3HKYCT2M.js';
16
16
  import '../../../chunk-KSIRR5PL.js';
17
17
  import '../../../chunk-ILG4BXYE.js';
18
18
  import '../../../chunk-W4IPN3DD.js';