@skaile/workspaces 4.9.0 → 4.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/{asset-feeds-UHUJ7ALH.js → asset-feeds-23UCAOLX.js} +4 -4
  3. package/dist/{asset-feeds-UHUJ7ALH.js.map → asset-feeds-23UCAOLX.js.map} +1 -1
  4. package/dist/asset-manager/index.js +1 -1
  5. package/dist/{chunk-LOCIJAS3.js → chunk-2DGIAWKU.js} +113 -15
  6. package/dist/chunk-2DGIAWKU.js.map +1 -0
  7. package/dist/{chunk-D6FPKO62.js → chunk-5DHAVCKW.js} +2 -2
  8. package/dist/{chunk-D6FPKO62.js.map → chunk-5DHAVCKW.js.map} +1 -1
  9. package/dist/{chunk-6LEVXQAS.js → chunk-6BUJARLT.js} +3 -3
  10. package/dist/{chunk-6LEVXQAS.js.map → chunk-6BUJARLT.js.map} +1 -1
  11. package/dist/{chunk-2FDOV5JG.js → chunk-JBKXLCMG.js} +113 -8
  12. package/dist/chunk-JBKXLCMG.js.map +1 -0
  13. package/dist/{chunk-KYE66EEM.js → chunk-PAYS6YCK.js} +6 -6
  14. package/dist/{chunk-KYE66EEM.js.map → chunk-PAYS6YCK.js.map} +1 -1
  15. package/dist/{chunk-BHBXWDQU.js → chunk-Q3AK4IQG.js} +3 -3
  16. package/dist/{chunk-BHBXWDQU.js.map → chunk-Q3AK4IQG.js.map} +1 -1
  17. package/dist/{chunk-PZ6AUBGY.js → chunk-QJDVOKQO.js} +3 -3
  18. package/dist/{chunk-PZ6AUBGY.js.map → chunk-QJDVOKQO.js.map} +1 -1
  19. package/dist/{chunk-V62CAMBD.js → chunk-T4IXZOG2.js} +3 -3
  20. package/dist/{chunk-V62CAMBD.js.map → chunk-T4IXZOG2.js.map} +1 -1
  21. package/dist/{chunk-7644QU3C.js → chunk-UJ5O5KQB.js} +6 -6
  22. package/dist/{chunk-7644QU3C.js.map → chunk-UJ5O5KQB.js.map} +1 -1
  23. package/dist/{chunk-TVXLXNQE.js → chunk-XHKM7OMR.js} +2 -2
  24. package/dist/{chunk-TVXLXNQE.js.map → chunk-XHKM7OMR.js.map} +1 -1
  25. package/dist/{chunk-ZH3YEVKN.js → chunk-ZYAVNMKA.js} +3 -3
  26. package/dist/{chunk-ZH3YEVKN.js.map → chunk-ZYAVNMKA.js.map} +1 -1
  27. package/dist/cli/index.js +28 -28
  28. package/dist/connectors/index.js +1 -1
  29. package/dist/{ensure-sources-2LFWDM3X.js → ensure-sources-AGDLO3RW.js} +4 -4
  30. package/dist/{ensure-sources-2LFWDM3X.js.map → ensure-sources-AGDLO3RW.js.map} +1 -1
  31. package/dist/factory-assets/connectors/box.js +1 -1
  32. package/dist/factory-assets/connectors/deploy.js +1 -1
  33. package/dist/factory-assets/connectors/devserver.js +1 -1
  34. package/dist/factory-assets/connectors/flow/adapter.js +1 -1
  35. package/dist/factory-assets/connectors/flow/run-flow.js +2 -2
  36. package/dist/factory-assets/connectors/flow.js +1 -1
  37. package/dist/factory-assets/connectors/git/CONNECTOR.md +2 -1
  38. package/dist/factory-assets/connectors/git/driver.d.ts +25 -0
  39. package/dist/factory-assets/connectors/git/driver.d.ts.map +1 -1
  40. package/dist/factory-assets/connectors/git.js +1 -1
  41. package/dist/factory-assets/connectors/gmail.js +1 -1
  42. package/dist/factory-assets/connectors/googledrive.js +1 -1
  43. package/dist/factory-assets/connectors/local.js +1 -1
  44. package/dist/factory-assets/connectors/mattermost.js +1 -1
  45. package/dist/factory-assets/connectors/memory.js +1 -1
  46. package/dist/factory-assets/connectors/minio.js +1 -1
  47. package/dist/factory-assets/connectors/postgres.js +1 -1
  48. package/dist/factory-assets/connectors/s3.js +1 -1
  49. package/dist/factory-assets/connectors/sharepoint.js +1 -1
  50. package/dist/factory-assets/connectors/sqlite.js +1 -1
  51. package/dist/factory-assets/connectors/static-server.js +1 -1
  52. package/dist/factory-assets/connectors/tunnel.js +1 -1
  53. package/dist/factory-assets/connectors/webdav.js +1 -1
  54. package/dist/factory-assets/connectors/xstate-store.js +1 -1
  55. package/dist/factory-assets/connectors/xstate.js +1 -1
  56. package/dist/{helpers-NR3YI5RG.js → helpers-4H73P3WO.js} +4 -4
  57. package/dist/{helpers-NR3YI5RG.js.map → helpers-4H73P3WO.js.map} +1 -1
  58. package/dist/{library-publish-ZHO7XA5C.js → library-publish-WTVCH5UI.js} +6 -6
  59. package/dist/{library-publish-ZHO7XA5C.js.map → library-publish-WTVCH5UI.js.map} +1 -1
  60. package/dist/{open-library-F7JM7RDR.js → open-library-KS4IT4C7.js} +5 -5
  61. package/dist/{open-library-F7JM7RDR.js.map → open-library-KS4IT4C7.js.map} +1 -1
  62. package/dist/{project-HIOOMV4D.js → project-DWCNGU56.js} +5 -5
  63. package/dist/{project-HIOOMV4D.js.map → project-DWCNGU56.js.map} +1 -1
  64. package/dist/runner/index.js +4 -4
  65. package/dist/runner/src/serve-credentials.d.ts +66 -0
  66. package/dist/runner/src/serve-credentials.d.ts.map +1 -1
  67. package/dist/runner/src/serve.d.ts.map +1 -1
  68. package/dist/sdk/asset-manager.js +1 -1
  69. package/dist/sdk/index.js +4 -4
  70. package/dist/sdk/runner.js +4 -4
  71. package/dist/{setup-P4J7EN6S.js → setup-EPDRYWWI.js} +5 -5
  72. package/dist/{setup-P4J7EN6S.js.map → setup-EPDRYWWI.js.map} +1 -1
  73. package/dist/{source-S4DM4ZFQ.js → source-7TLL7GO7.js} +6 -6
  74. package/dist/{source-S4DM4ZFQ.js.map → source-7TLL7GO7.js.map} +1 -1
  75. package/dist/{source-manifest-publish-ABXDZTVG.js → source-manifest-publish-NX3JBMUT.js} +7 -7
  76. package/dist/{source-manifest-publish-ABXDZTVG.js.map → source-manifest-publish-NX3JBMUT.js.map} +1 -1
  77. package/dist/tui/index.js +4 -4
  78. package/dist/workspace-plugin/index.js +1 -1
  79. package/package.json +1 -1
  80. package/dist/chunk-2FDOV5JG.js.map +0 -1
  81. package/dist/chunk-LOCIJAS3.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { logErr } from './chunk-6LEVXQAS.js';
