@skaile/workspaces 3.25.0 → 3.26.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.
- package/CHANGELOG.md +6 -0
- package/dist/app-sdk/index.js +1 -1
- package/dist/{asset-feeds-6RKRMM6C.js → asset-feeds-ISSC2HYE.js} +4 -4
- package/dist/{asset-feeds-6RKRMM6C.js.map → asset-feeds-ISSC2HYE.js.map} +1 -1
- package/dist/asset-manager/index.js +1 -1
- package/dist/bridge/drivers/claude-sdk.js +3 -3
- package/dist/bridge/drivers/codex.js +1 -1
- package/dist/bridge/drivers/continue.js +2 -2
- package/dist/bridge/drivers/echo.js +3 -3
- package/dist/bridge/drivers/gemini.js +3 -3
- package/dist/bridge/drivers/goose.js +2 -2
- package/dist/bridge/drivers/omp.js +1 -1
- package/dist/bridge/drivers/opencode.js +2 -2
- package/dist/bridge/drivers/qwen.js +3 -3
- package/dist/bridge/index.js +4 -4
- package/dist/{chunk-LRA7VUT6.js → chunk-3DOLXE4Z.js} +3 -3
- package/dist/{chunk-LRA7VUT6.js.map → chunk-3DOLXE4Z.js.map} +1 -1
- package/dist/{chunk-HTIGD3DR.js → chunk-5SXY4B65.js} +3 -3
- package/dist/{chunk-HTIGD3DR.js.map → chunk-5SXY4B65.js.map} +1 -1
- package/dist/{chunk-YNO3LBRH.js → chunk-A565EFTW.js} +3 -3
- package/dist/{chunk-YNO3LBRH.js.map → chunk-A565EFTW.js.map} +1 -1
- package/dist/{chunk-5PFJVZ7F.js → chunk-ALSDJ6F4.js} +2 -2
- package/dist/{chunk-5PFJVZ7F.js.map → chunk-ALSDJ6F4.js.map} +1 -1
- package/dist/{chunk-ZQZXCVYV.js → chunk-AY4OKT3U.js} +2 -2
- package/dist/{chunk-ZQZXCVYV.js.map → chunk-AY4OKT3U.js.map} +1 -1
- package/dist/{chunk-X3DODPMF.js → chunk-DGPCBJNQ.js} +2 -2
- package/dist/{chunk-X3DODPMF.js.map → chunk-DGPCBJNQ.js.map} +1 -1
- package/dist/{chunk-BKUKF632.js → chunk-GLOHIJ7B.js} +3 -3
- package/dist/{chunk-BKUKF632.js.map → chunk-GLOHIJ7B.js.map} +1 -1
- package/dist/{chunk-J4WDQL42.js → chunk-KFH5GCDB.js} +3 -3
- package/dist/{chunk-J4WDQL42.js.map → chunk-KFH5GCDB.js.map} +1 -1
- package/dist/{chunk-6NTKN6QC.js → chunk-NQG77HXO.js} +3 -3
- package/dist/{chunk-6NTKN6QC.js.map → chunk-NQG77HXO.js.map} +1 -1
- package/dist/{chunk-WMZT7VDS.js → chunk-NRKEZBVP.js} +5 -5
- package/dist/{chunk-WMZT7VDS.js.map → chunk-NRKEZBVP.js.map} +1 -1
- package/dist/{chunk-4YRRPWHY.js → chunk-Q6SWQEF7.js} +156 -28
- package/dist/chunk-Q6SWQEF7.js.map +1 -0
- package/dist/{chunk-NKPDUYRH.js → chunk-RPE5VYB6.js} +4 -4
- package/dist/{chunk-NKPDUYRH.js.map → chunk-RPE5VYB6.js.map} +1 -1
- package/dist/{chunk-UEW6C64M.js → chunk-S3Z5KF6R.js} +3 -3
- package/dist/{chunk-UEW6C64M.js.map → chunk-S3Z5KF6R.js.map} +1 -1
- package/dist/{chunk-V6QKAC3Z.js → chunk-U2QALNKX.js} +8 -5
- package/dist/chunk-U2QALNKX.js.map +1 -0
- package/dist/{chunk-HGDFQDHT.js → chunk-UOERRCR3.js} +6 -6
- package/dist/{chunk-HGDFQDHT.js.map → chunk-UOERRCR3.js.map} +1 -1
- package/dist/{chunk-3CF5HJ6V.js → chunk-UQTPSVJV.js} +6 -6
- package/dist/{chunk-3CF5HJ6V.js.map → chunk-UQTPSVJV.js.map} +1 -1
- package/dist/{chunk-BIPMCNAK.js → chunk-XGO6CP5S.js} +3 -3
- package/dist/{chunk-BIPMCNAK.js.map → chunk-XGO6CP5S.js.map} +1 -1
- package/dist/{chunk-3D3BKCVQ.js → chunk-XHPWI6XF.js} +4 -4
- package/dist/{chunk-3D3BKCVQ.js.map → chunk-XHPWI6XF.js.map} +1 -1
- package/dist/cli/index.js +32 -32
- package/dist/connectors/index.js +5 -5
- package/dist/{ensure-sources-XYDPVBSP.js → ensure-sources-YH6X5XI4.js} +4 -4
- package/dist/{ensure-sources-XYDPVBSP.js.map → ensure-sources-YH6X5XI4.js.map} +1 -1
- package/dist/factory-assets/connectors/box.js +5 -5
- package/dist/factory-assets/connectors/deploy.js +5 -5
- package/dist/factory-assets/connectors/devserver.js +5 -5
- package/dist/factory-assets/connectors/flow/adapter.js +5 -5
- package/dist/factory-assets/connectors/flow/run-flow.js +6 -6
- package/dist/factory-assets/connectors/flow.js +5 -5
- package/dist/factory-assets/connectors/git.js +5 -5
- package/dist/factory-assets/connectors/gmail.js +5 -5
- package/dist/factory-assets/connectors/googledrive.js +5 -5
- package/dist/factory-assets/connectors/local.js +5 -5
- package/dist/factory-assets/connectors/mattermost.js +5 -5
- package/dist/factory-assets/connectors/memory.js +5 -5
- package/dist/factory-assets/connectors/minio.js +5 -5
- package/dist/factory-assets/connectors/postgres.js +5 -5
- package/dist/factory-assets/connectors/s3.js +5 -5
- package/dist/factory-assets/connectors/sharepoint.js +5 -5
- package/dist/factory-assets/connectors/sqlite.js +5 -5
- package/dist/factory-assets/connectors/static-server.js +5 -5
- package/dist/factory-assets/connectors/tunnel.js +5 -5
- package/dist/factory-assets/connectors/webdav.js +5 -5
- package/dist/factory-assets/connectors/xstate-store.js +5 -5
- package/dist/factory-assets/connectors/xstate.js +5 -5
- package/dist/{helpers-47SRTVSY.js → helpers-EJEK6NN6.js} +4 -4
- package/dist/{helpers-47SRTVSY.js.map → helpers-EJEK6NN6.js.map} +1 -1
- package/dist/{library-publish-W7CIEIJJ.js → library-publish-66FHWXAA.js} +6 -6
- package/dist/{library-publish-W7CIEIJJ.js.map → library-publish-66FHWXAA.js.map} +1 -1
- package/dist/{open-library-B2PEJ3UT.js → open-library-4W2UGVJN.js} +5 -5
- package/dist/{open-library-B2PEJ3UT.js.map → open-library-4W2UGVJN.js.map} +1 -1
- package/dist/{project-TOICQYNZ.js → project-6OECVELE.js} +5 -5
- package/dist/{project-TOICQYNZ.js.map → project-6OECVELE.js.map} +1 -1
- package/dist/runner/index.js +9 -9
- package/dist/runner/src/resource-handler.d.ts +34 -1
- package/dist/runner/src/resource-handler.d.ts.map +1 -1
- package/dist/runner/src/serve.d.ts +3 -0
- package/dist/runner/src/serve.d.ts.map +1 -1
- package/dist/sdk/asset-manager.js +1 -1
- package/dist/sdk/bridge.js +4 -4
- package/dist/sdk/index.js +9 -9
- package/dist/sdk/runner.js +9 -9
- package/dist/sdk/session.js +2 -2
- package/dist/sdk/types.js +1 -1
- package/dist/session/index.js +2 -2
- package/dist/{setup-HLKIP7XW.js → setup-6IEVFDWB.js} +6 -6
- package/dist/{setup-HLKIP7XW.js.map → setup-6IEVFDWB.js.map} +1 -1
- package/dist/{source-HZTCDRGB.js → source-HJQNRGTP.js} +6 -6
- package/dist/{source-HZTCDRGB.js.map → source-HJQNRGTP.js.map} +1 -1
- package/dist/{source-manifest-publish-KEDEMOQO.js → source-manifest-publish-VU4BGFDU.js} +7 -7
- package/dist/{source-manifest-publish-KEDEMOQO.js.map → source-manifest-publish-VU4BGFDU.js.map} +1 -1
- package/dist/tui/index.js +9 -9
- package/dist/types/index.js +1 -1
- package/dist/types/src/events.d.ts +7 -0
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/protocol.d.ts +11 -0
- package/dist/types/src/protocol.d.ts.map +1 -1
- package/dist/types/src/version.d.ts +6 -1
- package/dist/types/src/version.d.ts.map +1 -1
- package/dist/workspace-plugin/adapters/mcp.js +2 -2
- package/dist/workspace-plugin/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-4YRRPWHY.js.map +0 -1
- package/dist/chunk-V6QKAC3Z.js.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { logErr } from './chunk-
|
|
1
|
+
import { logErr } from './chunk-A565EFTW.js';
|
|
2
2
|
import { flowKindProvider } from './chunk-W5LPG3X6.js';
|
|
3
3
|
import { knowledgeKindProvider } from './chunk-TCHEW3T2.js';
|
|
4
4
|
import { createDefaultRegistry } from './chunk-DZ4UZOFB.js';
|
|
@@ -103,5 +103,5 @@ async function openLibraryManager() {
|
|
|
103
103
|
}
|
|
104
104
|
|
|
105
105
|
export { LocalCatalogDisabledError, createFullRegistry, openCatalogSource, openLibrary, openLibraryManager, resolveCatalogSource };
|
|
106
|
-
//# sourceMappingURL=chunk-
|
|
107
|
-
//# sourceMappingURL=chunk-
|
|
106
|
+
//# sourceMappingURL=chunk-XGO6CP5S.js.map
|
|
107
|
+
//# sourceMappingURL=chunk-XGO6CP5S.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-BIPMCNAK.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-XGO6CP5S.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,6 +1,6 @@
|
|
|
1
|
-
import { SubprocessCliDriver, extractText, extractCost, extractTokens } from './chunk-
|
|
1
|
+
import { SubprocessCliDriver, extractText, extractCost, extractTokens } from './chunk-3DOLXE4Z.js';
|
|
2
2
|
import { getStaticModels, fetchProviderModels } from './chunk-GURXUF2J.js';
|
|
3
|
-
import { BUILTIN_DRIVER_CATALOG, getBridgeLogger } from './chunk-
|
|
3
|
+
import { BUILTIN_DRIVER_CATALOG, getBridgeLogger } from './chunk-DGPCBJNQ.js';
|
|
4
4
|
import * as z from 'zod';
|
|
5
5
|
|
|
6
6
|
var GeminiFamilyDriver = class extends SubprocessCliDriver {
|
|
@@ -106,5 +106,5 @@ var geminiDriverTarget = {
|
|
|
106
106
|
};
|
|
107
107
|
|
|
108
108
|
export { GeminiDriver, GeminiFamilyDriver, geminiDriverTarget };
|
|
109
|
-
//# sourceMappingURL=chunk-
|
|
110
|
-
//# sourceMappingURL=chunk-
|
|
109
|
+
//# sourceMappingURL=chunk-XHPWI6XF.js.map
|
|
110
|
+
//# sourceMappingURL=chunk-XHPWI6XF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../bridge/src/drivers/gemini.ts"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../bridge/src/drivers/gemini.ts"],"names":[],"mappings":"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","file":"chunk-XHPWI6XF.js","sourcesContent":["import type { DriverTarget } from \"@skaile/workspaces/plugin-registry\";\nimport type { Logger } from \"@skaile/workspaces/types\";\nimport * as z from \"zod\";\nimport { getBridgeLogger } from \"../logger.js\";\nimport { fetchProviderModels, getStaticModels, type ModelEntry } from \"../models.js\";\nimport { BUILTIN_DRIVER_CATALOG } from \"../registry.js\";\nimport type { AgentConfig, DriverInfo } from \"../types.js\";\nimport { extractCost, extractText, extractTokens, SubprocessCliDriver } from \"./_subprocess-cli.js\";\n\n/**\n * Shared base for the Gemini-CLI event family. Gemini CLI and Qwen Code (a fork\n * of Gemini CLI) emit the same `stream-json` event shape, so both dispatch the\n * same {@link handleJson}: `init`/`system` → session capture, `message`/\n * `assistant` → streamed assistant text, `tool_use` / `tool_result` → tool\n * events, `result` → tokens + cost.\n *\n * @docLink packages/bridge/drivers#gemini-driver\n */\nexport abstract class GeminiFamilyDriver extends SubprocessCliDriver {\n protected handleJson(json: any): void {\n switch (json?.type) {\n case \"init\":\n case \"system\":\n this.captureSession(json.sessionId ?? json.session_id ?? json.id);\n break;\n\n case \"message\":\n case \"assistant\": {\n const role = json.role ?? json.message?.role ?? \"assistant\";\n if (role !== \"assistant\") break;\n const text = extractText(json);\n if (json.done === true || json.final === true || json.finished === true) {\n this.pushAssistantEnd(text);\n } else {\n this.pushAssistantDelta(text);\n }\n break;\n }\n\n case \"tool_use\":\n case \"tool_call\":\n this.pushToolCall(json.name ?? json.tool ?? \"tool\", json.input ?? json.args ?? {});\n break;\n\n case \"tool_result\":\n this.pushToolResult(\n json.name ?? json.tool ?? \"tool\",\n json.result ?? json.output ?? json.content,\n Boolean(json.is_error ?? json.isError ?? json.error),\n );\n break;\n\n case \"error\":\n this.pushError(this.classifyMessage(String(json.message ?? json.error ?? \"error\")));\n break;\n\n case \"result\":\n this.captureSession(json.sessionId ?? json.session_id);\n this.pushResult({\n tokens: extractTokens(json),\n costUsd: extractCost(json),\n summary: extractText(json) || \"Task completed\",\n });\n break;\n }\n }\n}\n\n/**\n * Agent driver for the Google **Gemini CLI** (`gemini`).\n *\n * Spawns `gemini -p \"<prompt>\" --output-format stream-json` per turn and maps\n * the stream-json events to the unified {@link AgentEvent} stream. Google /\n * Vertex models only — uses `GEMINI_API_KEY` from `apiKeys.google` /\n * `apiKeys.gemini` / env.\n *\n * @remarks\n * - **Requires Gemini CLI ≥ v0.6.1** — earlier versions reject\n * `--output-format`. A too-old CLI surfaces as a `process`-category exit error.\n * - **Session resume is not available in headless (`-p`) mode** — the CLI errors\n * if asked to resume non-interactively, so this driver runs single-turn per\n * process and logs a warning when a resume id is present.\n * - Exit codes: `42` → input/validation error, `53` → turn-limit (treated as a\n * completed turn).\n *\n * @see https://github.com/google-gemini/gemini-cli\n * @docLink packages/bridge/drivers#gemini-driver\n */\nexport class GeminiDriver extends GeminiFamilyDriver {\n readonly driverInfo: DriverInfo = {\n id: \"gemini\",\n name: \"Gemini CLI\",\n modelAgnostic: false,\n supportsInBandAbort: false,\n };\n\n protected readonly log: Logger = getBridgeLogger(\"gemini\");\n protected readonly defaultBin = \"gemini\";\n protected readonly productName = \"Gemini CLI\";\n protected readonly envPrefix = \"GEMINI\";\n\n protected buildArgs(message: string, resumeId: string | undefined): string[] {\n if (resumeId) {\n this.log.warn(\"Gemini CLI cannot resume in headless mode; starting a fresh turn\", {\n resumeId,\n });\n }\n const args = [\"-p\", message, \"--output-format\", \"stream-json\"];\n if (this.config.model) args.push(\"-m\", this.config.model);\n return args;\n }\n\n protected buildEnv(): Record<string, string> {\n const env = this.baseEnv([\"GEMINI_API_KEY\", \"GOOGLE_API_KEY\"]);\n const key =\n this.config.apiKeys?.google ??\n this.config.apiKeys?.gemini ??\n this.config.env?.GEMINI_API_KEY ??\n process.env.GEMINI_API_KEY;\n if (key) env.GEMINI_API_KEY = key;\n return env;\n }\n\n protected installHint(): string {\n return \"Gemini CLI is not installed or not on your PATH. Install it with `npm i -g @google/gemini-cli` (≥ v0.6.1).\";\n }\n\n protected override classifyExit(code: number | null, signal: NodeJS.Signals | null) {\n if (code === 42) {\n return {\n message: \"Gemini CLI reported an input error (exit 42)\",\n category: \"validation\" as const,\n retryable: false,\n hint: \"The prompt or flags were rejected by Gemini CLI. Check the model name and arguments.\",\n };\n }\n if (code === 53) return null; // turn-limit — the result was already emitted.\n return super.classifyExit(code, signal);\n }\n\n override async listModels(): Promise<ModelEntry[]> {\n const key =\n this.config.apiKeys?.google ?? this.config.apiKeys?.gemini ?? process.env.GEMINI_API_KEY;\n if (!key) return getStaticModels(\"google\");\n const result = await fetchProviderModels(\"google\", key);\n return result.ok && result.models.length > 0 ? result.models : getStaticModels(\"google\");\n }\n}\n\n/**\n * `DriverTarget` wrapper for the gemini driver. Registered into the plugin\n * registry by `registerBuiltinDrivers()`.\n */\nexport const geminiDriverTarget: DriverTarget<AgentConfig> = {\n id: \"gemini\",\n displayName: BUILTIN_DRIVER_CATALOG.gemini?.name ?? \"Gemini CLI\",\n apiVersion: 1,\n configSchema: z.custom<AgentConfig>(() => true),\n create: async (config, _ctx) => new GeminiDriver(config),\n listModels: async (apiKeys) =>\n new GeminiDriver({ cwd: process.cwd(), sessionId: \"model-list\", apiKeys }).listModels(),\n};\n"]}
|
package/dist/cli/index.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { makeInstallCommand, makeCheckCommand, makeCleanCommand, reportInstalledSoftDeps } from '../chunk-
|
|
2
|
+
import { makeInstallCommand, makeCheckCommand, makeCleanCommand, reportInstalledSoftDeps } from '../chunk-UQTPSVJV.js';
|
|
3
3
|
import { getStoreConfig, storeFetch, deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, isStoreAuthenticated, getStoreToken, getStoreIdentity } from '../chunk-6H6HLMWG.js';
|
|
4
|
-
import { makeSourceCommand, syncProjectSources } from '../chunk-
|
|
5
|
-
import { openCatalogSource, openLibraryManager, createFullRegistry, openLibrary } from '../chunk-
|
|
6
|
-
import { logErr, S, logOk, logInfo, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, logWarn, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth } from '../chunk-
|
|
4
|
+
import { makeSourceCommand, syncProjectSources } from '../chunk-UOERRCR3.js';
|
|
5
|
+
import { openCatalogSource, openLibraryManager, createFullRegistry, openLibrary } from '../chunk-XGO6CP5S.js';
|
|
6
|
+
import { logErr, S, logOk, logInfo, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, logWarn, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth } from '../chunk-A565EFTW.js';
|
|
7
7
|
import { AI_RESOURCES } from '../chunk-NW65H5EV.js';
|
|
8
8
|
import { LocalSecretsProvider } from '../chunk-6BEGKO2Q.js';
|
|
9
|
-
import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-
|
|
10
|
-
import '../chunk-
|
|
9
|
+
import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-Q6SWQEF7.js';
|
|
10
|
+
import '../chunk-KFH5GCDB.js';
|
|
11
11
|
import '../chunk-E7HKNQTH.js';
|
|
12
12
|
import '../chunk-FUCYTGAE.js';
|
|
13
13
|
import '../chunk-EKFFTOQJ.js';
|
|
14
14
|
import '../chunk-R6O6YWU7.js';
|
|
15
15
|
import '../chunk-FAI2SMFE.js';
|
|
16
16
|
import '../chunk-7IRJ4K4F.js';
|
|
17
|
-
import { buildClaudePluginFiles } from '../chunk-
|
|
17
|
+
import { buildClaudePluginFiles } from '../chunk-ALSDJ6F4.js';
|
|
18
18
|
import '../chunk-X5YPJV4N.js';
|
|
19
19
|
import '../chunk-W3UDISS2.js';
|
|
20
20
|
import '../chunk-O7SG5PC2.js';
|
|
@@ -23,20 +23,20 @@ import '../chunk-GTS2FODO.js';
|
|
|
23
23
|
import '../chunk-73ZXUUL6.js';
|
|
24
24
|
import '../chunk-32NA4TVC.js';
|
|
25
25
|
import '../chunk-T3YLZQS4.js';
|
|
26
|
-
import { runFlow, resumeFlow } from '../chunk-
|
|
26
|
+
import { runFlow, resumeFlow } from '../chunk-S3Z5KF6R.js';
|
|
27
27
|
import '../chunk-4R6DROGN.js';
|
|
28
28
|
import { validateFlowVersions, parseSkillFrontmatter } from '../chunk-3XXQPHGL.js';
|
|
29
29
|
import '../chunk-7BUZQVRR.js';
|
|
30
30
|
import '../chunk-2FDKUKDE.js';
|
|
31
|
-
import '../chunk-
|
|
31
|
+
import '../chunk-NRKEZBVP.js';
|
|
32
32
|
import '../chunk-SIREWRZE.js';
|
|
33
|
-
import '../chunk-
|
|
33
|
+
import '../chunk-RPE5VYB6.js';
|
|
34
34
|
import '../chunk-3NCGSSCU.js';
|
|
35
35
|
import '../chunk-LOO5CB5M.js';
|
|
36
|
-
import '../chunk-
|
|
36
|
+
import '../chunk-5SXY4B65.js';
|
|
37
37
|
import '../chunk-GURXUF2J.js';
|
|
38
38
|
import '../chunk-GAH4YRCI.js';
|
|
39
|
-
import '../chunk-
|
|
39
|
+
import '../chunk-DGPCBJNQ.js';
|
|
40
40
|
import '../chunk-6E6PKKAD.js';
|
|
41
41
|
import '../chunk-IFGTRL2I.js';
|
|
42
42
|
import { projectAiAssetsRoots, loadFlow, loadAllFlowEntries, findFlowFileInRoots } from '../chunk-W5LPG3X6.js';
|
|
@@ -44,8 +44,8 @@ import '../chunk-YCMHWNZA.js';
|
|
|
44
44
|
import '../chunk-CP62G5PK.js';
|
|
45
45
|
import '../chunk-2D5BYAL6.js';
|
|
46
46
|
import { nodeLabel, nodeSkillAsset, nodeIsInert, nodeIsOptional, nodeRunKind, flowSkillVersionPins } from '../chunk-ELPR5XBG.js';
|
|
47
|
-
import '../chunk-
|
|
48
|
-
import { AssetManager, NON_DEPLOYABLE_KINDS, MissingManifestError, parseRefTolerant, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-
|
|
47
|
+
import '../chunk-U2QALNKX.js';
|
|
48
|
+
import { AssetManager, NON_DEPLOYABLE_KINDS, MissingManifestError, parseRefTolerant, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-AY4OKT3U.js';
|
|
49
49
|
import { getStoreManifestsDir, getDefaultValue, isSecretPlaceholder } from '../chunk-TCHEW3T2.js';
|
|
50
50
|
import '../chunk-DZ4UZOFB.js';
|
|
51
51
|
import '../chunk-UKJMQZV6.js';
|
|
@@ -120,7 +120,7 @@ async function runSearch(kind, query, opts) {
|
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
122
|
async function searchIndex(query, kind) {
|
|
123
|
-
const { openLibrary: openLibrary2 } = await import('../open-library-
|
|
123
|
+
const { openLibrary: openLibrary2 } = await import('../open-library-4W2UGVJN.js');
|
|
124
124
|
const library = await openLibrary2();
|
|
125
125
|
try {
|
|
126
126
|
const defs = await library.listAssetDefs(kind ? { kind } : {});
|
|
@@ -173,7 +173,7 @@ async function searchLocal(query, kind, opts, showStore, airGapped) {
|
|
|
173
173
|
const factory = await searchFactory(projectDir, query, kind);
|
|
174
174
|
let entries = unionEntries(await searchIndex(query, kind), factory);
|
|
175
175
|
if (entries.length === 0 && !query && !kind && !airGapped) {
|
|
176
|
-
const { autoSyncForSearch } = await import('../source-
|
|
176
|
+
const { autoSyncForSearch } = await import('../source-HJQNRGTP.js');
|
|
177
177
|
if (await autoSyncForSearch(projectDir)) {
|
|
178
178
|
entries = unionEntries(await searchIndex(query, kind), factory);
|
|
179
179
|
}
|
|
@@ -227,7 +227,7 @@ async function searchStore(query, kind, opts, airGapped) {
|
|
|
227
227
|
logInfo("air-gapped (cache_ttl: 0) \u2014 local sources only");
|
|
228
228
|
return;
|
|
229
229
|
}
|
|
230
|
-
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-
|
|
230
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-4W2UGVJN.js');
|
|
231
231
|
try {
|
|
232
232
|
const remote = await openCatalogSource2({ projectDir: path35__default.resolve(opts.projectDir) });
|
|
233
233
|
const assets = await remote.listAssets(kind ? { kind } : {});
|
|
@@ -542,7 +542,7 @@ async function resolveInfoEntry(am2, ref, opts) {
|
|
|
542
542
|
return { entry: match ?? deployed };
|
|
543
543
|
}
|
|
544
544
|
const lookup = opts.storeLookup ?? (async (filter) => {
|
|
545
|
-
const { resolveCatalogSource } = await import('../open-library-
|
|
545
|
+
const { resolveCatalogSource } = await import('../open-library-4W2UGVJN.js');
|
|
546
546
|
const { source, close } = await resolveCatalogSource({ projectDir: opts.projectDir });
|
|
547
547
|
try {
|
|
548
548
|
return await source.listAssets(filter);
|
|
@@ -558,7 +558,7 @@ async function resolveInfoEntry(am2, ref, opts) {
|
|
|
558
558
|
);
|
|
559
559
|
return { entry: hit ? catalogAssetToEntry(hit) : null };
|
|
560
560
|
} catch (err) {
|
|
561
|
-
const { LocalCatalogDisabledError } = await import('../open-library-
|
|
561
|
+
const { LocalCatalogDisabledError } = await import('../open-library-4W2UGVJN.js');
|
|
562
562
|
const storeNote = err instanceof Error ? err.message : String(err);
|
|
563
563
|
const disabled = err instanceof LocalCatalogDisabledError || /catalog\.url/i.test(storeNote);
|
|
564
564
|
return { entry: null, storeNote, ...disabled ? { storeDisabled: true } : {} };
|
|
@@ -1178,7 +1178,7 @@ function makeCatalogCommand() {
|
|
|
1178
1178
|
return catalog;
|
|
1179
1179
|
}
|
|
1180
1180
|
async function runLocalCatalogTest(projectDir) {
|
|
1181
|
-
const { resolveCatalogSource } = await import('../open-library-
|
|
1181
|
+
const { resolveCatalogSource } = await import('../open-library-4W2UGVJN.js');
|
|
1182
1182
|
let resolved;
|
|
1183
1183
|
try {
|
|
1184
1184
|
resolved = await resolveCatalogSource({ projectDir });
|
|
@@ -3417,16 +3417,16 @@ function makeLibraryCommand() {
|
|
|
3417
3417
|
});
|
|
3418
3418
|
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(
|
|
3419
3419
|
async (lib, opts) => {
|
|
3420
|
-
const { runLibraryPublish } = await import('../library-publish-
|
|
3420
|
+
const { runLibraryPublish } = await import('../library-publish-66FHWXAA.js');
|
|
3421
3421
|
await withStoreErrorHandling(() => runLibraryPublish(lib, opts));
|
|
3422
3422
|
}
|
|
3423
3423
|
);
|
|
3424
3424
|
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) => {
|
|
3425
|
-
const { runLibraryRegister } = await import('../library-publish-
|
|
3425
|
+
const { runLibraryRegister } = await import('../library-publish-66FHWXAA.js');
|
|
3426
3426
|
await withStoreErrorHandling(() => runLibraryRegister(lib, opts));
|
|
3427
3427
|
});
|
|
3428
3428
|
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) => {
|
|
3429
|
-
const { runLibraryYank } = await import('../library-publish-
|
|
3429
|
+
const { runLibraryYank } = await import('../library-publish-66FHWXAA.js');
|
|
3430
3430
|
await withStoreErrorHandling(() => runLibraryYank(lib, opts));
|
|
3431
3431
|
});
|
|
3432
3432
|
return cmd;
|
|
@@ -4148,7 +4148,7 @@ function scheduleSoftDepPreview() {
|
|
|
4148
4148
|
}
|
|
4149
4149
|
async function loadAssets() {
|
|
4150
4150
|
softDepPreviewCache.clear();
|
|
4151
|
-
const { gatherAssetFeeds } = await import('../asset-feeds-
|
|
4151
|
+
const { gatherAssetFeeds } = await import('../asset-feeds-ISSC2HYE.js');
|
|
4152
4152
|
const { entries, domains, notes } = await gatherAssetFeeds(am, am.projectDir);
|
|
4153
4153
|
if (notes.length > 0) {
|
|
4154
4154
|
state.message = notes.map((n) => `[${n.feed}] ${n.message}`).join(" \u2022 ");
|
|
@@ -4354,7 +4354,7 @@ function reconcileCollapsedSets(rows) {
|
|
|
4354
4354
|
async function loadSourcesAndLibraries() {
|
|
4355
4355
|
try {
|
|
4356
4356
|
const [{ openLibraryManager: openLibraryManager2 }, { skaileHomeDir }, { getGlobalCacheDir: getGlobalCacheDir2 }] = await Promise.all([
|
|
4357
|
-
import('../open-library-
|
|
4357
|
+
import('../open-library-4W2UGVJN.js'),
|
|
4358
4358
|
import('../library/index.js'),
|
|
4359
4359
|
import('../core/index.js')
|
|
4360
4360
|
]);
|
|
@@ -6805,7 +6805,7 @@ function makeServeCommand() {
|
|
|
6805
6805
|
);
|
|
6806
6806
|
}
|
|
6807
6807
|
async function ensurePluginsLoadedForServe(projectDir) {
|
|
6808
|
-
const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-
|
|
6808
|
+
const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-EJEK6NN6.js');
|
|
6809
6809
|
try {
|
|
6810
6810
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
6811
6811
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
@@ -6824,7 +6824,7 @@ async function ensurePluginsLoadedForServe(projectDir) {
|
|
|
6824
6824
|
}
|
|
6825
6825
|
}
|
|
6826
6826
|
async function runCompileTest(opts) {
|
|
6827
|
-
const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-
|
|
6827
|
+
const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-EJEK6NN6.js');
|
|
6828
6828
|
const { tmpdir } = await import('os');
|
|
6829
6829
|
const { dirname: dirname4, join: join7, resolve: resolve5 } = await import('path');
|
|
6830
6830
|
const { fileURLToPath: fileURLToPath2 } = await import('url');
|
|
@@ -7706,7 +7706,7 @@ function makeStoreCommand() {
|
|
|
7706
7706
|
process.exit(2);
|
|
7707
7707
|
});
|
|
7708
7708
|
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) => {
|
|
7709
|
-
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-
|
|
7709
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-4W2UGVJN.js');
|
|
7710
7710
|
try {
|
|
7711
7711
|
const remote = await openCatalogSource2({ projectDir: path35__default.resolve(opts.projectDir) });
|
|
7712
7712
|
const assets = await remote.listAssets(opts.kind ? { kind: opts.kind } : {});
|
|
@@ -7739,8 +7739,8 @@ function makeStoreCommand() {
|
|
|
7739
7739
|
}
|
|
7740
7740
|
});
|
|
7741
7741
|
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) => {
|
|
7742
|
-
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-
|
|
7743
|
-
const { supportsInstallManifest } = await import('../project-
|
|
7742
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-4W2UGVJN.js');
|
|
7743
|
+
const { supportsInstallManifest } = await import('../project-6OECVELE.js');
|
|
7744
7744
|
try {
|
|
7745
7745
|
const remote = await openCatalogSource2({ projectDir: path35__default.resolve(opts.projectDir) });
|
|
7746
7746
|
const asset = await remote.resolve(ref);
|
|
@@ -8826,7 +8826,7 @@ async function bootstrapUserConfig() {
|
|
|
8826
8826
|
}
|
|
8827
8827
|
async function hydrateInitSources(resolved, created) {
|
|
8828
8828
|
try {
|
|
8829
|
-
const { ensureSourcesCloned } = await import('../ensure-sources-
|
|
8829
|
+
const { ensureSourcesCloned } = await import('../ensure-sources-YH6X5XI4.js');
|
|
8830
8830
|
const hydrate = ensureSourcesCloned(resolved, { quiet: true });
|
|
8831
8831
|
for (const n of hydrate.cloned) created.push(`~/.skaile/cache/sources/${n}/`);
|
|
8832
8832
|
if (hydrate.failed.length > 0) {
|
|
@@ -8866,7 +8866,7 @@ function printInitSummary(resolved, projectDir, created) {
|
|
|
8866
8866
|
console.log();
|
|
8867
8867
|
}
|
|
8868
8868
|
program.command("setup").description("Interactive provider setup wizard").action(async () => {
|
|
8869
|
-
const { cmdSetup } = await import('../setup-
|
|
8869
|
+
const { cmdSetup } = await import('../setup-6IEVFDWB.js');
|
|
8870
8870
|
await cmdSetup([], { projectDir: process.cwd() });
|
|
8871
8871
|
});
|
|
8872
8872
|
program.addCommand(makeInstallCommand());
|
package/dist/connectors/index.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { AbstractConnector, BUILTIN_CONNECTOR_CATALOG, ConnectorFieldMissingError, ConnectorManager, ConnectorStartupError, FlowAdapter, LogBuffer, ManagedGitconfigCollisionError, NO_ACTIVE_FLOW_ERROR, PortPool, atomicReplaceCredential, buildConnectorPromptSection, buildLazyFlowToolDefs, buildLazySdkFlowTools, buildSdkConnectorTools, buildSdkFlowTools, 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-
|
|
1
|
+
export { AbstractConnector, BUILTIN_CONNECTOR_CATALOG, ConnectorFieldMissingError, ConnectorManager, ConnectorStartupError, FlowAdapter, LogBuffer, ManagedGitconfigCollisionError, NO_ACTIVE_FLOW_ERROR, PortPool, atomicReplaceCredential, buildConnectorPromptSection, buildLazyFlowToolDefs, buildLazySdkFlowTools, buildSdkConnectorTools, buildSdkFlowTools, 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-NRKEZBVP.js';
|
|
2
2
|
export { EnvSecretProvider, ForgeSecretProvider, InMemorySecretProvider, LegacyAuthGrammarError, LockedSecretProvider, OAuthRequiredError, PreMintedSecretProvider, SecretProviderChain, createCliSecretProviderChain, createForgeSecretProviderChain, deriveSingleMaterializedConnectorDeclaration, fromMaterializedConnectorMd, isKnownSecretRef, loadConnectorDeclarations, loadMaterializedConnectorDeclarations, resolveAuthRef, resolveBackendAuthFor, resolvedConfigToDeclarations } from '../chunk-SIREWRZE.js';
|
|
3
|
-
import '../chunk-
|
|
3
|
+
import '../chunk-RPE5VYB6.js';
|
|
4
4
|
import '../chunk-3NCGSSCU.js';
|
|
5
5
|
import '../chunk-LOO5CB5M.js';
|
|
6
|
-
import '../chunk-
|
|
6
|
+
import '../chunk-5SXY4B65.js';
|
|
7
7
|
import '../chunk-GURXUF2J.js';
|
|
8
8
|
import '../chunk-GAH4YRCI.js';
|
|
9
|
-
import '../chunk-
|
|
9
|
+
import '../chunk-DGPCBJNQ.js';
|
|
10
10
|
import '../chunk-6E6PKKAD.js';
|
|
11
11
|
import '../chunk-IFGTRL2I.js';
|
|
12
12
|
import '../chunk-W5LPG3X6.js';
|
|
@@ -14,7 +14,7 @@ import '../chunk-YCMHWNZA.js';
|
|
|
14
14
|
import '../chunk-CP62G5PK.js';
|
|
15
15
|
import '../chunk-2D5BYAL6.js';
|
|
16
16
|
import '../chunk-ELPR5XBG.js';
|
|
17
|
-
import '../chunk-
|
|
17
|
+
import '../chunk-U2QALNKX.js';
|
|
18
18
|
import '../chunk-HSRHO7SK.js';
|
|
19
19
|
import '../chunk-F3HNW354.js';
|
|
20
20
|
import '../chunk-K5GBV4SA.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { logErr, logOk, logInfo } from './chunk-
|
|
2
|
-
import './chunk-
|
|
1
|
+
import { logErr, logOk, logInfo } from './chunk-A565EFTW.js';
|
|
2
|
+
import './chunk-AY4OKT3U.js';
|
|
3
3
|
import './chunk-TCHEW3T2.js';
|
|
4
4
|
import './chunk-DZ4UZOFB.js';
|
|
5
5
|
import './chunk-UKJMQZV6.js';
|
|
@@ -86,5 +86,5 @@ function ensureSourcesCloned(projectDir, opts = {}) {
|
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
export { ensureSourcesCloned };
|
|
89
|
-
//# sourceMappingURL=ensure-sources-
|
|
90
|
-
//# sourceMappingURL=ensure-sources-
|
|
89
|
+
//# sourceMappingURL=ensure-sources-YH6X5XI4.js.map
|
|
90
|
+
//# sourceMappingURL=ensure-sources-YH6X5XI4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../cli/src/ensure-sources.ts"],"names":[],"mappings":"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","file":"ensure-sources-
|
|
1
|
+
{"version":3,"sources":["../cli/src/ensure-sources.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqBA,SAAS,gBAAgB,GAAA,EAAqB;AAC5C,EAAA,OAAY,IAAA,CAAA,IAAA,CAAK,iBAAA,EAAkB,EAAG,GAAG,CAAA;AAC3C;AASA,SAAS,kBAAA,CAAmB,UAAkB,KAAA,EAAsC;AAClF,EAAA,IAAI;AACF,IAAA,OAAO,mBAAA,CAAoB,IAAA,CAAK,QAAQ,CAAA,CAAE,UAAA,EAAW;AAAA,EACvD,SAAS,GAAA,EAAK;AACZ,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,MAAA,CAAO,CAAA,eAAA,EAAkB,QAAQ,CAAA,EAAA,EAAK,GAAA,YAAe,KAAA,GAAQ,IAAI,OAAA,GAAU,MAAA,CAAO,GAAG,CAAC,CAAA,CAAE,CAAA;AAAA,IAC1F;AACA,IAAA,OAAO,IAAA;AAAA,EACT;AACF;AAMA,SAAS,kBAAA,CAAmB,KAAA,EAAoB,KAAA,EAAgB,MAAA,EAA4B;AAC1F,EAAA,MAAM,GAAA,GAAM,cAAA,CAAe,KAAA,CAAM,GAAG,CAAA;AACpC,EAAA,MAAM,IAAA,GAAO,eAAA,CAAgB,KAAA,CAAM,GAAG,CAAA;AACtC,EAAA,MAAM,IAAA,GAAO,gBAAgB,GAAG,CAAA;AAChC,EAAA,IAAI,UAAA,CAAW,IAAI,CAAA,EAAG;AACpB,IAAA,MAAA,CAAO,MAAA,CAAO,KAAK,IAAI,CAAA;AACvB,IAAA;AAAA,EACF;AACA,EAAA,SAAA,CAAe,aAAQ,IAAI,CAAA,EAAG,EAAE,SAAA,EAAW,MAAM,CAAA;AACjD,EAAA,MAAM,IAAA,GAAO,CAAC,OAAA,EAAS,KAAA,CAAM,KAAK,IAAI,CAAA;AACtC,EAAA,IAAI,KAAA,CAAM,KAAK,IAAA,CAAK,MAAA,CAAO,GAAG,CAAA,EAAG,UAAA,EAAY,MAAM,GAAG,CAAA;AACtD,EAAA,MAAM,KAAA,GAAQ,UAAU,KAAA,EAAO,IAAA,EAAM,EAAE,KAAA,EAAO,KAAA,GAAQ,MAAA,GAAS,SAAA,EAAW,CAAA;AAC1E,EAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AACtB,IAAA,MAAA,CAAO,MAAA,CAAO,KAAK,IAAI,CAAA;AACvB,IAAA,IAAI,KAAA,EAAO;AACT,MAAA,MAAA,CAAO,CAAA,qBAAA,EAAwB,KAAA,CAAM,GAAG,CAAA,CAAE,CAAA;AAAA,IAC5C;AACA,IAAA;AAAA,EACF;AACA,EAAA,MAAA,CAAO,MAAA,CAAO,KAAK,IAAI,CAAA;AACzB;AAGA,SAAS,kBAAkB,MAAA,EAA4B;AACrD,EAAA,KAAA,MAAW,KAAK,MAAA,CAAO,MAAA,EAAQ,KAAA,CAAM,CAAA,eAAA,EAAkB,CAAC,CAAA,EAAA,CAAI,CAAA;AAC5D,EAAA,IAAI,MAAA,CAAO,MAAA,CAAO,MAAA,GAAS,CAAA,EAAG;AAC5B,IAAA,OAAA,CAAQ,yBAAyB,MAAA,CAAO,MAAA,CAAO,IAAA,CAAK,IAAI,CAAC,CAAA,CAAE,CAAA;AAAA,EAC7D;AACF;AAUO,SAAS,mBAAA,CACd,UAAA,EACA,IAAA,GAA4B,EAAC,EACf;AACd,EAAA,MAAM,MAAA,GAAuB,EAAE,MAAA,EAAQ,EAAC,EAAG,QAAQ,EAAC,EAAG,MAAA,EAAQ,EAAC,EAAE;AAClE,EAAA,MAAM,QAAA,GAAgB,IAAA,CAAA,IAAA,CAAK,UAAA,EAAY,aAAa,CAAA;AACpD,EAAA,IAAI,CAAC,UAAA,CAAW,QAAQ,CAAA,EAAG,OAAO,MAAA;AAElC,EAAA,MAAM,KAAA,GAAQ,KAAK,KAAA,IAAS,KAAA;AAC5B,EAAA,MAAM,OAAA,GAAU,kBAAA,CAAmB,QAAA,EAAU,KAAK,CAAA;AAClD,EAAA,IAAI,OAAA,KAAY,MAAM,OAAO,MAAA;AAC7B,EAAA,IAAI,OAAA,CAAQ,MAAA,KAAW,CAAA,EAAG,OAAO,MAAA;AAEjC,EAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC3B,IAAA,kBAAA,CAAmB,KAAA,EAAO,OAAO,MAAM,CAAA;AAAA,EACzC;AAEA,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,iBAAA,CAAkB,MAAM,CAAA;AAAA,EAC1B;AAEA,EAAA,OAAO,MAAA;AACT","file":"ensure-sources-YH6X5XI4.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,12 +1,12 @@
|
|
|
1
|
-
export { BoxConnector, createConnector4 as createConnector } from '../../chunk-
|
|
1
|
+
export { BoxConnector, createConnector4 as createConnector } from '../../chunk-NRKEZBVP.js';
|
|
2
2
|
import '../../chunk-SIREWRZE.js';
|
|
3
|
-
import '../../chunk-
|
|
3
|
+
import '../../chunk-RPE5VYB6.js';
|
|
4
4
|
import '../../chunk-3NCGSSCU.js';
|
|
5
5
|
import '../../chunk-LOO5CB5M.js';
|
|
6
|
-
import '../../chunk-
|
|
6
|
+
import '../../chunk-5SXY4B65.js';
|
|
7
7
|
import '../../chunk-GURXUF2J.js';
|
|
8
8
|
import '../../chunk-GAH4YRCI.js';
|
|
9
|
-
import '../../chunk-
|
|
9
|
+
import '../../chunk-DGPCBJNQ.js';
|
|
10
10
|
import '../../chunk-6E6PKKAD.js';
|
|
11
11
|
import '../../chunk-IFGTRL2I.js';
|
|
12
12
|
import '../../chunk-W5LPG3X6.js';
|
|
@@ -14,7 +14,7 @@ import '../../chunk-YCMHWNZA.js';
|
|
|
14
14
|
import '../../chunk-CP62G5PK.js';
|
|
15
15
|
import '../../chunk-2D5BYAL6.js';
|
|
16
16
|
import '../../chunk-ELPR5XBG.js';
|
|
17
|
-
import '../../chunk-
|
|
17
|
+
import '../../chunk-U2QALNKX.js';
|
|
18
18
|
import '../../chunk-HSRHO7SK.js';
|
|
19
19
|
import '../../chunk-F3HNW354.js';
|
|
20
20
|
import '../../chunk-K5GBV4SA.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { DeployConnector, createConnector2 as createConnector } from '../../chunk-
|
|
1
|
+
export { DeployConnector, createConnector2 as createConnector } from '../../chunk-NRKEZBVP.js';
|
|
2
2
|
import '../../chunk-SIREWRZE.js';
|
|
3
|
-
import '../../chunk-
|
|
3
|
+
import '../../chunk-RPE5VYB6.js';
|
|
4
4
|
import '../../chunk-3NCGSSCU.js';
|
|
5
5
|
import '../../chunk-LOO5CB5M.js';
|
|
6
|
-
import '../../chunk-
|
|
6
|
+
import '../../chunk-5SXY4B65.js';
|
|
7
7
|
import '../../chunk-GURXUF2J.js';
|
|
8
8
|
import '../../chunk-GAH4YRCI.js';
|
|
9
|
-
import '../../chunk-
|
|
9
|
+
import '../../chunk-DGPCBJNQ.js';
|
|
10
10
|
import '../../chunk-6E6PKKAD.js';
|
|
11
11
|
import '../../chunk-IFGTRL2I.js';
|
|
12
12
|
import '../../chunk-W5LPG3X6.js';
|
|
@@ -14,7 +14,7 @@ import '../../chunk-YCMHWNZA.js';
|
|
|
14
14
|
import '../../chunk-CP62G5PK.js';
|
|
15
15
|
import '../../chunk-2D5BYAL6.js';
|
|
16
16
|
import '../../chunk-ELPR5XBG.js';
|
|
17
|
-
import '../../chunk-
|
|
17
|
+
import '../../chunk-U2QALNKX.js';
|
|
18
18
|
import '../../chunk-HSRHO7SK.js';
|
|
19
19
|
import '../../chunk-F3HNW354.js';
|
|
20
20
|
import '../../chunk-K5GBV4SA.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { DevServerConnector, createConnector3 as createConnector } from '../../chunk-
|
|
1
|
+
export { DevServerConnector, createConnector3 as createConnector } from '../../chunk-NRKEZBVP.js';
|
|
2
2
|
import '../../chunk-SIREWRZE.js';
|
|
3
|
-
import '../../chunk-
|
|
3
|
+
import '../../chunk-RPE5VYB6.js';
|
|
4
4
|
import '../../chunk-3NCGSSCU.js';
|
|
5
5
|
import '../../chunk-LOO5CB5M.js';
|
|
6
|
-
import '../../chunk-
|
|
6
|
+
import '../../chunk-5SXY4B65.js';
|
|
7
7
|
import '../../chunk-GURXUF2J.js';
|
|
8
8
|
import '../../chunk-GAH4YRCI.js';
|
|
9
|
-
import '../../chunk-
|
|
9
|
+
import '../../chunk-DGPCBJNQ.js';
|
|
10
10
|
import '../../chunk-6E6PKKAD.js';
|
|
11
11
|
import '../../chunk-IFGTRL2I.js';
|
|
12
12
|
import '../../chunk-W5LPG3X6.js';
|
|
@@ -14,7 +14,7 @@ import '../../chunk-YCMHWNZA.js';
|
|
|
14
14
|
import '../../chunk-CP62G5PK.js';
|
|
15
15
|
import '../../chunk-2D5BYAL6.js';
|
|
16
16
|
import '../../chunk-ELPR5XBG.js';
|
|
17
|
-
import '../../chunk-
|
|
17
|
+
import '../../chunk-U2QALNKX.js';
|
|
18
18
|
import '../../chunk-HSRHO7SK.js';
|
|
19
19
|
import '../../chunk-F3HNW354.js';
|
|
20
20
|
import '../../chunk-K5GBV4SA.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { FlowAdapter, createConnector, describeFlowOperations } from '../../../chunk-
|
|
1
|
+
export { FlowAdapter, createConnector, describeFlowOperations } from '../../../chunk-NRKEZBVP.js';
|
|
2
2
|
import '../../../chunk-SIREWRZE.js';
|
|
3
|
-
import '../../../chunk-
|
|
3
|
+
import '../../../chunk-RPE5VYB6.js';
|
|
4
4
|
import '../../../chunk-3NCGSSCU.js';
|
|
5
5
|
import '../../../chunk-LOO5CB5M.js';
|
|
6
|
-
import '../../../chunk-
|
|
6
|
+
import '../../../chunk-5SXY4B65.js';
|
|
7
7
|
import '../../../chunk-GURXUF2J.js';
|
|
8
8
|
import '../../../chunk-GAH4YRCI.js';
|
|
9
|
-
import '../../../chunk-
|
|
9
|
+
import '../../../chunk-DGPCBJNQ.js';
|
|
10
10
|
import '../../../chunk-6E6PKKAD.js';
|
|
11
11
|
import '../../../chunk-IFGTRL2I.js';
|
|
12
12
|
export { isBlocking } from '../../../chunk-W5LPG3X6.js';
|
|
@@ -14,7 +14,7 @@ import '../../../chunk-YCMHWNZA.js';
|
|
|
14
14
|
import '../../../chunk-CP62G5PK.js';
|
|
15
15
|
import '../../../chunk-2D5BYAL6.js';
|
|
16
16
|
import '../../../chunk-ELPR5XBG.js';
|
|
17
|
-
import '../../../chunk-
|
|
17
|
+
import '../../../chunk-U2QALNKX.js';
|
|
18
18
|
import '../../../chunk-HSRHO7SK.js';
|
|
19
19
|
import '../../../chunk-F3HNW354.js';
|
|
20
20
|
import '../../../chunk-K5GBV4SA.js';
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export { resolveFlowPath, resumeFlow, runFlow } from '../../../chunk-
|
|
1
|
+
export { resolveFlowPath, resumeFlow, runFlow } from '../../../chunk-S3Z5KF6R.js';
|
|
2
2
|
import '../../../chunk-4R6DROGN.js';
|
|
3
3
|
import '../../../chunk-3XXQPHGL.js';
|
|
4
|
-
import '../../../chunk-
|
|
4
|
+
import '../../../chunk-NRKEZBVP.js';
|
|
5
5
|
import '../../../chunk-SIREWRZE.js';
|
|
6
|
-
import '../../../chunk-
|
|
6
|
+
import '../../../chunk-RPE5VYB6.js';
|
|
7
7
|
import '../../../chunk-3NCGSSCU.js';
|
|
8
8
|
import '../../../chunk-LOO5CB5M.js';
|
|
9
|
-
import '../../../chunk-
|
|
9
|
+
import '../../../chunk-5SXY4B65.js';
|
|
10
10
|
import '../../../chunk-GURXUF2J.js';
|
|
11
11
|
import '../../../chunk-GAH4YRCI.js';
|
|
12
|
-
import '../../../chunk-
|
|
12
|
+
import '../../../chunk-DGPCBJNQ.js';
|
|
13
13
|
import '../../../chunk-6E6PKKAD.js';
|
|
14
14
|
import '../../../chunk-IFGTRL2I.js';
|
|
15
15
|
import '../../../chunk-W5LPG3X6.js';
|
|
@@ -17,7 +17,7 @@ import '../../../chunk-YCMHWNZA.js';
|
|
|
17
17
|
import '../../../chunk-CP62G5PK.js';
|
|
18
18
|
import '../../../chunk-2D5BYAL6.js';
|
|
19
19
|
import '../../../chunk-ELPR5XBG.js';
|
|
20
|
-
import '../../../chunk-
|
|
20
|
+
import '../../../chunk-U2QALNKX.js';
|
|
21
21
|
import '../../../chunk-HSRHO7SK.js';
|
|
22
22
|
import '../../../chunk-F3HNW354.js';
|
|
23
23
|
import '../../../chunk-K5GBV4SA.js';
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { FlowAdapter, SessionInlineSubFlowRunner, SessionNodeExecutor, SessionSubpromptRunner, buildFlowPromptEvent, createConnector, describeFlowOperations, driveOrchestratorTurn } from '../../chunk-
|
|
1
|
+
export { FlowAdapter, SessionInlineSubFlowRunner, SessionNodeExecutor, SessionSubpromptRunner, buildFlowPromptEvent, createConnector, describeFlowOperations, driveOrchestratorTurn } from '../../chunk-NRKEZBVP.js';
|
|
2
2
|
import '../../chunk-SIREWRZE.js';
|
|
3
|
-
import '../../chunk-
|
|
3
|
+
import '../../chunk-RPE5VYB6.js';
|
|
4
4
|
import '../../chunk-3NCGSSCU.js';
|
|
5
5
|
import '../../chunk-LOO5CB5M.js';
|
|
6
|
-
import '../../chunk-
|
|
6
|
+
import '../../chunk-5SXY4B65.js';
|
|
7
7
|
import '../../chunk-GURXUF2J.js';
|
|
8
8
|
import '../../chunk-GAH4YRCI.js';
|
|
9
|
-
import '../../chunk-
|
|
9
|
+
import '../../chunk-DGPCBJNQ.js';
|
|
10
10
|
import '../../chunk-6E6PKKAD.js';
|
|
11
11
|
import '../../chunk-IFGTRL2I.js';
|
|
12
12
|
import '../../chunk-W5LPG3X6.js';
|
|
@@ -14,7 +14,7 @@ import '../../chunk-YCMHWNZA.js';
|
|
|
14
14
|
import '../../chunk-CP62G5PK.js';
|
|
15
15
|
import '../../chunk-2D5BYAL6.js';
|
|
16
16
|
import '../../chunk-ELPR5XBG.js';
|
|
17
|
-
import '../../chunk-
|
|
17
|
+
import '../../chunk-U2QALNKX.js';
|
|
18
18
|
import '../../chunk-HSRHO7SK.js';
|
|
19
19
|
import '../../chunk-F3HNW354.js';
|
|
20
20
|
import '../../chunk-K5GBV4SA.js';
|