@skaile/workspaces 4.38.0 → 4.39.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 (132) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/app-sdk/index.js +1 -1
  3. package/dist/{asset-feeds-UYIFZKKG.js → asset-feeds-KXL45ALC.js} +4 -4
  4. package/dist/{asset-feeds-UYIFZKKG.js.map → asset-feeds-KXL45ALC.js.map} +1 -1
  5. package/dist/asset-manager/index.js +1 -1
  6. package/dist/bridge/drivers/claude-sdk.js +4 -4
  7. package/dist/bridge/drivers/codex.js +2 -2
  8. package/dist/bridge/drivers/continue.js +3 -3
  9. package/dist/bridge/drivers/echo.js +3 -3
  10. package/dist/bridge/drivers/gemini.js +5 -5
  11. package/dist/bridge/drivers/goose.js +3 -3
  12. package/dist/bridge/drivers/omp.js +4 -4
  13. package/dist/bridge/drivers/opencode.js +3 -3
  14. package/dist/bridge/drivers/qwen.js +5 -5
  15. package/dist/bridge/index.js +5 -5
  16. package/dist/{chunk-27DN4DZD.js → chunk-252TK4RU.js} +3 -3
  17. package/dist/{chunk-27DN4DZD.js.map → chunk-252TK4RU.js.map} +1 -1
  18. package/dist/{chunk-MS2JK4V7.js → chunk-3C3ODIDE.js} +3 -3
  19. package/dist/{chunk-MS2JK4V7.js.map → chunk-3C3ODIDE.js.map} +1 -1
  20. package/dist/{chunk-CACCIOQL.js → chunk-5LF27VUB.js} +6 -6
  21. package/dist/{chunk-CACCIOQL.js.map → chunk-5LF27VUB.js.map} +1 -1
  22. package/dist/{chunk-J5UF3OOS.js → chunk-5RWL4L3X.js} +7 -7
  23. package/dist/{chunk-J5UF3OOS.js.map → chunk-5RWL4L3X.js.map} +1 -1
  24. package/dist/{chunk-6VRZ6M2L.js → chunk-7SAWDPUT.js} +3 -3
  25. package/dist/{chunk-6VRZ6M2L.js.map → chunk-7SAWDPUT.js.map} +1 -1
  26. package/dist/{chunk-HUNZYTOS.js → chunk-B4IAZTZZ.js} +2 -2
  27. package/dist/chunk-B4IAZTZZ.js.map +1 -0
  28. package/dist/{chunk-EETXMMZS.js → chunk-BCUVRJXV.js} +3 -3
  29. package/dist/{chunk-EETXMMZS.js.map → chunk-BCUVRJXV.js.map} +1 -1
  30. package/dist/{chunk-R2U346ER.js → chunk-C75VKXAM.js} +3 -3
  31. package/dist/{chunk-R2U346ER.js.map → chunk-C75VKXAM.js.map} +1 -1
  32. package/dist/{chunk-BQ3HXZNT.js → chunk-FTPKMJFD.js} +2 -2
  33. package/dist/{chunk-BQ3HXZNT.js.map → chunk-FTPKMJFD.js.map} +1 -1
  34. package/dist/{chunk-MQ42OYKH.js → chunk-H7N6RWNF.js} +3 -3
  35. package/dist/{chunk-MQ42OYKH.js.map → chunk-H7N6RWNF.js.map} +1 -1
  36. package/dist/{chunk-YNUBJY3L.js → chunk-IDEA6CYI.js} +6 -5
  37. package/dist/chunk-IDEA6CYI.js.map +1 -0
  38. package/dist/{chunk-DV47JNI4.js → chunk-KC3OF6B2.js} +3 -3
  39. package/dist/{chunk-DV47JNI4.js.map → chunk-KC3OF6B2.js.map} +1 -1
  40. package/dist/{chunk-7UL2SQQH.js → chunk-M7GPCWEV.js} +4 -4
  41. package/dist/{chunk-7UL2SQQH.js.map → chunk-M7GPCWEV.js.map} +1 -1
  42. package/dist/{chunk-ILAZDNIA.js → chunk-NLKIW2VI.js} +3 -3
  43. package/dist/{chunk-ILAZDNIA.js.map → chunk-NLKIW2VI.js.map} +1 -1
  44. package/dist/{chunk-R5ARWJGE.js → chunk-P7BU6DAC.js} +199 -17
  45. package/dist/chunk-P7BU6DAC.js.map +1 -0
  46. package/dist/{chunk-7FZSABQV.js → chunk-QVLQGXT6.js} +4 -4
  47. package/dist/{chunk-7FZSABQV.js.map → chunk-QVLQGXT6.js.map} +1 -1
  48. package/dist/{chunk-PRCUGFXV.js → chunk-RDYI4MML.js} +3 -3
  49. package/dist/{chunk-PRCUGFXV.js.map → chunk-RDYI4MML.js.map} +1 -1
  50. package/dist/{chunk-6EMF4UZI.js → chunk-SM6EUQMY.js} +6 -6
  51. package/dist/{chunk-6EMF4UZI.js.map → chunk-SM6EUQMY.js.map} +1 -1
  52. package/dist/{chunk-LOHQTTUV.js → chunk-SSCPTAFJ.js} +3 -3
  53. package/dist/{chunk-LOHQTTUV.js.map → chunk-SSCPTAFJ.js.map} +1 -1
  54. package/dist/{chunk-QWWDDU5Z.js → chunk-TQ6XNACF.js} +2 -2
  55. package/dist/{chunk-QWWDDU5Z.js.map → chunk-TQ6XNACF.js.map} +1 -1
  56. package/dist/{chunk-6KPQDP7P.js → chunk-TSVRKUGV.js} +2 -2
  57. package/dist/{chunk-6KPQDP7P.js.map → chunk-TSVRKUGV.js.map} +1 -1
  58. package/dist/{chunk-HXG6IZSF.js → chunk-VXPFSZDT.js} +6 -6
  59. package/dist/{chunk-HXG6IZSF.js.map → chunk-VXPFSZDT.js.map} +1 -1
  60. package/dist/{chunk-4WKZEMBD.js → chunk-WCWFS36P.js} +3 -3
  61. package/dist/{chunk-4WKZEMBD.js.map → chunk-WCWFS36P.js.map} +1 -1
  62. package/dist/{chunk-YCJ3PJNB.js → chunk-X4DKUGV4.js} +3 -3
  63. package/dist/{chunk-YCJ3PJNB.js.map → chunk-X4DKUGV4.js.map} +1 -1
  64. package/dist/cli/index.js +37 -37
  65. package/dist/connectors/index.js +7 -7
  66. package/dist/connectors-shared/index.js +2 -2
  67. package/dist/{ensure-sources-VX63EKY7.js → ensure-sources-J5CDTQ36.js} +4 -4
  68. package/dist/{ensure-sources-VX63EKY7.js.map → ensure-sources-J5CDTQ36.js.map} +1 -1
  69. package/dist/factory-assets/connectors/box.js +7 -7
  70. package/dist/factory-assets/connectors/deploy.js +7 -7
  71. package/dist/factory-assets/connectors/devserver.js +7 -7
  72. package/dist/factory-assets/connectors/flow/adapter.js +7 -7
  73. package/dist/factory-assets/connectors/flow/run-flow.js +8 -8
  74. package/dist/factory-assets/connectors/flow.js +7 -7
  75. package/dist/factory-assets/connectors/git.js +7 -7
  76. package/dist/factory-assets/connectors/gmail.js +7 -7
  77. package/dist/factory-assets/connectors/googledrive.js +7 -7
  78. package/dist/factory-assets/connectors/local.js +7 -7
  79. package/dist/factory-assets/connectors/mattermost.js +7 -7
  80. package/dist/factory-assets/connectors/memory.js +7 -7
  81. package/dist/factory-assets/connectors/minio.js +7 -7
  82. package/dist/factory-assets/connectors/postgres.js +7 -7
  83. package/dist/factory-assets/connectors/s3.js +7 -7
  84. package/dist/factory-assets/connectors/sharepoint.js +7 -7
  85. package/dist/factory-assets/connectors/sqlite.js +7 -7
  86. package/dist/factory-assets/connectors/static-server.js +7 -7
  87. package/dist/factory-assets/connectors/tunnel.js +7 -7
  88. package/dist/factory-assets/connectors/webdav.js +7 -7
  89. package/dist/factory-assets/connectors/xstate-store.js +7 -7
  90. package/dist/factory-assets/connectors/xstate.js +7 -7
  91. package/dist/{helpers-DF55G2YC.js → helpers-EP6H3O3S.js} +4 -4
  92. package/dist/{helpers-DF55G2YC.js.map → helpers-EP6H3O3S.js.map} +1 -1
  93. package/dist/{library-publish-2PNWJJOY.js → library-publish-KKT73FJK.js} +7 -7
  94. package/dist/{library-publish-2PNWJJOY.js.map → library-publish-KKT73FJK.js.map} +1 -1
  95. package/dist/{open-library-SUVOMIWZ.js → open-library-R62UBL6E.js} +5 -5
  96. package/dist/{open-library-SUVOMIWZ.js.map → open-library-R62UBL6E.js.map} +1 -1
  97. package/dist/{project-RTLVOXUU.js → project-GCW5DFAB.js} +5 -5
  98. package/dist/{project-RTLVOXUU.js.map → project-GCW5DFAB.js.map} +1 -1
  99. package/dist/runner/index.js +11 -11
  100. package/dist/runner/src/resource-handler.d.ts +32 -3
  101. package/dist/runner/src/resource-handler.d.ts.map +1 -1
  102. package/dist/sdk/asset-manager.js +1 -1
  103. package/dist/sdk/bridge.js +5 -5
  104. package/dist/sdk/index.js +11 -11
  105. package/dist/sdk/runner.js +11 -11
  106. package/dist/sdk/session.js +2 -2
  107. package/dist/sdk/types.js +1 -1
  108. package/dist/secrets/index.js +1 -17
  109. package/dist/secrets/src/providers/local.d.ts.map +1 -1
  110. package/dist/session/index.js +2 -2
  111. package/dist/{setup-ZA7VZL72.js → setup-Q3LXY5AE.js} +10 -10
  112. package/dist/{setup-ZA7VZL72.js.map → setup-Q3LXY5AE.js.map} +1 -1
  113. package/dist/{source-Y5YQ7M53.js → source-CFQESKJU.js} +6 -6
  114. package/dist/{source-Y5YQ7M53.js.map → source-CFQESKJU.js.map} +1 -1
  115. package/dist/{source-manifest-publish-RZIJNRIW.js → source-manifest-publish-3TCBA2RV.js} +8 -8
  116. package/dist/{source-manifest-publish-RZIJNRIW.js.map → source-manifest-publish-3TCBA2RV.js.map} +1 -1
  117. package/dist/tui/index.js +11 -11
  118. package/dist/types/index.js +1 -1
  119. package/dist/types/src/events.d.ts +69 -2
  120. package/dist/types/src/events.d.ts.map +1 -1
  121. package/dist/types/src/index.d.ts +2 -2
  122. package/dist/types/src/index.d.ts.map +1 -1
  123. package/dist/types/src/protocol.d.ts +3 -3
  124. package/dist/types/src/protocol.d.ts.map +1 -1
  125. package/dist/types/src/version.d.ts +27 -1
  126. package/dist/types/src/version.d.ts.map +1 -1
  127. package/dist/workspace-plugin/adapters/mcp.js +2 -2
  128. package/dist/workspace-plugin/index.js +1 -1
  129. package/package.json +1 -1
  130. package/dist/chunk-HUNZYTOS.js.map +0 -1
  131. package/dist/chunk-R5ARWJGE.js.map +0 -1
  132. package/dist/chunk-YNUBJY3L.js.map +0 -1