1
+ import { logErr } from './chunk-6BUJARLT.js';
2
2
  import { flowKindProvider } from './chunk-SJYOKKYO.js';
3
3
  import { knowledgeKindProvider } from './chunk-HUF4ON2C.js';
4
4
  import { createDefaultRegistry } from './chunk-M5H4DWIA.js';
@@ -103,5 +103,5 @@ async function openLibraryManager() {
103
103
  }
104
104
 
105
105
  export { LocalCatalogDisabledError, createFullRegistry, openCatalogSource, openLibrary, openLibraryManager, resolveCatalogSource };
106
- //# sourceMappingURL=chunk-ZH3YEVKN.js.map
107
- //# sourceMappingURL=chunk-ZH3YEVKN.js.map
106
+ //# sourceMappingURL=chunk-ZYAVNMKA.js.map
107
+ //# sourceMappingURL=chunk-ZYAVNMKA.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../cli/src/open-registry.ts","../cli/src/open-library.ts"],"names":["source"],"mappings":"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","file":"chunk-ZH3YEVKN.js","sourcesContent":["/**\n * open-registry.ts — shared helper to create a full AssetKindRegistry.\n *\n * Bootstraps the registry with all built-in providers (9 core + preset)\n * from @skaile/discovery, plus the extension kind providers (flow from\n * @skaile/workspaces/factory-assets/connectors/flow/engine, knowledge from @skaile/library).\n *\n * This is the single registration point for the CLI. All code paths\n * that need a registry (source sync, lib-status, etc.) should use this.\n */\n\nimport type { AssetKindRegistry } from \"@skaile/workspaces/discovery\";\nimport { createDefaultRegistry } from \"@skaile/workspaces/discovery\";\nimport { flowKindProvider } from \"@skaile/workspaces/factory-assets/connectors/flow/engine\";\nimport { knowledgeKindProvider } from \"@skaile/workspaces/library\";\n\n/**\n * Create a fully-configured AssetKindRegistry with all known providers.\n *\n * Registers:\n * - 9 core kinds (skill, agent, connector, mount, mcp-server, contract, prompt, persona, ruleset)\n * - preset (composition entity)\n * - flow (extension, from @skaile/workspaces/factory-assets/connectors/flow/engine)\n * - knowledge (extension, from @skaile/library)\n *\n * @returns An unfrozen registry (auto-freezes on first read)\n */\nexport function createFullRegistry(): AssetKindRegistry {\n const registry = createDefaultRegistry();\n registry.register(flowKindProvider);\n registry.register(knowledgeKindProvider);\n return registry;\n}\n","/**\n * open-library.ts — shared helpers to open the LocalIndex and the configured\n * Catalog source.\n *\n * Lazy-loads the `@skaile/workspaces/library` subpath and returns the\n * LocalIndex instance (backed by `@libsql/client`; runs on Node and Bun).\n * The catalog-source helper reads\n * `~/.skaile/config.yaml` (and project-level overlay if `projectDir` is given)\n * to decide between {@link RemoteCatalogSource} (default — points at\n * `https://skaile.store`) and a {@link LocalCatalogSource} bound to the most\n * recent local library registered via `skaile source add`.\n */\n\nimport { logErr } from \"./helpers.ts\";\nimport { createFullRegistry } from \"./open-registry.ts\";\n\n/** Thrown by {@link openCatalogSource} when `catalog.url` is the `local` sentinel. */\nexport class LocalCatalogDisabledError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"LocalCatalogDisabledError\";\n }\n}\n\n/**\n * Open the LocalIndex with the full kind registry. Exits with code 1\n * if the library directory cannot be created.\n *\n * @returns A `LocalIndex` instance ready for use.\n * @docLink cli/dev-guide#open-library\n */\nexport async function openLibrary() {\n try {\n const { LocalIndex } = await import(\"@skaile/workspaces/library\");\n return new LocalIndex({ kindRegistry: createFullRegistry() });\n } catch (err) {\n logErr(`Could not open LocalIndex: ${err instanceof Error ? err.message : String(err)}`);\n process.exit(1);\n }\n}\n\n/**\n * Resolve the configured **remote** Catalog source for the CLI.\n *\n * Reads `~/.skaile/config.yaml` (plus the optional project-level overlay) and\n * returns a {@link RemoteCatalogSource} pointing at `catalog.url` (default:\n * `https://skaile.store`). The `cache_ttl: 0` config flag flips the source\n * into air-gapped mode: network reads are disabled, only `skaile update`\n * performs refreshes.\n *\n * **Local-mode rejection.** If the resolved config has `catalog.url: local`\n * this helper throws — callers wanting the dispatched local-or-remote source\n * must use {@link resolveCatalogSource}. Remote-only consumers like\n * `skaile update --catalog-only` rely on this strict behaviour.\n *\n * @param opts - Project directory (overlays project config) and explicit overrides.\n * @returns A configured {@link RemoteCatalogSource}.\n * @throws When `catalog.url` is the `local` sentinel.\n * @docLink cli/dev-guide#open-library\n */\nexport async function openCatalogSource(opts?: {\n projectDir?: string;\n baseUrlOverride?: string;\n /** Override the user-config path for tests. */\n userConfigFile?: string;\n}): Promise<\n | import(\"@skaile/workspaces/library\").RemoteCatalogSource\n | import(\"@skaile/workspaces/library\").RestCatalogSource\n> {\n const { resolveConfig, RemoteCatalogSource, RestCatalogSource, isLocalCatalogUrl } = await import(\n \"@skaile/workspaces/library\"\n );\n const cfg = resolveConfig({\n projectDir: opts?.projectDir,\n userConfigFile: opts?.userConfigFile,\n });\n const baseUrl = opts?.baseUrlOverride ?? cfg.catalog.url;\n if (isLocalCatalogUrl(baseUrl)) {\n throw new LocalCatalogDisabledError(\n \"catalog.url is set to 'local' — remote catalog is disabled. \" +\n \"Use `skaile source add <path>` + `skaile source sync` for local sources, \" +\n \"or set `catalog.url: https://skaile.store` in ~/.skaile/config.yaml.\",\n );\n }\n const cacheTtlMs = cfg.catalog.cache_ttl * 1000;\n if (cfg.catalog.framing === \"rest\") {\n return new RestCatalogSource({ baseUrl, cacheTtlMs });\n }\n return new RemoteCatalogSource({ baseUrl, cacheTtlMs });\n}\n\n/**\n * Resolved catalog source plus a close handle for releasing any underlying\n * resources (e.g. the `LocalIndex` SQLite connection in local mode).\n *\n * Callers MUST invoke `close()` when done — typically in a `finally` block.\n * For remote-mode sources `close()` is a no-op, but the contract is uniform\n * so consumers don't have to branch.\n *\n * @docLink cli/dev-guide#open-library\n */\nexport interface ResolvedCatalogSource {\n /** The {@link ICatalogSource} ready for use. */\n source: import(\"@skaile/workspaces/library\").ICatalogSource;\n /** Release any underlying resources (SQLite handle in local mode). */\n close(): void;\n}\n\n/**\n * Resolve the configured Catalog source — local or remote — based on\n * `~/.skaile/config.yaml`.\n *\n * Dispatch:\n * - `catalog.url: local` → opens {@link LocalIndex}, picks the most recently\n * registered local library whose `path` still exists on disk, and returns a\n * {@link LocalCatalogSource} bound to that library. Throws if no usable\n * local library is registered.\n * - any URL → returns {@link RemoteCatalogSource} (same as\n * {@link openCatalogSource}).\n *\n * The returned `close()` releases the underlying `LocalIndex` SQLite handle\n * in local mode (no-op in remote mode). Callers MUST invoke it — typically in\n * a `finally` block — to satisfy `library/CLAUDE.md` § \"Notes for Consumers\".\n *\n * @param opts - Project directory (overlays project config) and explicit overrides.\n * @returns A `ResolvedCatalogSource` carrying the source and a close handle.\n * @throws When `local` is configured but no usable local library is registered.\n * @docLink cli/dev-guide#open-library\n */\nexport async function resolveCatalogSource(opts?: {\n projectDir?: string;\n baseUrlOverride?: string;\n /** Override the user-config path for tests. */\n userConfigFile?: string;\n}): Promise<ResolvedCatalogSource> {\n const {\n resolveConfig,\n RemoteCatalogSource,\n RestCatalogSource,\n LocalCatalogSource,\n isLocalCatalogUrl,\n } = await import(\"@skaile/workspaces/library\");\n const cfg = resolveConfig({\n projectDir: opts?.projectDir,\n userConfigFile: opts?.userConfigFile,\n });\n const baseUrl = opts?.baseUrlOverride ?? cfg.catalog.url;\n\n if (isLocalCatalogUrl(baseUrl)) {\n const fs = await import(\"node:fs\");\n const library = await openLibrary();\n try {\n const sources = await library.listSources();\n type LibraryRow = (typeof sources)[number];\n // Type-narrow: `path` is required for local libraries after the filter.\n const usable = sources\n .filter(\n (s): s is LibraryRow & { path: string } =>\n s.backend === \"local\" && typeof s.path === \"string\" && s.path.length > 0,\n )\n .sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());\n\n if (usable.length === 0) {\n throw new Error(\n \"catalog.url is set to 'local' but no local library is registered. \" +\n \"Run `skaile source add <path>` first, then `skaile source sync`.\",\n );\n }\n\n // Prefer the most recently added library whose path still exists.\n const present = usable.find((s) => fs.existsSync(s.path));\n if (!present) {\n const head = usable[0];\n throw new Error(\n `catalog.url is set to 'local' but every registered local library has a missing path on disk. ` +\n `Most recent: ${head.path} (library ${head.id}). ` +\n `Re-register with \\`skaile source add <existing-path>\\` or run \\`skaile source list\\` to inspect.`,\n );\n }\n\n const source = new LocalCatalogSource(\n library,\n present.id,\n present.path,\n createFullRegistry(),\n );\n return { source, close: () => library.close() };\n } catch (err) {\n // Release the handle on any failure during dispatch — otherwise the\n // SQLite WAL state leaks for the lifetime of the process.\n library.close();\n throw err;\n }\n }\n\n const cacheTtlMs = cfg.catalog.cache_ttl * 1000;\n const source =\n cfg.catalog.framing === \"rest\"\n ? new RestCatalogSource({ baseUrl, cacheTtlMs })\n : new RemoteCatalogSource({ baseUrl, cacheTtlMs });\n return { source, close: () => {} };\n}\n\n/**\n * Open the LibraryManager bound to the active LocalIndex.\n * Caller owns lifetime — must call `close()` (returned helper closes the\n * underlying LocalIndex).\n *\n * @docLink cli/dev-guide#open-library\n */\nexport async function openLibraryManager(): Promise<{\n manager: import(\"@skaile/workspaces/library\").LibraryManager;\n library: import(\"@skaile/workspaces/library\").LocalIndex;\n close: () => void;\n}> {\n const { LibraryManager } = await import(\"@skaile/workspaces/library\");\n const library = await openLibrary();\n const manager = new LibraryManager(library);\n return { manager, library, close: () => library.close() };\n}\n"]}
1
+ {"version":3,"sources":["../cli/src/open-registry.ts","../cli/src/open-library.ts"],"names":["source"],"mappings":"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","file":"chunk-ZYAVNMKA.js","sourcesContent":["/**\n * open-registry.ts — shared helper to create a full AssetKindRegistry.\n *\n * Bootstraps the registry with all built-in providers (9 core + preset)\n * from @skaile/discovery, plus the extension kind providers (flow from\n * @skaile/workspaces/factory-assets/connectors/flow/engine, knowledge from @skaile/library).\n *\n * This is the single registration point for the CLI. All code paths\n * that need a registry (source sync, lib-status, etc.) should use this.\n */\n\nimport type { AssetKindRegistry } from \"@skaile/workspaces/discovery\";\nimport { createDefaultRegistry } from \"@skaile/workspaces/discovery\";\nimport { flowKindProvider } from \"@skaile/workspaces/factory-assets/connectors/flow/engine\";\nimport { knowledgeKindProvider } from \"@skaile/workspaces/library\";\n\n/**\n * Create a fully-configured AssetKindRegistry with all known providers.\n *\n * Registers:\n * - 9 core kinds (skill, agent, connector, mount, mcp-server, contract, prompt, persona, ruleset)\n * - preset (composition entity)\n * - flow (extension, from @skaile/workspaces/factory-assets/connectors/flow/engine)\n * - knowledge (extension, from @skaile/library)\n *\n * @returns An unfrozen registry (auto-freezes on first read)\n */\nexport function createFullRegistry(): AssetKindRegistry {\n const registry = createDefaultRegistry();\n registry.register(flowKindProvider);\n registry.register(knowledgeKindProvider);\n return registry;\n}\n","/**\n * open-library.ts — shared helpers to open the LocalIndex and the configured\n * Catalog source.\n *\n * Lazy-loads the `@skaile/workspaces/library` subpath and returns the\n * LocalIndex instance (backed by `@libsql/client`; runs on Node and Bun).\n * The catalog-source helper reads\n * `~/.skaile/config.yaml` (and project-level overlay if `projectDir` is given)\n * to decide between {@link RemoteCatalogSource} (default — points at\n * `https://skaile.store`) and a {@link LocalCatalogSource} bound to the most\n * recent local library registered via `skaile source add`.\n */\n\nimport { logErr } from \"./helpers.ts\";\nimport { createFullRegistry } from \"./open-registry.ts\";\n\n/** Thrown by {@link openCatalogSource} when `catalog.url` is the `local` sentinel. */\nexport class LocalCatalogDisabledError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"LocalCatalogDisabledError\";\n }\n}\n\n/**\n * Open the LocalIndex with the full kind registry. Exits with code 1\n * if the library directory cannot be created.\n *\n * @returns A `LocalIndex` instance ready for use.\n * @docLink cli/dev-guide#open-library\n */\nexport async function openLibrary() {\n try {\n const { LocalIndex } = await import(\"@skaile/workspaces/library\");\n return new LocalIndex({ kindRegistry: createFullRegistry() });\n } catch (err) {\n logErr(`Could not open LocalIndex: ${err instanceof Error ? err.message : String(err)}`);\n process.exit(1);\n }\n}\n\n/**\n * Resolve the configured **remote** Catalog source for the CLI.\n *\n * Reads `~/.skaile/config.yaml` (plus the optional project-level overlay) and\n * returns a {@link RemoteCatalogSource} pointing at `catalog.url` (default:\n * `https://skaile.store`). The `cache_ttl: 0` config flag flips the source\n * into air-gapped mode: network reads are disabled, only `skaile update`\n * performs refreshes.\n *\n * **Local-mode rejection.** If the resolved config has `catalog.url: local`\n * this helper throws — callers wanting the dispatched local-or-remote source\n * must use {@link resolveCatalogSource}. Remote-only consumers like\n * `skaile update --catalog-only` rely on this strict behaviour.\n *\n * @param opts - Project directory (overlays project config) and explicit overrides.\n * @returns A configured {@link RemoteCatalogSource}.\n * @throws When `catalog.url` is the `local` sentinel.\n * @docLink cli/dev-guide#open-library\n */\nexport async function openCatalogSource(opts?: {\n projectDir?: string;\n baseUrlOverride?: string;\n /** Override the user-config path for tests. */\n userConfigFile?: string;\n}): Promise<\n | import(\"@skaile/workspaces/library\").RemoteCatalogSource\n | import(\"@skaile/workspaces/library\").RestCatalogSource\n> {\n const { resolveConfig, RemoteCatalogSource, RestCatalogSource, isLocalCatalogUrl } = await import(\n \"@skaile/workspaces/library\"\n );\n const cfg = resolveConfig({\n projectDir: opts?.projectDir,\n userConfigFile: opts?.userConfigFile,\n });\n const baseUrl = opts?.baseUrlOverride ?? cfg.catalog.url;\n if (isLocalCatalogUrl(baseUrl)) {\n throw new LocalCatalogDisabledError(\n \"catalog.url is set to 'local' — remote catalog is disabled. \" +\n \"Use `skaile source add <path>` + `skaile source sync` for local sources, \" +\n \"or set `catalog.url: https://skaile.store` in ~/.skaile/config.yaml.\",\n );\n }\n const cacheTtlMs = cfg.catalog.cache_ttl * 1000;\n if (cfg.catalog.framing === \"rest\") {\n return new RestCatalogSource({ baseUrl, cacheTtlMs });\n }\n return new RemoteCatalogSource({ baseUrl, cacheTtlMs });\n}\n\n/**\n * Resolved catalog source plus a close handle for releasing any underlying\n * resources (e.g. the `LocalIndex` SQLite connection in local mode).\n *\n * Callers MUST invoke `close()` when done — typically in a `finally` block.\n * For remote-mode sources `close()` is a no-op, but the contract is uniform\n * so consumers don't have to branch.\n *\n * @docLink cli/dev-guide#open-library\n */\nexport interface ResolvedCatalogSource {\n /** The {@link ICatalogSource} ready for use. */\n source: import(\"@skaile/workspaces/library\").ICatalogSource;\n /** Release any underlying resources (SQLite handle in local mode). */\n close(): void;\n}\n\n/**\n * Resolve the configured Catalog source — local or remote — based on\n * `~/.skaile/config.yaml`.\n *\n * Dispatch:\n * - `catalog.url: local` → opens {@link LocalIndex}, picks the most recently\n * registered local library whose `path` still exists on disk, and returns a\n * {@link LocalCatalogSource} bound to that library. Throws if no usable\n * local library is registered.\n * - any URL → returns {@link RemoteCatalogSource} (same as\n * {@link openCatalogSource}).\n *\n * The returned `close()` releases the underlying `LocalIndex` SQLite handle\n * in local mode (no-op in remote mode). Callers MUST invoke it — typically in\n * a `finally` block — to satisfy `library/CLAUDE.md` § \"Notes for Consumers\".\n *\n * @param opts - Project directory (overlays project config) and explicit overrides.\n * @returns A `ResolvedCatalogSource` carrying the source and a close handle.\n * @throws When `local` is configured but no usable local library is registered.\n * @docLink cli/dev-guide#open-library\n */\nexport async function resolveCatalogSource(opts?: {\n projectDir?: string;\n baseUrlOverride?: string;\n /** Override the user-config path for tests. */\n userConfigFile?: string;\n}): Promise<ResolvedCatalogSource> {\n const {\n resolveConfig,\n RemoteCatalogSource,\n RestCatalogSource,\n LocalCatalogSource,\n isLocalCatalogUrl,\n } = await import(\"@skaile/workspaces/library\");\n const cfg = resolveConfig({\n projectDir: opts?.projectDir,\n userConfigFile: opts?.userConfigFile,\n });\n const baseUrl = opts?.baseUrlOverride ?? cfg.catalog.url;\n\n if (isLocalCatalogUrl(baseUrl)) {\n const fs = await import(\"node:fs\");\n const library = await openLibrary();\n try {\n const sources = await library.listSources();\n type LibraryRow = (typeof sources)[number];\n // Type-narrow: `path` is required for local libraries after the filter.\n const usable = sources\n .filter(\n (s): s is LibraryRow & { path: string } =>\n s.backend === \"local\" && typeof s.path === \"string\" && s.path.length > 0,\n )\n .sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());\n\n if (usable.length === 0) {\n throw new Error(\n \"catalog.url is set to 'local' but no local library is registered. \" +\n \"Run `skaile source add <path>` first, then `skaile source sync`.\",\n );\n }\n\n // Prefer the most recently added library whose path still exists.\n const present = usable.find((s) => fs.existsSync(s.path));\n if (!present) {\n const head = usable[0];\n throw new Error(\n `catalog.url is set to 'local' but every registered local library has a missing path on disk. ` +\n `Most recent: ${head.path} (library ${head.id}). ` +\n `Re-register with \\`skaile source add <existing-path>\\` or run \\`skaile source list\\` to inspect.`,\n );\n }\n\n const source = new LocalCatalogSource(\n library,\n present.id,\n present.path,\n createFullRegistry(),\n );\n return { source, close: () => library.close() };\n } catch (err) {\n // Release the handle on any failure during dispatch — otherwise the\n // SQLite WAL state leaks for the lifetime of the process.\n library.close();\n throw err;\n }\n }\n\n const cacheTtlMs = cfg.catalog.cache_ttl * 1000;\n const source =\n cfg.catalog.framing === \"rest\"\n ? new RestCatalogSource({ baseUrl, cacheTtlMs })\n : new RemoteCatalogSource({ baseUrl, cacheTtlMs });\n return { source, close: () => {} };\n}\n\n/**\n * Open the LibraryManager bound to the active LocalIndex.\n * Caller owns lifetime — must call `close()` (returned helper closes the\n * underlying LocalIndex).\n *\n * @docLink cli/dev-guide#open-library\n */\nexport async function openLibraryManager(): Promise<{\n manager: import(\"@skaile/workspaces/library\").LibraryManager;\n library: import(\"@skaile/workspaces/library\").LocalIndex;\n close: () => void;\n}> {\n const { LibraryManager } = await import(\"@skaile/workspaces/library\");\n const library = await openLibrary();\n const manager = new LibraryManager(library);\n return { manager, library, close: () => library.close() };\n}\n"]}
package/dist/cli/index.js CHANGED
@@ -1,14 +1,14 @@
1
1
  #!/usr/bin/env node