package/dist/cli/index.js CHANGED
@@ -1,15 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  import { AI_RESOURCES } from '../chunk-VJNTB4DN.js';
3
- import { makeInstallCommand, makeCheckCommand, makeCleanCommand, reportInstalledSoftDeps } from '../chunk-6EMF4UZI.js';
4
- import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError } from '../chunk-7FZSABQV.js';
5
- import { getStoreConfig, storeFetch, deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, isStoreAuthenticated, getStoreToken, getStoreIdentity, refFor } from '../chunk-MQ42OYKH.js';
6
- import { makeSourceCommand, syncProjectSources } from '../chunk-CACCIOQL.js';
7
- import { openCatalogSource, openLibraryManager, createFullRegistry, openLibrary } from '../chunk-MS2JK4V7.js';
8
- import { logErr, S, logOk, logInfo, logWarn, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth, KIND_COL_WIDTH } from '../chunk-ILAZDNIA.js';
9
- import { LocalSecretsProvider } from '../chunk-HUNZYTOS.js';
10
- import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-R5ARWJGE.js';
11
- import { buildClaudePluginFiles } from '../chunk-BQ3HXZNT.js';
12
- import '../chunk-YCJ3PJNB.js';
3
+ import { makeInstallCommand, makeCheckCommand, makeCleanCommand, reportInstalledSoftDeps } from '../chunk-SM6EUQMY.js';
4
+ import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError } from '../chunk-QVLQGXT6.js';
5
+ import { getStoreConfig, storeFetch, deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, isStoreAuthenticated, getStoreToken, getStoreIdentity, refFor } from '../chunk-H7N6RWNF.js';
6
+ import { makeSourceCommand, syncProjectSources } from '../chunk-5LF27VUB.js';
7
+ import { openCatalogSource, openLibraryManager, createFullRegistry, openLibrary } from '../chunk-3C3ODIDE.js';
8
+ import { logErr, S, logOk, logInfo, logWarn, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth, KIND_COL_WIDTH } from '../chunk-NLKIW2VI.js';
9
+ import { LocalSecretsProvider } from '../chunk-B4IAZTZZ.js';
10
+ import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-P7BU6DAC.js';
11
+ import { buildClaudePluginFiles } from '../chunk-FTPKMJFD.js';
12
+ import '../chunk-X4DKUGV4.js';
13
13
  import '../chunk-QBQITQAM.js';