2
2
  import { AI_RESOURCES } from '../chunk-F4PCBWPB.js';
3
- import { makeInstallCommand, makeCheckCommand, makeCleanCommand, reportInstalledSoftDeps } from '../chunk-7644QU3C.js';
4
- import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError } from '../chunk-BHBXWDQU.js';
3
+ import { makeInstallCommand, makeCheckCommand, makeCleanCommand, reportInstalledSoftDeps } from '../chunk-UJ5O5KQB.js';
4
+ import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError } from '../chunk-Q3AK4IQG.js';
5
5
  import { getStoreConfig, storeFetch, deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, isStoreAuthenticated, getStoreToken, getStoreIdentity } from '../chunk-I7IWIVXY.js';
6
- import { makeSourceCommand, syncProjectSources } from '../chunk-KYE66EEM.js';
7
- import { openCatalogSource, openLibraryManager, createFullRegistry, openLibrary } from '../chunk-ZH3YEVKN.js';
8
- import { logErr, S, logOk, logInfo, logWarn, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth } from '../chunk-6LEVXQAS.js';
6
+ import { makeSourceCommand, syncProjectSources } from '../chunk-PAYS6YCK.js';
7
+ import { openCatalogSource, openLibraryManager, createFullRegistry, openLibrary } from '../chunk-ZYAVNMKA.js';
8
+ import { logErr, S, logOk, logInfo, logWarn, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth } from '../chunk-6BUJARLT.js';
9
9
  import { LocalSecretsProvider } from '../chunk-6BEGKO2Q.js';
10
- import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-LOCIJAS3.js';
11
- import { buildClaudePluginFiles } from '../chunk-D6FPKO62.js';
10
+ import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-2DGIAWKU.js';
11
+ import { buildClaudePluginFiles } from '../chunk-5DHAVCKW.js';
12
12
  import '../chunk-I7SQIWYX.js';
13
13
  import '../chunk-WLPL7CRM.js';
14
14
  import '../chunk-FAI2SMFE.js';
@@ -24,12 +24,12 @@ import '../chunk-73ZXUUL6.js';
24
24
  import '../chunk-32NA4TVC.js';
25
25
  import '../chunk-W3UDISS2.js';
26
26
  import '../chunk-45LLHKQ2.js';
27
- import { runFlow, resumeFlow } from '../chunk-V62CAMBD.js';
27
+ import { runFlow, resumeFlow } from '../chunk-T4IXZOG2.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-2FDOV5JG.js';
32
+ import '../chunk-JBKXLCMG.js';
33
33
  import '../chunk-SDNGG6FB.js';
34
34
  import '../chunk-JUZJUKWM.js';
35
35
  import '../chunk-HA3XJN65.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-TVXLXNQE.js';
50
+ import { AssetManager, NON_DEPLOYABLE_KINDS, MissingManifestError, parseRefTolerant, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-XHKM7OMR.js';
51
51
  import { getStoreManifestsDir, getDefaultValue, isSecretPlaceholder } from '../chunk-HUF4ON2C.js';
52
52
  import '../chunk-M5H4DWIA.js';
53
53
  import '../chunk-UKJMQZV6.js';
@@ -124,7 +124,7 @@ async function runSearch(kind, query, opts) {
124
124
  }
125
125
  }