14
14
  import '../chunk-VDBP6Y5M.js';
15
15
  import '../chunk-EOKAFBJ7.js';
@@ -24,23 +24,23 @@ import '../chunk-5LKOAX7I.js';
24
24
  import '../chunk-32NA4TVC.js';
25
25
  import '../chunk-W3UDISS2.js';
26
26
  import '../chunk-HCYS7GFP.js';
27
- import { runFlow, resumeFlow } from '../chunk-27DN4DZD.js';
27
+ import { runFlow, resumeFlow } from '../chunk-252TK4RU.js';
28
28
  import '../chunk-4R6DROGN.js';
29
29
  import { validateFlowVersions, parseSkillFrontmatter } from '../chunk-OQRB7JUS.js';
30
30
  import '../chunk-DOVURNRK.js';
31
31
  import '../chunk-6X4DHKHP.js';
32
- import '../chunk-J5UF3OOS.js';
33
- import '../chunk-DV47JNI4.js';
32
+ import '../chunk-5RWL4L3X.js';
33
+ import '../chunk-KC3OF6B2.js';
34
34
  import '../chunk-YQEF36D5.js';
35
- import '../chunk-7UL2SQQH.js';
35
+ import '../chunk-M7GPCWEV.js';
36
36
  import '../chunk-5NYBY6ZE.js';
37
37
  import '../chunk-EINLFFP6.js';
38
38
  import '../chunk-LOO5CB5M.js';
39
- import '../chunk-PRCUGFXV.js';
40
- import '../chunk-4WKZEMBD.js';
39
+ import '../chunk-RDYI4MML.js';
40
+ import '../chunk-WCWFS36P.js';
41
41
  import '../chunk-XBSQ4KMC.js';
42
42
  import '../chunk-YROR332M.js';