126
126
  async function searchIndex(query, kind) {
127
- const { openLibrary: openLibrary2 } = await import('../open-library-F7JM7RDR.js');
127
+ const { openLibrary: openLibrary2 } = await import('../open-library-KS4IT4C7.js');
128
128
  const library = await openLibrary2();
129
129
  try {
130
130
  const defs = await library.listAssetDefs(kind ? { kind } : {});
@@ -177,7 +177,7 @@ async function searchLocal(query, kind, opts, showStore, airGapped) {
177
177
  const factory = await searchFactory(projectDir, query, kind);
178
178
  let entries = unionEntries(await searchIndex(query, kind), factory);
179
179
  if (entries.length === 0 && !query && !kind && !airGapped) {
180
- const { autoSyncForSearch } = await import('../source-S4DM4ZFQ.js');
180
+ const { autoSyncForSearch } = await import('../source-7TLL7GO7.js');
181
181
  if (await autoSyncForSearch(projectDir)) {
182
182
  entries = unionEntries(await searchIndex(query, kind), factory);
183
183
  }
@@ -231,7 +231,7 @@ async function searchStore(query, kind, opts, airGapped) {
231
231
  logInfo("air-gapped (cache_ttl: 0) \u2014 local sources only");
232
232
  return;
233
233
  }
234
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-F7JM7RDR.js');
234
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-KS4IT4C7.js');
235
235
  try {
236
236
  const remote = await openCatalogSource2({ projectDir: path36__default.resolve(opts.projectDir) });
237
237
  const assets = await remote.listAssets(kind ? { kind } : {});
@@ -546,7 +546,7 @@ async function resolveInfoEntry(am2, ref, opts) {
546
546
  return { entry: match ?? deployed };
547
547
  }
548
548
  const lookup = opts.storeLookup ?? (async (filter) => {
549
- const { resolveCatalogSource } = await import('../open-library-F7JM7RDR.js');
549
+ const { resolveCatalogSource } = await import('../open-library-KS4IT4C7.js');
550
550
  const { source, close } = await resolveCatalogSource({ projectDir: opts.projectDir });
551
551
  try {
552
552
  return await source.listAssets(filter);
@@ -562,7 +562,7 @@ async function resolveInfoEntry(am2, ref, opts) {
562
562
  );
563
563
  return { entry: hit ? catalogAssetToEntry(hit) : null };
564
564
  } catch (err) {
565
- const { LocalCatalogDisabledError } = await import('../open-library-F7JM7RDR.js');
565
+ const { LocalCatalogDisabledError } = await import('../open-library-KS4IT4C7.js');
566
566
  const storeNote = err instanceof Error ? err.message : String(err);
567
567
  const disabled = err instanceof LocalCatalogDisabledError || /catalog\.url/i.test(storeNote);
568
568
  return { entry: null, storeNote, ...disabled ? { storeDisabled: true } : {} };
@@ -1182,7 +1182,7 @@ function makeCatalogCommand() {
1182
1182
  return catalog;
1183
1183
  }
1184
1184
  async function runLocalCatalogTest(projectDir) {
1185
- const { resolveCatalogSource } = await import('../open-library-F7JM7RDR.js');
1185
+ const { resolveCatalogSource } = await import('../open-library-KS4IT4C7.js');
1186
1186
  let resolved;
1187
1187
  try {
1188
1188
  resolved = await resolveCatalogSource({ projectDir });
@@ -3499,16 +3499,16 @@ function makeLibraryCommand() {
3499
3499
  });
3500
3500
  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(
3501
3501
  async (lib, opts) => {
3502
- const { runLibraryPublish } = await import('../library-publish-ZHO7XA5C.js');
3502
+ const { runLibraryPublish } = await import('../library-publish-WTVCH5UI.js');
3503
3503
  await withStoreErrorHandling(() => runLibraryPublish(lib, opts));
3504
3504
  }
3505
3505
  );
3506
3506
  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) => {
3507
- const { runLibraryRegister } = await import('../library-publish-ZHO7XA5C.js');
3507
+ const { runLibraryRegister } = await import('../library-publish-WTVCH5UI.js');
3508
3508
  await withStoreErrorHandling(() => runLibraryRegister(lib, opts));
3509
3509
  });
3510
3510
  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) => {
3511
- const { runLibraryYank } = await import('../library-publish-ZHO7XA5C.js');
3511
+ const { runLibraryYank } = await import('../library-publish-WTVCH5UI.js');
3512
3512
  await withStoreErrorHandling(() => runLibraryYank(lib, opts));
3513
3513
  });
3514
3514
  return cmd;
@@ -4230,7 +4230,7 @@ function scheduleSoftDepPreview() {
4230
4230
  }
4231
4231
  async function loadAssets() {
4232
4232
  softDepPreviewCache.clear();
4233
- const { gatherAssetFeeds } = await import('../asset-feeds-UHUJ7ALH.js');
4233
+ const { gatherAssetFeeds } = await import('../asset-feeds-23UCAOLX.js');
4234
4234
  const { entries, domains, notes } = await gatherAssetFeeds(am, am.projectDir);
4235
4235
  if (notes.length > 0) {
4236
4236
  state.message = notes.map((n) => `[${n.feed}] ${n.message}`).join(" \u2022 ");
@@ -4436,7 +4436,7 @@ function reconcileCollapsedSets(rows) {
4436
4436
  async function loadSourcesAndLibraries() {
4437
4437
  try {
4438
4438
  const [{ openLibraryManager: openLibraryManager2 }, { skaileHomeDir }, { getGlobalCacheDir: getGlobalCacheDir2 }] = await Promise.all([
4439
- import('../open-library-F7JM7RDR.js'),
4439
+ import('../open-library-KS4IT4C7.js'),
4440
4440
  import('../library/index.js'),
4441
4441
  import('../core/index.js')
4442
4442
  ]);
@@ -7231,7 +7231,7 @@ function makeServeCommand() {
7231
7231
  );
7232
7232
  }
7233
7233
  async function ensurePluginsLoadedForServe(projectDir) {
7234
- const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-NR3YI5RG.js');
7234
+ const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-4H73P3WO.js');
7235
7235
  try {
7236
7236
  const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
7237
7237
  const config = resolveSkWorkspaceConfig2(projectDir);
@@ -7250,7 +7250,7 @@ async function ensurePluginsLoadedForServe(projectDir) {
7250
7250
  }
7251
7251
  }
7252
7252
  async function runCompileTest(opts) {
7253
- const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-NR3YI5RG.js');
7253
+ const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-4H73P3WO.js');
7254
7254
  const { tmpdir } = await import('os');
7255
7255
  const { dirname: dirname4, join: join7, resolve: resolve5 } = await import('path');
7256
7256
  const { fileURLToPath: fileURLToPath2 } = await import('url');
@@ -8132,7 +8132,7 @@ function makeStoreCommand() {
8132
8132
  process.exit(2);
8133
8133
  });
8134
8134
  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) => {
8135
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-F7JM7RDR.js');
8135
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-KS4IT4C7.js');
8136
8136
  try {
8137
8137
  const remote = await openCatalogSource2({ projectDir: path36__default.resolve(opts.projectDir) });
8138
8138
  const assets = await remote.listAssets(opts.kind ? { kind: opts.kind } : {});
@@ -8165,8 +8165,8 @@ function makeStoreCommand() {
8165
8165
  }
8166
8166
  });
8167
8167
  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) => {
8168
- const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-F7JM7RDR.js');
8169
- const { supportsInstallManifest } = await import('../project-HIOOMV4D.js');
8168
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-KS4IT4C7.js');
8169
+ const { supportsInstallManifest } = await import('../project-DWCNGU56.js');
8170
8170
  try {
8171
8171
  const remote = await openCatalogSource2({ projectDir: path36__default.resolve(opts.projectDir) });
8172
8172
  const asset = await remote.resolve(ref);
@@ -9254,7 +9254,7 @@ async function bootstrapUserConfig() {
9254
9254
  }
9255
9255
  async function hydrateInitSources(resolved, created) {
9256
9256
  try {
9257
- const { ensureSourcesCloned } = await import('../ensure-sources-2LFWDM3X.js');
9257
+ const { ensureSourcesCloned } = await import('../ensure-sources-AGDLO3RW.js');
9258
9258
  const hydrate = ensureSourcesCloned(resolved, { quiet: true });
9259
9259
  for (const n of hydrate.cloned) created.push(`~/.skaile/cache/sources/${n}/`);
9260
9260
  if (hydrate.failed.length > 0) {
@@ -9294,7 +9294,7 @@ function printInitSummary(resolved, projectDir, created) {
9294
9294
  console.log();
9295
9295
  }
9296
9296
  program.command("setup").description("Interactive provider setup wizard").action(async () => {
9297
- const { cmdSetup } = await import('../setup-P4J7EN6S.js');
9297
+ const { cmdSetup } = await import('../setup-EPDRYWWI.js');
9298
9298
  await cmdSetup([], { projectDir: process.cwd() });
9299
9299
  });
9300
9300
  program.addCommand(makeInstallCommand());
@@ -1,4 +1,4 @@
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-2FDOV5JG.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-JBKXLCMG.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
4
  import '../chunk-HA3XJN65.js';
@@ -1,5 +1,5 @@
1
- import { logErr, logOk, logInfo } from './chunk-6LEVXQAS.js';
2
- import './chunk-TVXLXNQE.js';
1
+ import { logErr, logOk, logInfo } from './chunk-6BUJARLT.js';
2
+ import './chunk-XHKM7OMR.js';
3
3
  import './chunk-HUF4ON2C.js';
4
4
  import './chunk-M5H4DWIA.js';
5
5
  import './chunk-UKJMQZV6.js';
@@ -88,5 +88,5 @@ function ensureSourcesCloned(projectDir, opts = {}) {
88
88
  }
89
89
 
90
90
  export { ensureSourcesCloned };
91
- //# sourceMappingURL=ensure-sources-2LFWDM3X.js.map
92
- //# sourceMappingURL=ensure-sources-2LFWDM3X.js.map
91
+ //# sourceMappingURL=ensure-sources-AGDLO3RW.js.map
92
+ //# sourceMappingURL=ensure-sources-AGDLO3RW.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../cli/src/ensure-sources.ts"],"names":[],"mappings":"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","file":"ensure-sources-2LFWDM3X.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-AGDLO3RW.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,4 +1,4 @@
1
- export { BoxConnector, createConnector4 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { BoxConnector, createConnector4 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { DeployConnector, createConnector2 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { DeployConnector, createConnector2 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { DevServerConnector, createConnector3 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { DevServerConnector, createConnector3 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { FlowAdapter, createConnector, describeFlowOperations } from '../../../chunk-2FDOV5JG.js';
1
+ export { FlowAdapter, createConnector, describeFlowOperations } from '../../../chunk-JBKXLCMG.js';
2
2
  import '../../../chunk-SDNGG6FB.js';
3
3
  import '../../../chunk-JUZJUKWM.js';
4
4
  import '../../../chunk-HA3XJN65.js';
@@ -1,7 +1,7 @@
1
- export { resolveFlowPath, resumeFlow, runFlow } from '../../../chunk-V62CAMBD.js';
1
+ export { resolveFlowPath, resumeFlow, runFlow } from '../../../chunk-T4IXZOG2.js';
2
2
  import '../../../chunk-4R6DROGN.js';
3
3
  import '../../../chunk-3XXQPHGL.js';
4
- import '../../../chunk-2FDOV5JG.js';
4
+ import '../../../chunk-JBKXLCMG.js';
5
5
  import '../../../chunk-SDNGG6FB.js';
6
6
  import '../../../chunk-JUZJUKWM.js';
7
7
  import '../../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { ClassifierSubpromptRunner, FlowAdapter, SessionInlineSubFlowRunner, SessionNodeExecutor, SessionSubpromptRunner, buildFlowPromptEvent, classifierQuestion, createConnector, describeFlowOperations, driveOrchestratorTurn } from '../../chunk-2FDOV5JG.js';
1
+ export { ClassifierSubpromptRunner, FlowAdapter, SessionInlineSubFlowRunner, SessionNodeExecutor, SessionSubpromptRunner, buildFlowPromptEvent, classifierQuestion, createConnector, describeFlowOperations, driveOrchestratorTurn } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -138,6 +138,7 @@ migration error pointing at this doc.
138
138
  ### Behavior
139
139
 
140
140
  - **mount**: Clones the repo (or pulls if `.git` exists). Creates a session branch if configured.
141
+ - **session branch tracking**: The clone is `--single-branch`, so its only fetch refspec maps the base branch. On every connect, the driver adds `+refs/heads/<sessionBranch>:refs/remotes/origin/<sessionBranch>` to `remote.origin.fetch` (only if no refspec maps it yet) and fetches that ref. A session branch already on origin (for example after a wake on a new node) is checked out from `origin/<sessionBranch>`; otherwise it is created from the base as before. The driver pushes a session branch with `-u`, so `@{upstream}` resolves and `sync_status` reports `hasUpstream: true`. The refspec also makes an agent's own `git push` update the remote-tracking ref.
141
142
  - **unmount**: Stops periodic fetch and auto-commit timers.
142
143
  - **sync**: Pulls from origin on the active branch.
143
144
  - **watch**: Uses chokidar with `.git/**` ignored. Resets the auto-commit idle timer on changes.
@@ -148,6 +149,6 @@ migration error pointing at this doc.
148
149
 
149
150
  | Operation | Access | Description |
150
151
  |---|---|---|
151
- | `sync_status` | read | Returns a JSON snapshot of the mount's git sync status: `{ branch, dirty, ahead, behind, mainAhead, mainBehind, commitSha }`. `ahead`/`behind` are measured against the upstream tracking ref; `mainAhead`/`mainBehind` against `origin/<baseBranch>`. Read-only — performs no network fetch, so counts reflect locally-known remote-tracking refs ("since last sync"). |
152
+ | `sync_status` | read | Returns a JSON snapshot of the mount's git sync status: `{ branch, dirty, ahead, behind, hasUpstream, mainAhead, mainBehind, commitSha }`. `ahead`/`behind` are measured against the upstream tracking ref; `mainAhead`/`mainBehind` against `origin/<baseBranch>`. Read-only — performs no network fetch, so counts reflect locally-known remote-tracking refs ("since last sync"). |
152
153
 
153
154
  This op backs the platform's git sync-status badge for **in-container** sources (Git / SharePoint / Empty), whose host workspace dir is empty even while the container is awake — the platform dispatches `sync_status` to the live agent rather than reading the host filesystem.
@@ -165,6 +165,31 @@ export declare class GitConnector extends AbstractConnector {
165
165
  * HEAD (== base branch).
166
166
  */
167
167
  private checkoutSessionBranch;
168
+ /**
169
+ * Map the session branch to `refs/remotes/origin/<sessionBranch>` (fetch
170
+ * refspec) and fetch it once. Never throws: a missing remote branch is the
171
+ * normal case for a new session, and any other failure leaves the checkout as
172
+ * it was before this fix (the caller creates the branch from the base).
173
+ *
174
+ * Also repairs a checkout cloned before this refspec existed, because it runs
175
+ * on every connect.
176
+ */
177
+ private trackSessionBranch;
178
+ /**
179
+ * Re-point a session branch that this connect cut from the base at
180
+ * `origin/<sessionBranch>`, once the retried fetch shows origin has it.
181
+ * Safe because the freshly-cut branch holds no work. Never throws: when the
182
+ * checkout is refused (for example local changes in the way), the branch
183
+ * stays as it is and the push later fails as non-fast-forward.
184
+ */
185
+ private adoptOriginSessionBranch;
186
+ /**
187
+ * Push the active branch. A session branch is pushed with `-u` after its
188
+ * fetch refspec is ensured, so the push also updates
189
+ * `refs/remotes/origin/<branch>` and `@{upstream}` resolves — the platform's
190
+ * hibernate save gate reads exactly that. The base branch keeps its plain push.
191
+ */
192
+ private pushActiveBranch;
168
193
  /**
169
194
  * Attempt to create `sessionBranch` anchored on `session.fromRef`. Returns
170
195
  * true when the branch was created from the anchor; false when no valid
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../../factory-assets/connectors/git/driver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../../factory-assets/connectors/git/driver.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { GitConnector, MAX_REARM_MS, MIN_REFRESH_DELAY_MS, REFRESH_LEAD_MS, __test, createConnector5 as createConnector, readGitSyncStatus } from '../../chunk-2FDOV5JG.js';
1
+ export { GitConnector, MAX_REARM_MS, MIN_REFRESH_DELAY_MS, REFRESH_LEAD_MS, __test, createConnector5 as createConnector, readGitSyncStatus } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { GmailConnector, createConnector6 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { GmailConnector, createConnector6 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { GoogleDriveConnector, createConnector7 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { GoogleDriveConnector, createConnector7 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { LocalConnector, createConnector8 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { LocalConnector, createConnector8 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { MattermostConnector, createConnector9 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { MattermostConnector, createConnector9 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { MemoryConnector, createConnector10 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { MemoryConnector, createConnector10 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { MinIOConnector, createConnector11 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { MinIOConnector, createConnector11 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { PostgresConnector, createConnector12 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { PostgresConnector, createConnector12 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { S3Connector, createConnector13 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { S3Connector, createConnector13 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { SharePointConnector, createConnector14 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { SharePointConnector, createConnector14 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { SQLiteConnector, createConnector15 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { SQLiteConnector, createConnector15 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { StaticServerConnector, createConnector16 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { StaticServerConnector, createConnector16 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { TunnelConnector, createConnector17 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { TunnelConnector, createConnector17 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { WebDAVConnector, createConnector18 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { WebDAVConnector, createConnector18 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { XStateStoreConnector, createConnector20 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { XStateStoreConnector, createConnector20 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,4 +1,4 @@
1
- export { XStateConnector, createConnector19 as createConnector } from '../../chunk-2FDOV5JG.js';
1
+ export { XStateConnector, createConnector19 as createConnector } from '../../chunk-JBKXLCMG.js';
2
2
  import '../../chunk-SDNGG6FB.js';
3
3
  import '../../chunk-JUZJUKWM.js';
4
4
  import '../../chunk-HA3XJN65.js';
@@ -1,5 +1,5 @@
1
- export { KIND_COL_WIDTH, S, bareSoftDepName, colorRef, fitWidth, formatRelativeTime, formatSoftDepAddPreview, formatSoftDepHint, formatSoftDepRemovePreview, formatSoftDepSection, kindColor, kindColorPad, logErr, logInfo, logOk, logWarn } from './chunk-6LEVXQAS.js';
2
- import './chunk-TVXLXNQE.js';
1
+ export { KIND_COL_WIDTH, S, bareSoftDepName, colorRef, fitWidth, formatRelativeTime, formatSoftDepAddPreview, formatSoftDepHint, formatSoftDepRemovePreview, formatSoftDepSection, kindColor, kindColorPad, logErr, logInfo, logOk, logWarn } from './chunk-6BUJARLT.js';
2
+ import './chunk-XHKM7OMR.js';
3
3
  import './chunk-HUF4ON2C.js';
4
4
  import './chunk-M5H4DWIA.js';
5
5
  import './chunk-UKJMQZV6.js';
@@ -26,5 +26,5 @@ import './chunk-UQ6LFBPZ.js';
26
26
  import './chunk-DKCFWSVW.js';
27
27
  import './chunk-N7B3LZ7V.js';
28
28
  import './chunk-NSBPE2FW.js';
29
- //# sourceMappingURL=helpers-NR3YI5RG.js.map
30
- //# sourceMappingURL=helpers-NR3YI5RG.js.map
29
+ //# sourceMappingURL=helpers-4H73P3WO.js.map
30
+ //# sourceMappingURL=helpers-4H73P3WO.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"helpers-NR3YI5RG.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"helpers-4H73P3WO.js"}