43
- import { getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-6KPQDP7P.js';
43
+ import { getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-TSVRKUGV.js';
44
44
  import '../chunk-6E6PKKAD.js';
45
45
  import '../chunk-IFGTRL2I.js';
46
46
  import { projectAiAssetsRoots, loadFlow, loadAllFlowEntries, findFlowFileInRoots } from '../chunk-7RC37XFW.js';
@@ -49,8 +49,8 @@ import '../chunk-DIQDYNXZ.js';
49
49
  import '../chunk-K3IBZ2UZ.js';
50
50
  import { nodeLabel, nodeSkillAsset, nodeIsInert, nodeIsOptional, nodeRunKind, flowSkillVersionPins } from '../chunk-UDFWBALP.js';
51
51
  import '../chunk-ORH2BZEM.js';
52
- import '../chunk-YNUBJY3L.js';
53
- import { AssetManager, NON_DEPLOYABLE_KINDS, MissingManifestError, parseRefTolerant, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-QWWDDU5Z.js';
52
+ import '../chunk-IDEA6CYI.js';
53
+ import { AssetManager, NON_DEPLOYABLE_KINDS, MissingManifestError, parseRefTolerant, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-TQ6XNACF.js';
54
54
  import { cloneOrInitGitRepo, ensureGitRepo, isGitRepo, getStoreManifestsDir, getDefaultValue, isSecretPlaceholder } from '../chunk-XU7JET5Z.js';
55
55
  import { isValidDomainSlug, parseDomainMd } from '../chunk-OLMNDIAU.js';
56
56
  import '../chunk-2EL2PBRC.js';
@@ -142,7 +142,7 @@ async function runSearch(kind, query, opts) {
142
142
  }
143
143
  }
144
144
  async function searchIndex(query, kind) {
145
- const { openLibrary: openLibrary2 } = await import('../open-library-SUVOMIWZ.js');
145
+ const { openLibrary: openLibrary2 } = await import('../open-library-R62UBL6E.js');
146
146
  const library = await openLibrary2();
147
147
  try {
148
148
  const defs = await library.listAssetDefs(kind ? { kind } : {});
@@ -195,7 +195,7 @@ async function searchLocal(query, kind, opts, showStore, airGapped) {
195
195
  const factory = await searchFactory(projectDir, query, kind);
196
196
  let entries = unionEntries(await searchIndex(query, kind), factory);
197
197
  if (entries.length === 0 && !query && !kind && !airGapped) {
198
- const { autoSyncForSearch } = await import('../source-Y5YQ7M53.js');
198
+ const { autoSyncForSearch } = await import('../source-CFQESKJU.js');
199
199
  if (await autoSyncForSearch(projectDir)) {
200
200
  entries = unionEntries(await searchIndex(query, kind), factory);
201
201
  }
@@ -265,7 +265,7 @@ async function searchStore(query, kind, opts, airGapped) {
265
265
  logInfo("air-gapped (cache_ttl: 0) \u2014 local sources only");
266
266
  return;
267
267
  }
268
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-SUVOMIWZ.js');
268
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-R62UBL6E.js');
269
269
  try {
270
270
  const remote = await openCatalogSource2({ projectDir: path35__default.resolve(opts.projectDir) });
271
271
  const assets = await remote.listAssets(kind ? { kind } : {});
@@ -583,7 +583,7 @@ async function resolveInfoEntry(am2, ref, opts) {
583
583
  return { entry: match ?? deployed };
584
584
  }
585
585
  const lookup = opts.storeLookup ?? (async (filter) => {
586
- const { resolveCatalogSource } = await import('../open-library-SUVOMIWZ.js');
586
+ const { resolveCatalogSource } = await import('../open-library-R62UBL6E.js');
587
587
  const { source, close } = await resolveCatalogSource({ projectDir: opts.projectDir });
588
588
  try {
589
589
  return await source.listAssets(filter);
@@ -599,7 +599,7 @@ async function resolveInfoEntry(am2, ref, opts) {
599
599
  );
600
600
  return { entry: hit ? catalogAssetToEntry(hit) : null };
601
601
  } catch (err) {
602
- const { LocalCatalogDisabledError } = await import('../open-library-SUVOMIWZ.js');
602
+ const { LocalCatalogDisabledError } = await import('../open-library-R62UBL6E.js');
603
603
  const storeNote = err instanceof Error ? err.message : String(err);
604
604
  const disabled = err instanceof LocalCatalogDisabledError || /catalog\.url/i.test(storeNote);
605
605
  return { entry: null, storeNote, ...disabled ? { storeDisabled: true } : {} };
@@ -1246,7 +1246,7 @@ function makeCatalogCommand() {
1246
1246
  return catalog;
1247
1247
  }
1248
1248
  async function runLocalCatalogTest(projectDir) {
1249
- const { resolveCatalogSource } = await import('../open-library-SUVOMIWZ.js');
1249
+ const { resolveCatalogSource } = await import('../open-library-R62UBL6E.js');
1250
1250
  let resolved;
1251
1251
  try {
1252
1252
  resolved = await resolveCatalogSource({ projectDir });
@@ -3700,16 +3700,16 @@ function makeLibraryCommand() {
3700
3700
  "With --create-repo: create the repo private (the store only accepts public repos)"
3701
3701
  ).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(
3702
3702
  async (lib, opts) => {
3703
- const { runLibraryPublish } = await import('../library-publish-2PNWJJOY.js');
3703
+ const { runLibraryPublish } = await import('../library-publish-KKT73FJK.js');
3704
3704
  await withStoreErrorHandling(() => runLibraryPublish(lib, opts));
3705
3705
  }
3706
3706
  );
3707
3707
  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) => {
3708
- const { runLibraryRegister } = await import('../library-publish-2PNWJJOY.js');
3708
+ const { runLibraryRegister } = await import('../library-publish-KKT73FJK.js');
3709
3709
  await withStoreErrorHandling(() => runLibraryRegister(lib, opts));
3710
3710
  });
3711
3711
  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) => {
3712
- const { runLibraryYank } = await import('../library-publish-2PNWJJOY.js');
3712
+ const { runLibraryYank } = await import('../library-publish-KKT73FJK.js');
3713
3713
  await withStoreErrorHandling(() => runLibraryYank(lib, opts));
3714
3714
  });
3715
3715
  return cmd;
@@ -4448,7 +4448,7 @@ function scheduleSoftDepPreview() {
4448
4448
  }
4449
4449
  async function loadAssets() {
4450
4450
  softDepPreviewCache.clear();
4451
- const { gatherAssetFeeds } = await import('../asset-feeds-UYIFZKKG.js');
4451
+ const { gatherAssetFeeds } = await import('../asset-feeds-KXL45ALC.js');
4452
4452
  const { entries, domains, notes } = await gatherAssetFeeds(am, am.projectDir);
4453
4453
  if (notes.length > 0) {
4454
4454
  state.message = notes.map((n) => `[${n.feed}] ${n.message}`).join(" \u2022 ");
@@ -4654,7 +4654,7 @@ function reconcileCollapsedSets(rows) {
4654
4654
  async function loadSourcesAndLibraries() {
4655
4655
  try {
4656
4656
  const [{ openLibraryManager: openLibraryManager2 }, { getGlobalCacheDir: getGlobalCacheDir2, globalSkaileDir: globalSkaileDir2 }] = await Promise.all([
4657
- import('../open-library-SUVOMIWZ.js'),
4657
+ import('../open-library-R62UBL6E.js'),
4658
4658
  import('../core/index.js')
4659
4659
  ]);
4660
4660
  const { manager, library, close } = await openLibraryManager2();
@@ -7490,7 +7490,7 @@ function makeServeCommand() {
7490
7490
  );
7491
7491
  }
7492
7492
  async function ensurePluginsLoadedForServe(projectDir) {
7493
- const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-DF55G2YC.js');
7493
+ const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-EP6H3O3S.js');
7494
7494
  try {
7495
7495
  const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
7496
7496
  const config = resolveSkWorkspaceConfig2(projectDir);
@@ -7509,7 +7509,7 @@ async function ensurePluginsLoadedForServe(projectDir) {
7509
7509
  }
7510
7510
  }
7511
7511
  async function runCompileTest(opts) {
7512
- const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-DF55G2YC.js');
7512
+ const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-EP6H3O3S.js');
7513
7513
  const { tmpdir } = await import('os');
7514
7514
  const { dirname: dirname4, join: join6, resolve: resolve5 } = await import('path');
7515
7515
  const { fileURLToPath: fileURLToPath2 } = await import('url');
@@ -8392,7 +8392,7 @@ function makeStoreCommand() {
8392
8392
  process.exit(2);
8393
8393
  });
8394
8394
  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) => {
8395
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-SUVOMIWZ.js');
8395
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-R62UBL6E.js');
8396
8396
  try {
8397
8397
  const remote = await openCatalogSource2({ projectDir: path35__default.resolve(opts.projectDir) });
8398
8398
  const assets = await remote.listAssets(opts.kind ? { kind: opts.kind } : {});
@@ -8420,8 +8420,8 @@ function makeStoreCommand() {
8420
8420
  }
8421
8421
  });
8422
8422
  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) => {
8423
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-SUVOMIWZ.js');
8424
- const { supportsInstallManifest } = await import('../project-RTLVOXUU.js');
8423
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-R62UBL6E.js');
8424
+ const { supportsInstallManifest } = await import('../project-GCW5DFAB.js');
8425
8425
  try {
8426
8426
  const remote = await openCatalogSource2({ projectDir: path35__default.resolve(opts.projectDir) });
8427
8427
  const asset = await remote.resolve(ref);
@@ -9518,7 +9518,7 @@ async function bootstrapUserConfig() {
9518
9518
  }
9519
9519
  async function hydrateInitSources(resolved, created) {
9520
9520
  try {
9521
- const { ensureSourcesCloned } = await import('../ensure-sources-VX63EKY7.js');
9521
+ const { ensureSourcesCloned } = await import('../ensure-sources-J5CDTQ36.js');
9522
9522
  const hydrate = ensureSourcesCloned(resolved, { quiet: true });
9523
9523
  for (const n of hydrate.cloned) created.push(`~/.skaile/cache/sources/${n}/`);
9524
9524
  if (hydrate.failed.length > 0) {
@@ -9558,7 +9558,7 @@ function printInitSummary(resolved, projectDir, created) {
9558
9558
  console.log();
9559
9559
  }
9560
9560
  program.command("setup").description("Interactive provider setup wizard").action(async () => {
9561
- const { cmdSetup } = await import('../setup-ZA7VZL72.js');
9561
+ const { cmdSetup } = await import('../setup-Q3LXY5AE.js');
9562
9562
  await cmdSetup([], { projectDir: process.cwd() });
9563
9563
  });
9564
9564
  program.addCommand(makeInstallCommand());
@@ -1,15 +1,15 @@
1
- export { AbstractConnector, BUILTIN_CONNECTOR_CATALOG, CONNECT_FAILURE_CARRY_OVER_TTL_MS, ConnectFailureCarryOver, ConnectorManager, FlowAdapter, LogBuffer, ManagedGitconfigCollisionError, NO_ACTIVE_FLOW_ERROR, PortPool, atomicReplaceCredential, buildConnectorPromptSection, buildLazyFlowToolDefs, buildLazySdkFlowTools, buildSdkConnectorTools, buildSdkFlowTools, checkFleetMountLiveness, classifyConnectError, createFsWatcher, createWorktree, defaultSpawn, ensureDirMode, ensureFleetMounted, ensureRefreshAttemptStamp, findGitRoot, findMissingPackages, getConnector, installNpmPackages, isFleetManaged, isPackageResolvable, listConnectors, listWorktrees, missingTokenMediatorMessage, registerBuiltinConnectors, removeMountBlock, removeUnavailableMountBlock, renderCredentialHelperScript, tryGetConnector, worktreeRegistry, writeHelperScript, writeMountBlock, writeUnavailableMountBlock } from '../chunk-J5UF3OOS.js';
2
- export { CONNECT_ERROR_KIND_PROPERTY, ClassifiedConnectError, declaredConnectErrorKind, withConnectErrorKind } from '../chunk-DV47JNI4.js';
1
+ export { AbstractConnector, BUILTIN_CONNECTOR_CATALOG, CONNECT_FAILURE_CARRY_OVER_TTL_MS, ConnectFailureCarryOver, ConnectorManager, FlowAdapter, LogBuffer, ManagedGitconfigCollisionError, NO_ACTIVE_FLOW_ERROR, PortPool, atomicReplaceCredential, buildConnectorPromptSection, buildLazyFlowToolDefs, buildLazySdkFlowTools, buildSdkConnectorTools, buildSdkFlowTools, checkFleetMountLiveness, classifyConnectError, createFsWatcher, createWorktree, defaultSpawn, ensureDirMode, ensureFleetMounted, ensureRefreshAttemptStamp, findGitRoot, findMissingPackages, getConnector, installNpmPackages, isFleetManaged, isPackageResolvable, listConnectors, listWorktrees, missingTokenMediatorMessage, registerBuiltinConnectors, removeMountBlock, removeUnavailableMountBlock, renderCredentialHelperScript, tryGetConnector, worktreeRegistry, writeHelperScript, writeMountBlock, writeUnavailableMountBlock } from '../chunk-5RWL4L3X.js';
2
+ export { CONNECT_ERROR_KIND_PROPERTY, ClassifiedConnectError, declaredConnectErrorKind, withConnectErrorKind } from '../chunk-KC3OF6B2.js';
3
3
  export { ConnectorFieldMissingError, ConnectorStartupError, EnvSecretProvider, ForgeSecretProvider, InMemorySecretProvider, LegacyAuthGrammarError, LockedSecretProvider, OAuthRequiredError, PreMintedSecretProvider, SecretProviderChain, createCliSecretProviderChain, createForgeSecretProviderChain, deriveSingleMaterializedConnectorDeclaration, fromMaterializedConnectorMd, isKnownSecretRef, loadConnectorDeclarations, loadMaterializedConnectorDeclarations, loadYamlConnectorDeclarations, readUnavailableMarker, resolveAuthRef, resolveBackendAuthFor, resolvedConfigToDeclarations, withMaterializedConnectorDeclarations } from '../chunk-YQEF36D5.js';
4
- import '../chunk-7UL2SQQH.js';
4
+ import '../chunk-M7GPCWEV.js';
5
5
  import '../chunk-5NYBY6ZE.js';
6
6
  import '../chunk-EINLFFP6.js';
7
7
  import '../chunk-LOO5CB5M.js';
8
- import '../chunk-PRCUGFXV.js';
9
- import '../chunk-4WKZEMBD.js';
8
+ import '../chunk-RDYI4MML.js';
9
+ import '../chunk-WCWFS36P.js';
10
10
  import '../chunk-XBSQ4KMC.js';
11
11
  import '../chunk-YROR332M.js';
12
- import '../chunk-6KPQDP7P.js';
12
+ import '../chunk-TSVRKUGV.js';
13
13
  import '../chunk-6E6PKKAD.js';
14
14
  import '../chunk-IFGTRL2I.js';
15
15
  import '../chunk-7RC37XFW.js';
@@ -18,7 +18,7 @@ import '../chunk-DIQDYNXZ.js';
18
18
  import '../chunk-K3IBZ2UZ.js';
19
19
  import '../chunk-UDFWBALP.js';
20
20
  import '../chunk-ORH2BZEM.js';
21
- import '../chunk-YNUBJY3L.js';
21
+ import '../chunk-IDEA6CYI.js';
22
22
  import '../chunk-YV3YI3TA.js';
23
23
  import '../chunk-4GY63JU6.js';
24
24
  import '../chunk-36ML6SFP.js';
@@ -1,5 +1,5 @@
1
- export { CONNECT_ERROR_KIND_PROPERTY, ClassifiedConnectError, withConnectErrorKind } from '../chunk-DV47JNI4.js';
2
- import '../chunk-YNUBJY3L.js';
1
+ export { CONNECT_ERROR_KIND_PROPERTY, ClassifiedConnectError, withConnectErrorKind } from '../chunk-KC3OF6B2.js';
2
+ import '../chunk-IDEA6CYI.js';
3
3
  import '../chunk-NSBPE2FW.js';
4
4
  import * as z from 'zod';
5
5
 
@@ -1,5 +1,5 @@
1
- import { logErr, logOk, logInfo } from './chunk-ILAZDNIA.js';
2
- import './chunk-QWWDDU5Z.js';
1
+ import { logErr, logOk, logInfo } from './chunk-NLKIW2VI.js';
2
+ import './chunk-TQ6XNACF.js';
3
3
  import './chunk-XU7JET5Z.js';
4
4
  import './chunk-OLMNDIAU.js';
5
5
  import './chunk-2EL2PBRC.js';
@@ -91,5 +91,5 @@ function ensureSourcesCloned(projectDir, opts = {}) {
91
91
  }
92
92
 
93
93
  export { ensureSourcesCloned };
94
- //# sourceMappingURL=ensure-sources-VX63EKY7.js.map
95
- //# sourceMappingURL=ensure-sources-VX63EKY7.js.map
94
+ //# sourceMappingURL=ensure-sources-J5CDTQ36.js.map
95
+ //# sourceMappingURL=ensure-sources-J5CDTQ36.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../cli/src/ensure-sources.ts"],"names":[],"mappings":"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","file":"ensure-sources-VX63EKY7.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-J5CDTQ36.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,15 +1,15 @@
1
- export { BoxConnector, createConnector4 as createConnector } from '../../chunk-J5UF3OOS.js';
2
- import '../../chunk-DV47JNI4.js';
1
+ export { BoxConnector, createConnector4 as createConnector } from '../../chunk-5RWL4L3X.js';
2
+ import '../../chunk-KC3OF6B2.js';
3
3
  import '../../chunk-YQEF36D5.js';
4
- import '../../chunk-7UL2SQQH.js';
4
+ import '../../chunk-M7GPCWEV.js';
5
5
  import '../../chunk-5NYBY6ZE.js';
6
6
  import '../../chunk-EINLFFP6.js';
7
7
  import '../../chunk-LOO5CB5M.js';
8
- import '../../chunk-PRCUGFXV.js';
9
- import '../../chunk-4WKZEMBD.js';
8
+ import '../../chunk-RDYI4MML.js';
9
+ import '../../chunk-WCWFS36P.js';
10
10
  import '../../chunk-XBSQ4KMC.js';
11
11
  import '../../chunk-YROR332M.js';
12
- import '../../chunk-6KPQDP7P.js';
12
+ import '../../chunk-TSVRKUGV.js';
13
13
  import '../../chunk-6E6PKKAD.js';
14
14
  import '../../chunk-IFGTRL2I.js';
15
15
  import '../../chunk-7RC37XFW.js';
@@ -18,7 +18,7 @@ import '../../chunk-DIQDYNXZ.js';
18
18
  import '../../chunk-K3IBZ2UZ.js';
19
19
  import '../../chunk-UDFWBALP.js';
20
20
  import '../../chunk-ORH2BZEM.js';
21
- import '../../chunk-YNUBJY3L.js';
21
+ import '../../chunk-IDEA6CYI.js';
22
22
  import '../../chunk-YV3YI3TA.js';
23
23
  import '../../chunk-4GY63JU6.js';
24
24
  import '../../chunk-36ML6SFP.js';
@@ -1,15 +1,15 @@
1
- export { DeployConnector, createConnector2 as createConnector } from '../../chunk-J5UF3OOS.js';
2
- import '../../chunk-DV47JNI4.js';
1
+ export { DeployConnector, createConnector2 as createConnector } from '../../chunk-5RWL4L3X.js';
2
+ import '../../chunk-KC3OF6B2.js';
3
3
  import '../../chunk-YQEF36D5.js';
4
- import '../../chunk-7UL2SQQH.js';
4
+ import '../../chunk-M7GPCWEV.js';
5
5
  import '../../chunk-5NYBY6ZE.js';
6
6
  import '../../chunk-EINLFFP6.js';
7
7
  import '../../chunk-LOO5CB5M.js';
8
- import '../../chunk-PRCUGFXV.js';
9
- import '../../chunk-4WKZEMBD.js';
8
+ import '../../chunk-RDYI4MML.js';
9
+ import '../../chunk-WCWFS36P.js';
10
10
  import '../../chunk-XBSQ4KMC.js';
11
11
  import '../../chunk-YROR332M.js';
12
- import '../../chunk-6KPQDP7P.js';
12
+ import '../../chunk-TSVRKUGV.js';
13
13
  import '../../chunk-6E6PKKAD.js';
14
14
  import '../../chunk-IFGTRL2I.js';
15
15
  import '../../chunk-7RC37XFW.js';
@@ -18,7 +18,7 @@ import '../../chunk-DIQDYNXZ.js';
18
18
  import '../../chunk-K3IBZ2UZ.js';
19
19
  import '../../chunk-UDFWBALP.js';
20
20
  import '../../chunk-ORH2BZEM.js';
21
- import '../../chunk-YNUBJY3L.js';
21
+ import '../../chunk-IDEA6CYI.js';
22
22
  import '../../chunk-YV3YI3TA.js';
23
23
  import '../../chunk-4GY63JU6.js';
24
24
  import '../../chunk-36ML6SFP.js';
@@ -1,15 +1,15 @@
1
- export { DevServerConnector, createConnector3 as createConnector } from '../../chunk-J5UF3OOS.js';
2
- import '../../chunk-DV47JNI4.js';
1
+ export { DevServerConnector, createConnector3 as createConnector } from '../../chunk-5RWL4L3X.js';
2
+ import '../../chunk-KC3OF6B2.js';
3
3
  import '../../chunk-YQEF36D5.js';
4
- import '../../chunk-7UL2SQQH.js';
4
+ import '../../chunk-M7GPCWEV.js';
5
5
  import '../../chunk-5NYBY6ZE.js';
6
6
  import '../../chunk-EINLFFP6.js';
7
7
  import '../../chunk-LOO5CB5M.js';
8
- import '../../chunk-PRCUGFXV.js';
9
- import '../../chunk-4WKZEMBD.js';
8
+ import '../../chunk-RDYI4MML.js';
9
+ import '../../chunk-WCWFS36P.js';
10
10
  import '../../chunk-XBSQ4KMC.js';
11
11
  import '../../chunk-YROR332M.js';
12
- import '../../chunk-6KPQDP7P.js';
12
+ import '../../chunk-TSVRKUGV.js';
13
13
  import '../../chunk-6E6PKKAD.js';
14
14
  import '../../chunk-IFGTRL2I.js';
15
15
  import '../../chunk-7RC37XFW.js';
@@ -18,7 +18,7 @@ import '../../chunk-DIQDYNXZ.js';
18
18
  import '../../chunk-K3IBZ2UZ.js';
19
19
  import '../../chunk-UDFWBALP.js';
20
20
  import '../../chunk-ORH2BZEM.js';
21
- import '../../chunk-YNUBJY3L.js';
21
+ import '../../chunk-IDEA6CYI.js';
22
22
  import '../../chunk-YV3YI3TA.js';
23
23
  import '../../chunk-4GY63JU6.js';
24
24
  import '../../chunk-36ML6SFP.js';
@@ -1,15 +1,15 @@
1
- export { FlowAdapter, createConnector, describeFlowOperations } from '../../../chunk-J5UF3OOS.js';
2
- import '../../../chunk-DV47JNI4.js';
1
+ export { FlowAdapter, createConnector, describeFlowOperations } from '../../../chunk-5RWL4L3X.js';
2
+ import '../../../chunk-KC3OF6B2.js';
3
3
  import '../../../chunk-YQEF36D5.js';
4
- import '../../../chunk-7UL2SQQH.js';
4
+ import '../../../chunk-M7GPCWEV.js';
5
5
  import '../../../chunk-5NYBY6ZE.js';
6
6
  import '../../../chunk-EINLFFP6.js';
7
7
  import '../../../chunk-LOO5CB5M.js';
8
- import '../../../chunk-PRCUGFXV.js';
9
- import '../../../chunk-4WKZEMBD.js';
8
+ import '../../../chunk-RDYI4MML.js';
9
+ import '../../../chunk-WCWFS36P.js';
10
10
  import '../../../chunk-XBSQ4KMC.js';
11
11
  import '../../../chunk-YROR332M.js';
12
- import '../../../chunk-6KPQDP7P.js';
12
+ import '../../../chunk-TSVRKUGV.js';
13
13
  import '../../../chunk-6E6PKKAD.js';
14
14
  import '../../../chunk-IFGTRL2I.js';
15
15
  export { isBlocking } from '../../../chunk-7RC37XFW.js';
@@ -18,7 +18,7 @@ import '../../../chunk-DIQDYNXZ.js';
18
18
  import '../../../chunk-K3IBZ2UZ.js';
19
19
  import '../../../chunk-UDFWBALP.js';
20
20
  import '../../../chunk-ORH2BZEM.js';
21
- import '../../../chunk-YNUBJY3L.js';
21
+ import '../../../chunk-IDEA6CYI.js';
22
22
  import '../../../chunk-YV3YI3TA.js';
23
23
  import '../../../chunk-4GY63JU6.js';
24
24
  import '../../../chunk-36ML6SFP.js';
@@ -1,18 +1,18 @@
1
- export { awaitAgentEnd, resolveFlowPath, resumeFlow, runFlow } from '../../../chunk-27DN4DZD.js';
1
+ export { awaitAgentEnd, resolveFlowPath, resumeFlow, runFlow } from '../../../chunk-252TK4RU.js';
2
2
  import '../../../chunk-4R6DROGN.js';
3
3
  import '../../../chunk-OQRB7JUS.js';
4
- import '../../../chunk-J5UF3OOS.js';
5
- import '../../../chunk-DV47JNI4.js';
4
+ import '../../../chunk-5RWL4L3X.js';
5
+ import '../../../chunk-KC3OF6B2.js';
6
6
  import '../../../chunk-YQEF36D5.js';
7
- import '../../../chunk-7UL2SQQH.js';
7
+ import '../../../chunk-M7GPCWEV.js';
8
8
  import '../../../chunk-5NYBY6ZE.js';
9
9
  import '../../../chunk-EINLFFP6.js';
10
10
  import '../../../chunk-LOO5CB5M.js';
11
- import '../../../chunk-PRCUGFXV.js';
12
- import '../../../chunk-4WKZEMBD.js';
11
+ import '../../../chunk-RDYI4MML.js';
12
+ import '../../../chunk-WCWFS36P.js';
13
13
  import '../../../chunk-XBSQ4KMC.js';
14
14
  import '../../../chunk-YROR332M.js';
15
- import '../../../chunk-6KPQDP7P.js';
15
+ import '../../../chunk-TSVRKUGV.js';
16
16
  import '../../../chunk-6E6PKKAD.js';
17
17
  import '../../../chunk-IFGTRL2I.js';
18
18
  import '../../../chunk-7RC37XFW.js';
@@ -21,7 +21,7 @@ import '../../../chunk-DIQDYNXZ.js';
21
21
  import '../../../chunk-K3IBZ2UZ.js';
22
22
  import '../../../chunk-UDFWBALP.js';
23
23
  import '../../../chunk-ORH2BZEM.js';
24
- import '../../../chunk-YNUBJY3L.js';
24
+ import '../../../chunk-IDEA6CYI.js';
25
25
  import '../../../chunk-YV3YI3TA.js';
26
26
  import '../../../chunk-4GY63JU6.js';
27
27
  import '../../../chunk-36ML6SFP.js';
@@ -1,15 +1,15 @@
1
- export { ClassifierSubpromptRunner, FlowAdapter, SessionInlineSubFlowRunner, SessionNodeExecutor, SessionSubpromptRunner, buildFlowPromptEvent, classifierQuestion, createConnector, describeFlowOperations, driveOrchestratorTurn } from '../../chunk-J5UF3OOS.js';
2
- import '../../chunk-DV47JNI4.js';
1
+ export { ClassifierSubpromptRunner, FlowAdapter, SessionInlineSubFlowRunner, SessionNodeExecutor, SessionSubpromptRunner, buildFlowPromptEvent, classifierQuestion, createConnector, describeFlowOperations, driveOrchestratorTurn } from '../../chunk-5RWL4L3X.js';
2
+ import '../../chunk-KC3OF6B2.js';
3
3
  import '../../chunk-YQEF36D5.js';
4
- import '../../chunk-7UL2SQQH.js';
4
+ import '../../chunk-M7GPCWEV.js';
5
5
  import '../../chunk-5NYBY6ZE.js';
6
6
  import '../../chunk-EINLFFP6.js';
7
7
  import '../../chunk-LOO5CB5M.js';
8
- import '../../chunk-PRCUGFXV.js';
9
- import '../../chunk-4WKZEMBD.js';
8
+ import '../../chunk-RDYI4MML.js';
9
+ import '../../chunk-WCWFS36P.js';
10
10
  import '../../chunk-XBSQ4KMC.js';
11
11
  import '../../chunk-YROR332M.js';
12
- import '../../chunk-6KPQDP7P.js';
12
+ import '../../chunk-TSVRKUGV.js';
13
13
  import '../../chunk-6E6PKKAD.js';
14
14
  import '../../chunk-IFGTRL2I.js';
15
15
  import '../../chunk-7RC37XFW.js';
@@ -18,7 +18,7 @@ import '../../chunk-DIQDYNXZ.js';
18
18
  import '../../chunk-K3IBZ2UZ.js';
19
19
  import '../../chunk-UDFWBALP.js';
20
20
  import '../../chunk-ORH2BZEM.js';
21
- import '../../chunk-YNUBJY3L.js';
21
+ import '../../chunk-IDEA6CYI.js';
22
22
  import '../../chunk-YV3YI3TA.js';
23
23
  import '../../chunk-4GY63JU6.js';
24
24
  import '../../chunk-36ML6SFP.js';
@@ -1,15 +1,15 @@
1
- export { GitConnector, MAX_REARM_MS, MIN_REFRESH_DELAY_MS, REFRESH_LEAD_MS, __test, createConnector5 as createConnector, readGitSyncStatus } from '../../chunk-J5UF3OOS.js';
2
- import '../../chunk-DV47JNI4.js';
1
+ export { GitConnector, MAX_REARM_MS, MIN_REFRESH_DELAY_MS, REFRESH_LEAD_MS, __test, createConnector5 as createConnector, readGitSyncStatus } from '../../chunk-5RWL4L3X.js';
2
+ import '../../chunk-KC3OF6B2.js';
3
3
  import '../../chunk-YQEF36D5.js';
4
- import '../../chunk-7UL2SQQH.js';
4
+ import '../../chunk-M7GPCWEV.js';
5
5
  import '../../chunk-5NYBY6ZE.js';
6
6
  import '../../chunk-EINLFFP6.js';
7
7
  import '../../chunk-LOO5CB5M.js';
8
- import '../../chunk-PRCUGFXV.js';
9
- import '../../chunk-4WKZEMBD.js';
8
+ import '../../chunk-RDYI4MML.js';
9
+ import '../../chunk-WCWFS36P.js';
10
10
  import '../../chunk-XBSQ4KMC.js';
11
11
  import '../../chunk-YROR332M.js';
12
- import '../../chunk-6KPQDP7P.js';
12
+ import '../../chunk-TSVRKUGV.js';
13
13
  import '../../chunk-6E6PKKAD.js';
14
14
  import '../../chunk-IFGTRL2I.js';
15
15
  import '../../chunk-7RC37XFW.js';
@@ -18,7 +18,7 @@ import '../../chunk-DIQDYNXZ.js';
18
18
  import '../../chunk-K3IBZ2UZ.js';
19
19
  import '../../chunk-UDFWBALP.js';
20
20
  import '../../chunk-ORH2BZEM.js';
21
- import '../../chunk-YNUBJY3L.js';
21
+ import '../../chunk-IDEA6CYI.js';
22
22
  import '../../chunk-YV3YI3TA.js';
23
23
  import '../../chunk-4GY63JU6.js';
24
24
  import '../../chunk-36ML6SFP.js';
@@ -1,15 +1,15 @@
1
- export { GmailConnector, createConnector6 as createConnector } from '../../chunk-J5UF3OOS.js';
2
- import '../../chunk-DV47JNI4.js';
1
+ export { GmailConnector, createConnector6 as createConnector } from '../../chunk-5RWL4L3X.js';
2
+ import '../../chunk-KC3OF6B2.js';
3
3
  import '../../chunk-YQEF36D5.js';
4
- import '../../chunk-7UL2SQQH.js';
4
+ import '../../chunk-M7GPCWEV.js';
5
5
  import '../../chunk-5NYBY6ZE.js';
6
6
  import '../../chunk-EINLFFP6.js';
7
7
  import '../../chunk-LOO5CB5M.js';
8
- import '../../chunk-PRCUGFXV.js';
9
- import '../../chunk-4WKZEMBD.js';
8
+ import '../../chunk-RDYI4MML.js';
9
+ import '../../chunk-WCWFS36P.js';
10
10
  import '../../chunk-XBSQ4KMC.js';
11
11
  import '../../chunk-YROR332M.js';
12
- import '../../chunk-6KPQDP7P.js';
12
+ import '../../chunk-TSVRKUGV.js';
13
13
  import '../../chunk-6E6PKKAD.js';
14
14
  import '../../chunk-IFGTRL2I.js';
15
15
  import '../../chunk-7RC37XFW.js';
@@ -18,7 +18,7 @@ import '../../chunk-DIQDYNXZ.js';
18
18
  import '../../chunk-K3IBZ2UZ.js';
19
19
  import '../../chunk-UDFWBALP.js';
20
20
  import '../../chunk-ORH2BZEM.js';
21
- import '../../chunk-YNUBJY3L.js';
21
+ import '../../chunk-IDEA6CYI.js';
22
22
  import '../../chunk-YV3YI3TA.js';
23
23
  import '../../chunk-4GY63JU6.js';
24
24
  import '../../chunk-36ML6SFP.js';
@@ -1,15 +1,15 @@
1
- export { GoogleDriveConnector, createConnector7 as createConnector } from '../../chunk-J5UF3OOS.js';
2
- import '../../chunk-DV47JNI4.js';
1
+ export { GoogleDriveConnector, createConnector7 as createConnector } from '../../chunk-5RWL4L3X.js';
2
+ import '../../chunk-KC3OF6B2.js';
3
3
  import '../../chunk-YQEF36D5.js';
4
- import '../../chunk-7UL2SQQH.js';
4
+ import '../../chunk-M7GPCWEV.js';
5
5
  import '../../chunk-5NYBY6ZE.js';
6
6
  import '../../chunk-EINLFFP6.js';
7
7
  import '../../chunk-LOO5CB5M.js';
8
- import '../../chunk-PRCUGFXV.js';
9
- import '../../chunk-4WKZEMBD.js';
8
+ import '../../chunk-RDYI4MML.js';
9
+ import '../../chunk-WCWFS36P.js';
10
10
  import '../../chunk-XBSQ4KMC.js';
11
11
  import '../../chunk-YROR332M.js';
12
- import '../../chunk-6KPQDP7P.js';
12
+ import '../../chunk-TSVRKUGV.js';
13
13
  import '../../chunk-6E6PKKAD.js';
14
14
  import '../../chunk-IFGTRL2I.js';
15
15
  import '../../chunk-7RC37XFW.js';
@@ -18,7 +18,7 @@ import '../../chunk-DIQDYNXZ.js';
18
18
  import '../../chunk-K3IBZ2UZ.js';
19
19
  import '../../chunk-UDFWBALP.js';
20
20
  import '../../chunk-ORH2BZEM.js';
21
- import '../../chunk-YNUBJY3L.js';
21
+ import '../../chunk-IDEA6CYI.js';
22
22
  import '../../chunk-YV3YI3TA.js';
23
23
  import '../../chunk-4GY63JU6.js';
24
24
  import '../../chunk-36ML6SFP.js';