@skaile/workspaces 4.8.0 → 4.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{asset-feeds-YDCXFTJ7.js → asset-feeds-UHUJ7ALH.js} +7 -7
  3. package/dist/{asset-feeds-YDCXFTJ7.js.map → asset-feeds-UHUJ7ALH.js.map} +1 -1
  4. package/dist/asset-manager/catalog-deployer.js +3 -3
  5. package/dist/asset-manager/index.js +6 -6
  6. package/dist/asset-manager/installer.js +4 -4
  7. package/dist/bridge/codex-app-server.js +4 -4
  8. package/dist/bridge/drivers/claude-sdk.js +5 -5
  9. package/dist/bridge/drivers/codex.js +6 -6
  10. package/dist/bridge/drivers/continue.js +6 -6
  11. package/dist/bridge/drivers/echo.js +1 -1
  12. package/dist/bridge/drivers/gemini.js +4 -4
  13. package/dist/bridge/drivers/goose.js +6 -6
  14. package/dist/bridge/drivers/omp.js +1 -1
  15. package/dist/bridge/drivers/opencode.js +6 -6
  16. package/dist/bridge/drivers/qwen.js +4 -4
  17. package/dist/bridge/index.js +6 -6
  18. package/dist/{chunk-RRX33TOZ.js → chunk-2FDOV5JG.js} +8 -8
  19. package/dist/{chunk-RRX33TOZ.js.map → chunk-2FDOV5JG.js.map} +1 -1
  20. package/dist/{chunk-VRBEMXEM.js → chunk-2LT4CWA5.js} +3 -3
  21. package/dist/{chunk-VRBEMXEM.js.map → chunk-2LT4CWA5.js.map} +1 -1
  22. package/dist/{chunk-J2NEKEZK.js → chunk-2PGVW3FL.js} +3 -3
  23. package/dist/{chunk-J2NEKEZK.js.map → chunk-2PGVW3FL.js.map} +1 -1
  24. package/dist/{chunk-Q5WGUPC5.js → chunk-5PF5OIQK.js} +3 -3
  25. package/dist/{chunk-Q5WGUPC5.js.map → chunk-5PF5OIQK.js.map} +1 -1
  26. package/dist/{chunk-BCXZ74DM.js → chunk-5WNQPXEG.js} +4 -4
  27. package/dist/{chunk-BCXZ74DM.js.map → chunk-5WNQPXEG.js.map} +1 -1
  28. package/dist/{chunk-TKHJXUG3.js → chunk-6J3L2CZ7.js} +4 -4
  29. package/dist/{chunk-TKHJXUG3.js.map → chunk-6J3L2CZ7.js.map} +1 -1
  30. package/dist/{chunk-GKX3QDPN.js → chunk-6LEVXQAS.js} +3 -3
  31. package/dist/{chunk-GKX3QDPN.js.map → chunk-6LEVXQAS.js.map} +1 -1
  32. package/dist/{chunk-FVYRWGUC.js → chunk-7644QU3C.js} +7 -7
  33. package/dist/{chunk-FVYRWGUC.js.map → chunk-7644QU3C.js.map} +1 -1
  34. package/dist/{chunk-NMSHQUBY.js → chunk-BHBXWDQU.js} +5 -5
  35. package/dist/{chunk-NMSHQUBY.js.map → chunk-BHBXWDQU.js.map} +1 -1
  36. package/dist/{chunk-GKP22MGV.js → chunk-D6FPKO62.js} +2 -2
  37. package/dist/{chunk-GKP22MGV.js.map → chunk-D6FPKO62.js.map} +1 -1
  38. package/dist/{chunk-NV6R6HJR.js → chunk-ERYOLF7V.js} +5 -5
  39. package/dist/{chunk-NV6R6HJR.js.map → chunk-ERYOLF7V.js.map} +1 -1
  40. package/dist/{chunk-DS7B54NF.js → chunk-F4PCBWPB.js} +3 -3
  41. package/dist/{chunk-DS7B54NF.js.map → chunk-F4PCBWPB.js.map} +1 -1
  42. package/dist/{chunk-IUVPPJ4T.js → chunk-FSRWPLIQ.js} +3 -3
  43. package/dist/{chunk-IUVPPJ4T.js.map → chunk-FSRWPLIQ.js.map} +1 -1
  44. package/dist/{chunk-U4LC6PLI.js → chunk-HA3XJN65.js} +3 -3
  45. package/dist/{chunk-U4LC6PLI.js.map → chunk-HA3XJN65.js.map} +1 -1
  46. package/dist/{chunk-HR2AGPLJ.js → chunk-HUF4ON2C.js} +4 -4
  47. package/dist/{chunk-HR2AGPLJ.js.map → chunk-HUF4ON2C.js.map} +1 -1
  48. package/dist/{chunk-IECSLI55.js → chunk-I7IWIVXY.js} +3 -3
  49. package/dist/{chunk-IECSLI55.js.map → chunk-I7IWIVXY.js.map} +1 -1
  50. package/dist/{chunk-UKFLK6V2.js → chunk-I7SQIWYX.js} +3 -3
  51. package/dist/{chunk-UKFLK6V2.js.map → chunk-I7SQIWYX.js.map} +1 -1
  52. package/dist/{chunk-DYT3AQBM.js → chunk-JUZJUKWM.js} +3 -3
  53. package/dist/{chunk-DYT3AQBM.js.map → chunk-JUZJUKWM.js.map} +1 -1
  54. package/dist/{chunk-DN2V47ER.js → chunk-KYE66EEM.js} +9 -9
  55. package/dist/{chunk-DN2V47ER.js.map → chunk-KYE66EEM.js.map} +1 -1
  56. package/dist/{chunk-TCANYRAF.js → chunk-LOCIJAS3.js} +78 -22
  57. package/dist/chunk-LOCIJAS3.js.map +1 -0
  58. package/dist/{chunk-HKOC273F.js → chunk-P2G6XSJ3.js} +82 -8
  59. package/dist/chunk-P2G6XSJ3.js.map +1 -0
  60. package/dist/{chunk-EYH5ADRU.js → chunk-PZ6AUBGY.js} +4 -4
  61. package/dist/{chunk-EYH5ADRU.js.map → chunk-PZ6AUBGY.js.map} +1 -1
  62. package/dist/{chunk-AZSRDONR.js → chunk-SJYOKKYO.js} +3 -3
  63. package/dist/{chunk-AZSRDONR.js.map → chunk-SJYOKKYO.js.map} +1 -1
  64. package/dist/{chunk-2BLQJDYI.js → chunk-TVXLXNQE.js} +7 -7
  65. package/dist/{chunk-2BLQJDYI.js.map → chunk-TVXLXNQE.js.map} +1 -1
  66. package/dist/{chunk-SU5LVG6T.js → chunk-UM4LDXV5.js} +3 -3
  67. package/dist/{chunk-SU5LVG6T.js.map → chunk-UM4LDXV5.js.map} +1 -1
  68. package/dist/{chunk-74QHEAUT.js → chunk-V62CAMBD.js} +6 -6
  69. package/dist/{chunk-74QHEAUT.js.map → chunk-V62CAMBD.js.map} +1 -1
  70. package/dist/{chunk-2GCUBS2W.js → chunk-WLPL7CRM.js} +2 -2
  71. package/dist/{chunk-2GCUBS2W.js.map → chunk-WLPL7CRM.js.map} +1 -1
  72. package/dist/{chunk-5GYFYGVW.js → chunk-WQ5BCHQS.js} +2 -2
  73. package/dist/{chunk-5GYFYGVW.js.map → chunk-WQ5BCHQS.js.map} +1 -1
  74. package/dist/{chunk-4P352BUX.js → chunk-ZH3YEVKN.js} +5 -5
  75. package/dist/{chunk-4P352BUX.js.map → chunk-ZH3YEVKN.js.map} +1 -1
  76. package/dist/cli/index.js +49 -49
  77. package/dist/connectors/config.js +4 -4
  78. package/dist/connectors/index.js +9 -9
  79. package/dist/core/index.js +3 -3
  80. package/dist/core/runtime-assets.js +2 -2
  81. package/dist/core/src/index.d.ts +1 -1
  82. package/dist/core/src/index.d.ts.map +1 -1
  83. package/dist/core/src/workspace-config.d.ts +47 -3
  84. package/dist/core/src/workspace-config.d.ts.map +1 -1
  85. package/dist/core/workspace-config.js +1 -1
  86. package/dist/deploy/index.js +3 -3
  87. package/dist/{ensure-sources-65WPFIET.js → ensure-sources-2LFWDM3X.js} +9 -9
  88. package/dist/{ensure-sources-65WPFIET.js.map → ensure-sources-2LFWDM3X.js.map} +1 -1
  89. package/dist/factory-assets/connectors/box.js +9 -9
  90. package/dist/factory-assets/connectors/deploy.js +9 -9
  91. package/dist/factory-assets/connectors/devserver.js +9 -9
  92. package/dist/factory-assets/connectors/flow/adapter.js +9 -9
  93. package/dist/factory-assets/connectors/flow/engine.js +4 -4
  94. package/dist/factory-assets/connectors/flow/run-flow.js +10 -10
  95. package/dist/factory-assets/connectors/flow.js +9 -9
  96. package/dist/factory-assets/connectors/git.js +9 -9
  97. package/dist/factory-assets/connectors/gmail.js +9 -9
  98. package/dist/factory-assets/connectors/googledrive.js +9 -9
  99. package/dist/factory-assets/connectors/local.js +9 -9
  100. package/dist/factory-assets/connectors/mattermost.js +9 -9
  101. package/dist/factory-assets/connectors/memory.js +9 -9
  102. package/dist/factory-assets/connectors/minio.js +9 -9
  103. package/dist/factory-assets/connectors/postgres.js +9 -9
  104. package/dist/factory-assets/connectors/s3.js +9 -9
  105. package/dist/factory-assets/connectors/sharepoint.js +9 -9
  106. package/dist/factory-assets/connectors/sqlite.js +9 -9
  107. package/dist/factory-assets/connectors/static-server.js +9 -9
  108. package/dist/factory-assets/connectors/tunnel.js +9 -9
  109. package/dist/factory-assets/connectors/webdav.js +9 -9
  110. package/dist/factory-assets/connectors/xstate-store.js +9 -9
  111. package/dist/factory-assets/connectors/xstate.js +9 -9
  112. package/dist/{flows-JRWDV3MG.js → flows-EO5CO3A3.js} +6 -6
  113. package/dist/{flows-JRWDV3MG.js.map → flows-EO5CO3A3.js.map} +1 -1
  114. package/dist/{helpers-3BHWBCBI.js → helpers-NR3YI5RG.js} +9 -9
  115. package/dist/{helpers-3BHWBCBI.js.map → helpers-NR3YI5RG.js.map} +1 -1
  116. package/dist/library/index.js +4 -4
  117. package/dist/library/install.js +3 -3
  118. package/dist/{library-publish-VKBT4JEX.js → library-publish-ZHO7XA5C.js} +13 -13
  119. package/dist/{library-publish-VKBT4JEX.js.map → library-publish-ZHO7XA5C.js.map} +1 -1
  120. package/dist/{open-library-PSLL6ULI.js → open-library-F7JM7RDR.js} +11 -11
  121. package/dist/{open-library-PSLL6ULI.js.map → open-library-F7JM7RDR.js.map} +1 -1
  122. package/dist/{paths-LH7LD4CC.js → paths-HWWTOYUY.js} +6 -6
  123. package/dist/{paths-LH7LD4CC.js.map → paths-HWWTOYUY.js.map} +1 -1
  124. package/dist/{plugin-store-A6VLQHCT.js → plugin-store-VJYXFXP5.js} +5 -5
  125. package/dist/{plugin-store-A6VLQHCT.js.map → plugin-store-VJYXFXP5.js.map} +1 -1
  126. package/dist/{project-KVTNJKED.js → project-HIOOMV4D.js} +10 -10
  127. package/dist/{project-KVTNJKED.js.map → project-HIOOMV4D.js.map} +1 -1
  128. package/dist/resolver/index.js +3 -3
  129. package/dist/runner/index.js +14 -14
  130. package/dist/runner/src/serve.d.ts.map +1 -1
  131. package/dist/runner/src/skill-staging.d.ts +17 -0
  132. package/dist/runner/src/skill-staging.d.ts.map +1 -1
  133. package/dist/sdk/asset-manager.js +6 -6
  134. package/dist/sdk/bridge.js +6 -6
  135. package/dist/sdk/core.js +3 -3
  136. package/dist/sdk/flow.js +4 -4
  137. package/dist/sdk/index.js +14 -14
  138. package/dist/sdk/resolver.js +3 -3
  139. package/dist/sdk/runner.js +14 -14
  140. package/dist/{setup-47UHZ7EG.js → setup-P4J7EN6S.js} +13 -13
  141. package/dist/{setup-47UHZ7EG.js.map → setup-P4J7EN6S.js.map} +1 -1
  142. package/dist/{skills-ZO66BL2Y.js → skills-DNCI6ITW.js} +5 -5
  143. package/dist/{skills-ZO66BL2Y.js.map → skills-DNCI6ITW.js.map} +1 -1
  144. package/dist/{source-5Q33HOPF.js → source-S4DM4ZFQ.js} +12 -12
  145. package/dist/{source-5Q33HOPF.js.map → source-S4DM4ZFQ.js.map} +1 -1
  146. package/dist/{source-manifest-publish-XHEAWRMG.js → source-manifest-publish-ABXDZTVG.js} +14 -14
  147. package/dist/{source-manifest-publish-XHEAWRMG.js.map → source-manifest-publish-ABXDZTVG.js.map} +1 -1
  148. package/dist/tui/index.js +14 -14
  149. package/dist/workspace-plugin/adapters/mcp.js +5 -5
  150. package/dist/workspace-plugin/adapters/omp.js +7 -7
  151. package/dist/workspace-plugin/index.js +1 -1
  152. package/package.json +1 -1
  153. package/dist/chunk-HKOC273F.js.map +0 -1
  154. package/dist/chunk-TCANYRAF.js.map +0 -1
@@ -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-4P352BUX.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":";;;;;;AA2BO,SAAS,kBAAA,GAAwC;AACtD,EAAA,MAAM,WAAW,qBAAA,EAAsB;AACvC,EAAA,QAAA,CAAS,SAAS,gBAAgB,CAAA;AAClC,EAAA,QAAA,CAAS,SAAS,qBAAqB,CAAA;AACvC,EAAA,OAAO,QAAA;AACT;;;ACfO,IAAM,yBAAA,GAAN,cAAwC,KAAA,CAAM;AAAA,EACnD,YAAY,OAAA,EAAiB;AAC3B,IAAA,KAAA,CAAM,OAAO,CAAA;AACb,IAAA,IAAA,CAAK,IAAA,GAAO,2BAAA;AAAA,EACd;AACF;AASA,eAAsB,WAAA,GAAc;AAClC,EAAA,IAAI;AACF,IAAA,MAAM,EAAE,UAAA,EAAW,GAAI,MAAM,OAAO,oBAA4B,CAAA;AAChE,IAAA,OAAO,IAAI,UAAA,CAAW,EAAE,YAAA,EAAc,kBAAA,IAAsB,CAAA;AAAA,EAC9D,SAAS,GAAA,EAAK;AACZ,IAAA,MAAA,CAAO,CAAA,2BAAA,EAA8B,eAAe,KAAA,GAAQ,GAAA,CAAI,UAAU,MAAA,CAAO,GAAG,CAAC,CAAA,CAAE,CAAA;AACvF,IAAA,OAAA,CAAQ,KAAK,CAAC,CAAA;AAAA,EAChB;AACF;AAqBA,eAAsB,kBAAkB,IAAA,EAQtC;AACA,EAAA,MAAM,EAAE,eAAe,mBAAA,EAAqB,iBAAA,EAAmB,mBAAkB,GAAI,MAAM,OACzF,oBACF,CAAA;AACA,EAAA,MAAM,MAAM,aAAA,CAAc;AAAA,IACxB,YAAY,IAAA,EAAM,UAAA;AAAA,IAClB,gBAAgB,IAAA,EAAM;AAAA,GACvB,CAAA;AACD,EAAA,MAAM,OAAA,GAAU,IAAA,EAAM,eAAA,IAAmB,GAAA,CAAI,OAAA,CAAQ,GAAA;AACrD,EAAA,IAAI,iBAAA,CAAkB,OAAO,CAAA,EAAG;AAC9B,IAAA,MAAM,IAAI,yBAAA;AAAA,MACR;AAAA,KAGF;AAAA,EACF;AACA,EAAA,MAAM,UAAA,GAAa,GAAA,CAAI,OAAA,CAAQ,SAAA,GAAY,GAAA;AAC3C,EAAA,IAAI,GAAA,CAAI,OAAA,CAAQ,OAAA,KAAY,MAAA,EAAQ;AAClC,IAAA,OAAO,IAAI,iBAAA,CAAkB,EAAE,OAAA,EAAS,YAAY,CAAA;AAAA,EACtD;AACA,EAAA,OAAO,IAAI,mBAAA,CAAoB,EAAE,OAAA,EAAS,YAAY,CAAA;AACxD;AAwCA,eAAsB,qBAAqB,IAAA,EAKR;AACjC,EAAA,MAAM;AAAA,IACJ,aAAA;AAAA,IACA,mBAAA;AAAA,IACA,iBAAA;AAAA,IACA,kBAAA;AAAA,IACA;AAAA,GACF,GAAI,MAAM,OAAO,oBAA4B,CAAA;AAC7C,EAAA,MAAM,MAAM,aAAA,CAAc;AAAA,IACxB,YAAY,IAAA,EAAM,UAAA;AAAA,IAClB,gBAAgB,IAAA,EAAM;AAAA,GACvB,CAAA;AACD,EAAA,MAAM,OAAA,GAAU,IAAA,EAAM,eAAA,IAAmB,GAAA,CAAI,OAAA,CAAQ,GAAA;AAErD,EAAA,IAAI,iBAAA,CAAkB,OAAO,CAAA,EAAG;AAC9B,IAAA,MAAM,EAAA,GAAK,MAAM,OAAO,IAAS,CAAA;AACjC,IAAA,MAAM,OAAA,GAAU,MAAM,WAAA,EAAY;AAClC,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,MAAM,OAAA,CAAQ,WAAA,EAAY;AAG1C,MAAA,MAAM,SAAS,OAAA,CACZ,MAAA;AAAA,QACC,CAAC,CAAA,KACC,CAAA,CAAE,OAAA,KAAY,OAAA,IAAW,OAAO,CAAA,CAAE,IAAA,KAAS,QAAA,IAAY,CAAA,CAAE,IAAA,CAAK,MAAA,GAAS;AAAA,OAC3E,CACC,IAAA,CAAK,CAAC,CAAA,EAAG,CAAA,KAAM,CAAA,CAAE,SAAA,CAAU,OAAA,EAAQ,GAAI,CAAA,CAAE,SAAA,CAAU,OAAA,EAAS,CAAA;AAE/D,MAAA,IAAI,MAAA,CAAO,WAAW,CAAA,EAAG;AACvB,QAAA,MAAM,IAAI,KAAA;AAAA,UACR;AAAA,SAEF;AAAA,MACF;AAGA,MAAA,MAAM,OAAA,GAAU,OAAO,IAAA,CAAK,CAAC,MAAM,EAAA,CAAG,UAAA,CAAW,CAAA,CAAE,IAAI,CAAC,CAAA;AACxD,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,IAAA,GAAO,OAAO,CAAC,CAAA;AACrB,QAAA,MAAM,IAAI,KAAA;AAAA,UACR,CAAA,0GAAA,EACkB,IAAA,CAAK,IAAI,CAAA,UAAA,EAAa,KAAK,EAAE,CAAA,mGAAA;AAAA,SAEjD;AAAA,MACF;AAEA,MAAA,MAAMA,UAAS,IAAI,kBAAA;AAAA,QACjB,OAAA;AAAA,QACA,OAAA,CAAQ,EAAA;AAAA,QACR,OAAA,CAAQ,IAAA;AAAA,QACR,kBAAA;AAAmB,OACrB;AACA,MAAA,OAAO,EAAE,MAAA,EAAAA,OAAAA,EAAQ,OAAO,MAAM,OAAA,CAAQ,OAAM,EAAE;AAAA,IAChD,SAAS,GAAA,EAAK;AAGZ,MAAA,OAAA,CAAQ,KAAA,EAAM;AACd,MAAA,MAAM,GAAA;AAAA,IACR;AAAA,EACF;AAEA,EAAA,MAAM,UAAA,GAAa,GAAA,CAAI,OAAA,CAAQ,SAAA,GAAY,GAAA;AAC3C,EAAA,MAAM,SACJ,GAAA,CAAI,OAAA,CAAQ,OAAA,KAAY,MAAA,GACpB,IAAI,iBAAA,CAAkB,EAAE,OAAA,EAAS,UAAA,EAAY,CAAA,GAC7C,IAAI,oBAAoB,EAAE,OAAA,EAAS,YAAY,CAAA;AACrD,EAAA,OAAO,EAAE,MAAA,EAAQ,KAAA,EAAO,MAAM;AAAA,EAAC,CAAA,EAAE;AACnC;AASA,eAAsB,kBAAA,GAInB;AACD,EAAA,MAAM,EAAE,cAAA,EAAe,GAAI,MAAM,OAAO,oBAA4B,CAAA;AACpE,EAAA,MAAM,OAAA,GAAU,MAAM,WAAA,EAAY;AAClC,EAAA,MAAM,OAAA,GAAU,IAAI,cAAA,CAAe,OAAO,CAAA;AAC1C,EAAA,OAAO,EAAE,OAAA,EAAS,OAAA,EAAS,OAAO,MAAM,OAAA,CAAQ,OAAM,EAAE;AAC1D","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"]}
package/dist/cli/index.js CHANGED
@@ -1,16 +1,16 @@
1
1
  #!/usr/bin/env node
2
- import { AI_RESOURCES } from '../chunk-DS7B54NF.js';
3
- import { makeInstallCommand, makeCheckCommand, makeCleanCommand, reportInstalledSoftDeps } from '../chunk-FVYRWGUC.js';
4
- import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError } from '../chunk-NMSHQUBY.js';
5
- import { getStoreConfig, storeFetch, deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, isStoreAuthenticated, getStoreToken, getStoreIdentity } from '../chunk-IECSLI55.js';
6
- import { makeSourceCommand, syncProjectSources } from '../chunk-DN2V47ER.js';
7
- import { openCatalogSource, openLibraryManager, createFullRegistry, openLibrary } from '../chunk-4P352BUX.js';
8
- import { logErr, S, logOk, logInfo, logWarn, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth } from '../chunk-GKX3QDPN.js';
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';
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';
9
9
  import { LocalSecretsProvider } from '../chunk-6BEGKO2Q.js';
10
- import { runAgentChat, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, compileComposition, MarkdownStreamer, resolveMixin } from '../chunk-TCANYRAF.js';
11
- import { buildClaudePluginFiles } from '../chunk-GKP22MGV.js';
12
- import '../chunk-UKFLK6V2.js';
13
- import '../chunk-2GCUBS2W.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';
12
+ import '../chunk-I7SQIWYX.js';
13
+ import '../chunk-WLPL7CRM.js';
14
14
  import '../chunk-FAI2SMFE.js';
15
15
  import '../chunk-7IRJ4K4F.js';
16
16
  import '../chunk-4ZTPYIBE.js';
@@ -24,43 +24,43 @@ 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-74QHEAUT.js';
27
+ import { runFlow, resumeFlow } from '../chunk-V62CAMBD.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-RRX33TOZ.js';
32
+ import '../chunk-2FDOV5JG.js';
33
33
  import '../chunk-SDNGG6FB.js';
34
- import '../chunk-DYT3AQBM.js';
35
- import '../chunk-U4LC6PLI.js';
34
+ import '../chunk-JUZJUKWM.js';
35
+ import '../chunk-HA3XJN65.js';
36
36
  import '../chunk-OUJVFZWJ.js';
37
37
  import '../chunk-LOO5CB5M.js';
38
38
  import '../chunk-3GKBSHUG.js';
39
- import '../chunk-IUVPPJ4T.js';
39
+ import '../chunk-FSRWPLIQ.js';
40
40
  import '../chunk-GAH4YRCI.js';
41
- import { getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-5GYFYGVW.js';
41
+ import { getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-WQ5BCHQS.js';
42
42
  import '../chunk-6E6PKKAD.js';
43
43
  import '../chunk-IFGTRL2I.js';
44
- import { projectAiAssetsRoots, loadFlow, loadAllFlowEntries, findFlowFileInRoots } from '../chunk-AZSRDONR.js';
44
+ import { projectAiAssetsRoots, loadFlow, loadAllFlowEntries, findFlowFileInRoots } from '../chunk-SJYOKKYO.js';
45
45
  import '../chunk-KLMXMW6Z.js';
46
46
  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-2BLQJDYI.js';
51
- import { getStoreManifestsDir, getDefaultValue, isSecretPlaceholder } from '../chunk-HR2AGPLJ.js';
50
+ import { AssetManager, NON_DEPLOYABLE_KINDS, MissingManifestError, parseRefTolerant, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-TVXLXNQE.js';
51
+ import { getStoreManifestsDir, getDefaultValue, isSecretPlaceholder } from '../chunk-HUF4ON2C.js';
52
52
  import '../chunk-M5H4DWIA.js';
53
53
  import '../chunk-UKJMQZV6.js';
54
54
  import '../chunk-R7FOF242.js';
55
55
  import '../chunk-JXT46QFC.js';
56
- import '../chunk-TKHJXUG3.js';
56
+ import '../chunk-6J3L2CZ7.js';
57
57
  import '../chunk-CGYEHQOX.js';
58
- import { resolveSettings, globalSettingsPath, projectSettingsPath, loadSettings, saveSettings, WorkspaceYamlEditor, resolveLibraryDir, checkAgentSkillConformance, aiResourceRoots, readLock, workspaceProviderRegistryPath, userProviderRegistryPath, loadProviderRegistryFile } from '../chunk-BCXZ74DM.js';
59
- import { factoryAssetRoots } from '../chunk-SU5LVG6T.js';
58
+ import { resolveSettings, globalSettingsPath, projectSettingsPath, loadSettings, saveSettings, WorkspaceYamlEditor, resolveLibraryDir, checkAgentSkillConformance, aiResourceRoots, readLock, workspaceProviderRegistryPath, userProviderRegistryPath, loadProviderRegistryFile } from '../chunk-5WNQPXEG.js';
59
+ import { factoryAssetRoots } from '../chunk-UM4LDXV5.js';
60
60
  import '../chunk-F3HNW354.js';
61
61
  import { DRIVER_DEFAULTS } from '../chunk-K5GBV4SA.js';
62
62
  import { detectDomains, assetSearchDirs } from '../chunk-QVZA2MDT.js';
63
- import { globalCacheRoot, sourceCacheKey, getGlobalCacheDir, resolveAgentDir, matchPin, coerceVersion, loadSkWorkspaceConfig, resolveSkWorkspaceConfig, storeManifestSlug, isWorkspaceConfigFilename } from '../chunk-HKOC273F.js';
63
+ import { globalCacheRoot, sourceCacheKey, getGlobalCacheDir, resolveAgentDir, matchPin, coerceVersion, loadSkWorkspaceConfig, resolveSkWorkspaceConfig, storeManifestSlug, isWorkspaceConfigFilename } from '../chunk-P2G6XSJ3.js';
64
64
  import { SUPPORTED_DRIVER_TARGETS } from '../chunk-MENCWIHW.js';
65
65
  import { SKAILE_MANIFEST_FILENAME, decodeSkaileManifest, loadSkPublishManifest, saveSkPublishManifest } from '../chunk-P4VHQA4N.js';
66
66
  import { parseFrontmatter, scanDirectory } from '../chunk-MKZOK4JU.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-PSLL6ULI.js');
127
+ const { openLibrary: openLibrary2 } = await import('../open-library-F7JM7RDR.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-5Q33HOPF.js');
180
+ const { autoSyncForSearch } = await import('../source-S4DM4ZFQ.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-PSLL6ULI.js');
234
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-F7JM7RDR.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-PSLL6ULI.js');
549
+ const { resolveCatalogSource } = await import('../open-library-F7JM7RDR.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-PSLL6ULI.js');
565
+ const { LocalCatalogDisabledError } = await import('../open-library-F7JM7RDR.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-PSLL6ULI.js');
1185
+ const { resolveCatalogSource } = await import('../open-library-F7JM7RDR.js');
1186
1186
  let resolved;
1187
1187
  try {
1188
1188
  resolved = await resolveCatalogSource({ projectDir });
@@ -2244,7 +2244,7 @@ async function ensureTargetsRegistered(projectDir) {
2244
2244
  const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
2245
2245
  const config = resolveSkWorkspaceConfig2(projectDir);
2246
2246
  if (config.plugins && config.plugins.length > 0) {
2247
- const { ensurePluginsLoaded } = await import('../plugin-store-A6VLQHCT.js');
2247
+ const { ensurePluginsLoaded } = await import('../plugin-store-VJYXFXP5.js');
2248
2248
  const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
2249
2249
  for (const f of result.failed) logWarn(f.error);
2250
2250
  }
@@ -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-VKBT4JEX.js');
3502
+ const { runLibraryPublish } = await import('../library-publish-ZHO7XA5C.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-VKBT4JEX.js');
3507
+ const { runLibraryRegister } = await import('../library-publish-ZHO7XA5C.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-VKBT4JEX.js');
3511
+ const { runLibraryYank } = await import('../library-publish-ZHO7XA5C.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-YDCXFTJ7.js');
4233
+ const { gatherAssetFeeds } = await import('../asset-feeds-UHUJ7ALH.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-PSLL6ULI.js'),
4439
+ import('../open-library-F7JM7RDR.js'),
4440
4440
  import('../library/index.js'),
4441
4441
  import('../core/index.js')
4442
4442
  ]);
@@ -6073,7 +6073,7 @@ function action2(fn) {
6073
6073
  };
6074
6074
  }
6075
6075
  async function reconcileAndReport(projectDir, plugins) {
6076
- const { reconcilePlugins } = await import('../plugin-store-A6VLQHCT.js');
6076
+ const { reconcilePlugins } = await import('../plugin-store-VJYXFXP5.js');
6077
6077
  if (plugins.length === 0) {
6078
6078
  logInfo("No plugins declared \u2014 nothing to reconcile.");
6079
6079
  return;
@@ -6089,7 +6089,7 @@ async function reconcileAndReport(projectDir, plugins) {
6089
6089
  async function runInstall2(spec, opts) {
6090
6090
  const projectDir = path36__default.resolve(opts.projectDir);
6091
6091
  const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
6092
- const { specName } = await import('../plugin-store-A6VLQHCT.js');
6092
+ const { specName } = await import('../plugin-store-VJYXFXP5.js');
6093
6093
  const yamlPath = path36__default.join(projectDir, "skaile.yaml");
6094
6094
  const editor = WorkspaceYamlEditor2.load(yamlPath);
6095
6095
  const replaced = editor.addPlugin(spec, specName);
@@ -6101,7 +6101,7 @@ async function runInstall2(spec, opts) {
6101
6101
  async function runRemove(name, opts) {
6102
6102
  const projectDir = path36__default.resolve(opts.projectDir);
6103
6103
  const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
6104
- const { specName } = await import('../plugin-store-A6VLQHCT.js');
6104
+ const { specName } = await import('../plugin-store-VJYXFXP5.js');
6105
6105
  const yamlPath = path36__default.join(projectDir, "skaile.yaml");
6106
6106
  const editor = WorkspaceYamlEditor2.load(yamlPath);
6107
6107
  const removed = editor.removePlugin(name, specName);
@@ -6129,7 +6129,7 @@ async function runList(opts) {
6129
6129
  const registry = createPluginRegistry();
6130
6130
  if (declared.length > 0) {
6131
6131
  try {
6132
- const { loadPlugins } = await import('../plugin-store-A6VLQHCT.js');
6132
+ const { loadPlugins } = await import('../plugin-store-VJYXFXP5.js');
6133
6133
  const result = await loadPlugins(projectDir, declared, registry);
6134
6134
  for (const f of result.failed) logWarn(f.error);
6135
6135
  } catch (err) {
@@ -7231,12 +7231,12 @@ function makeServeCommand() {
7231
7231
  );
7232
7232
  }
7233
7233
  async function ensurePluginsLoadedForServe(projectDir) {
7234
- const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-3BHWBCBI.js');
7234
+ const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-NR3YI5RG.js');
7235
7235
  try {
7236
7236
  const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
7237
7237
  const config = resolveSkWorkspaceConfig2(projectDir);
7238
7238
  if (!config.plugins || config.plugins.length === 0) return;
7239
- const { ensurePluginsLoaded } = await import('../plugin-store-A6VLQHCT.js');
7239
+ const { ensurePluginsLoaded } = await import('../plugin-store-VJYXFXP5.js');
7240
7240
  const { pluginRegistry } = await import('../plugin-registry/index.js');
7241
7241
  const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
7242
7242
  if (result.loaded.length > 0) {
@@ -7250,14 +7250,14 @@ 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-3BHWBCBI.js');
7253
+ const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-NR3YI5RG.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');
7257
7257
  const { unlinkSync, existsSync: existsSync15 } = await import('fs');
7258
7258
  const { spawn } = await import('child_process');
7259
7259
  const { portableSpawnSync: portableSpawnSync2 } = await import('../core/index.js');
7260
- const { MONOREPO_ROOT } = await import('../paths-LH7LD4CC.js');
7260
+ const { MONOREPO_ROOT } = await import('../paths-HWWTOYUY.js');
7261
7261
  if (MONOREPO_ROOT === null) {
7262
7262
  logErr2("--compile-test is only available inside the skaile-dev workspace.");
7263
7263
  logInfo2("Run it from a checkout of skaile-ai/skaile-dev (the monorepo shell).");
@@ -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-PSLL6ULI.js');
8135
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-F7JM7RDR.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-PSLL6ULI.js');
8169
- const { supportsInstallManifest } = await import('../project-KVTNJKED.js');
8168
+ const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError } = await import('../open-library-F7JM7RDR.js');
8169
+ const { supportsInstallManifest } = await import('../project-HIOOMV4D.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-65WPFIET.js');
9257
+ const { ensureSourcesCloned } = await import('../ensure-sources-2LFWDM3X.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-47UHZ7EG.js');
9297
+ const { cmdSetup } = await import('../setup-P4J7EN6S.js');
9298
9298
  await cmdSetup([], { projectDir: process.cwd() });
9299
9299
  });
9300
9300
  program.addCommand(makeInstallCommand());
@@ -1,10 +1,10 @@
1
- export { LegacyAuthGrammarError, createCliSecretProviderChain, createForgeSecretProviderChain, loadConnectorDeclarations, resolveAuthRef, resolveBackendAuthFor, resolvedConfigToDeclarations } from '../chunk-DYT3AQBM.js';
2
- import '../chunk-BCXZ74DM.js';
3
- import '../chunk-SU5LVG6T.js';
1
+ export { LegacyAuthGrammarError, createCliSecretProviderChain, createForgeSecretProviderChain, loadConnectorDeclarations, resolveAuthRef, resolveBackendAuthFor, resolvedConfigToDeclarations } from '../chunk-JUZJUKWM.js';
2
+ import '../chunk-5WNQPXEG.js';
3
+ import '../chunk-UM4LDXV5.js';
4
4
  import '../chunk-F3HNW354.js';
5
5
  import '../chunk-K5GBV4SA.js';
6
6
  import '../chunk-QVZA2MDT.js';
7
- import '../chunk-HKOC273F.js';
7
+ import '../chunk-P2G6XSJ3.js';
8
8
  import '../chunk-MENCWIHW.js';
9
9
  import '../chunk-P4VHQA4N.js';
10
10
  import '../chunk-MKZOK4JU.js';
@@ -1,27 +1,27 @@
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-RRX33TOZ.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-2FDOV5JG.js';
2
2
  export { CONNECT_ERROR_KIND_PROPERTY, ClassifiedConnectError, declaredConnectErrorKind, withConnectErrorKind } from '../chunk-SDNGG6FB.js';
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-DYT3AQBM.js';
4
- import '../chunk-U4LC6PLI.js';
3
+ export { ConnectorFieldMissingError, ConnectorStartupError, EnvSecretProvider, ForgeSecretProvider, InMemorySecretProvider, LegacyAuthGrammarError, LockedSecretProvider, OAuthRequiredError, PreMintedSecretProvider, SecretProviderChain, createCliSecretProviderChain, createForgeSecretProviderChain, deriveSingleMaterializedConnectorDeclaration, fromMaterializedConnectorMd, isKnownSecretRef, loadConnectorDeclarations, loadMaterializedConnectorDeclarations, readUnavailableMarker, resolveAuthRef, resolveBackendAuthFor, resolvedConfigToDeclarations } from '../chunk-JUZJUKWM.js';
4
+ import '../chunk-HA3XJN65.js';
5
5
  import '../chunk-OUJVFZWJ.js';
6
6
  import '../chunk-LOO5CB5M.js';
7
7
  import '../chunk-3GKBSHUG.js';
8
- import '../chunk-IUVPPJ4T.js';
8
+ import '../chunk-FSRWPLIQ.js';
9
9
  import '../chunk-GAH4YRCI.js';
10
- import '../chunk-5GYFYGVW.js';
10
+ import '../chunk-WQ5BCHQS.js';
11
11
  import '../chunk-6E6PKKAD.js';
12
12
  import '../chunk-IFGTRL2I.js';
13
- import '../chunk-AZSRDONR.js';
13
+ import '../chunk-SJYOKKYO.js';
14
14
  import '../chunk-KLMXMW6Z.js';
15
15
  import '../chunk-REYJKU7T.js';
16
16
  import '../chunk-2D5BYAL6.js';
17
17
  import '../chunk-ELPR5XBG.js';
18
18
  import '../chunk-QAH24E5U.js';
19
- import '../chunk-BCXZ74DM.js';
20
- import '../chunk-SU5LVG6T.js';
19
+ import '../chunk-5WNQPXEG.js';
20
+ import '../chunk-UM4LDXV5.js';
21
21
  import '../chunk-F3HNW354.js';
22
22
  import '../chunk-K5GBV4SA.js';
23
23
  import '../chunk-QVZA2MDT.js';
24
- import '../chunk-HKOC273F.js';
24
+ import '../chunk-P2G6XSJ3.js';
25
25
  import '../chunk-MENCWIHW.js';
26
26
  import '../chunk-P4VHQA4N.js';
27
27
  import '../chunk-MKZOK4JU.js';
@@ -1,9 +1,9 @@
1
- export { ManifestYamlEditor, PROVIDERS_FILENAME, SETTINGS_DEFAULTS, WorkspaceYamlEditor, aiResourceRoots, applyPatch, buildLockFile, checkAgentSkillConformance, computeHash, defaultLibraryDir, extractForPatch, generatePatch, globalSettingsPath, listPatches, loadProviderRegistry, loadProviderRegistryFile, loadSettings, mapLegacyFields, maskApiKey, migrateSettings, processAlive, processExited, processGroupAlive, projectSettingsPath, readLock, readPatch, readPluginsLockSlice, resolveLibraryDir, resolveSettings, savePatch, saveProviderRegistryFile, saveSettings, skaileHomeDir, userProviderRegistryPath, verifyLock, walkForSettings, workspaceProviderRegistryPath, writeLock, writePluginsLockSlice } from '../chunk-BCXZ74DM.js';
2
- export { FACTORY_ASSETS_REPO_NAME, factoryAssetRoots, resolveFactoryAssetsRoot, resolveFactoryAssetsRootOrNull, resolvePackagedAssetsDir, resolveRuntimeAssets, resolveWorkspacesPackageRoot } from '../chunk-SU5LVG6T.js';
1
+ export { ManifestYamlEditor, PROVIDERS_FILENAME, SETTINGS_DEFAULTS, WorkspaceYamlEditor, aiResourceRoots, applyPatch, buildLockFile, checkAgentSkillConformance, computeHash, defaultLibraryDir, extractForPatch, generatePatch, globalSettingsPath, listPatches, loadProviderRegistry, loadProviderRegistryFile, loadSettings, mapLegacyFields, maskApiKey, migrateSettings, processAlive, processExited, processGroupAlive, projectSettingsPath, readLock, readPatch, readPluginsLockSlice, resolveLibraryDir, resolveSettings, savePatch, saveProviderRegistryFile, saveSettings, skaileHomeDir, userProviderRegistryPath, verifyLock, walkForSettings, workspaceProviderRegistryPath, writeLock, writePluginsLockSlice } from '../chunk-5WNQPXEG.js';
2
+ export { FACTORY_ASSETS_REPO_NAME, factoryAssetRoots, resolveFactoryAssetsRoot, resolveFactoryAssetsRootOrNull, resolvePackagedAssetsDir, resolveRuntimeAssets, resolveWorkspacesPackageRoot } from '../chunk-UM4LDXV5.js';
3
3
  export { deployedBase, deployedDir, isDeployed } from '../chunk-F3HNW354.js';
4
4
  export { DRIVER_DEFAULTS, resolveDriverPaths } from '../chunk-K5GBV4SA.js';
5
5
  export { ASSET_KIND_DIRS, assetSearchDirs, detectAiResources, detectDomains, detectMonorepoRoot } from '../chunk-QVZA2MDT.js';
6
- export { COMPACTION_DEFAULTS, CanonicalRefConflictError, DEFAULT_RECIPE_ATTR, SKAILE_YAML_DEFAULT, SK_WORKSPACE_DEFAULT_NAME, SK_WORKSPACE_SUFFIX, STAGED_SKILL_MARKER, __resetCacheMigrationMemo, buildProvenanceIndex, checkRepoStatus, checkoutPin, cloneRepo, coerceVersion, decodeSkaileYaml, deriveSingleMaterializedMcpDeclaration, encodeSkaileYaml, ensureRepo, findWorkspaceRoot, getGlobalCacheDir, getRepoCommit, globalCacheRoot, globalSkaileDir, isWorkspaceConfigFilename, linkRepo, listSkWorkspaceConfigs, loadMcpServerDeclarations, loadSkWorkspaceConfig, matchPin, mergeLegacyEntriesInto, mergeLegacyEntriesKeyed, mergeSkWorkspaceConfigs, migrateLegacyDir, normalizeConfig, pullRepo, pullRepoResult, readLinks, resolveAgentDir, resolveAll, resolveAsset, resolveGlobalBackends, resolveGlobalSkWorkspaceConfig, resolveSkWorkspaceConfig, resolveSourcePublisher, saveSkWorkspaceConfig, scanRepo, sourceCacheKey, sourceShortName, stageMaterializedSkills, storeManifestSlug, unlinkRepo, unstageSkill, validateAssetRecipeAttr, validateAssetRecipeFlake, workspaceConfigFilename, writeLinks } from '../chunk-HKOC273F.js';
6
+ export { COMPACTION_DEFAULTS, CanonicalRefConflictError, DEFAULT_RECIPE_ATTR, SKAILE_YAML_DEFAULT, SKILL_ALLOWLIST_FILE, SKILL_ALLOWLIST_VERSION, SK_WORKSPACE_DEFAULT_NAME, SK_WORKSPACE_SUFFIX, STAGED_SKILL_MARKER, __resetCacheMigrationMemo, buildProvenanceIndex, checkRepoStatus, checkoutPin, cloneRepo, coerceVersion, decodeSkaileYaml, deriveSingleMaterializedMcpDeclaration, encodeSkaileYaml, ensureRepo, findWorkspaceRoot, getGlobalCacheDir, getRepoCommit, globalCacheRoot, globalSkaileDir, isStagedSkillMarkerFor, isWorkspaceConfigFilename, linkRepo, listSkWorkspaceConfigs, loadMcpServerDeclarations, loadSkWorkspaceConfig, matchPin, mergeLegacyEntriesInto, mergeLegacyEntriesKeyed, mergeSkWorkspaceConfigs, migrateLegacyDir, normalizeConfig, pullRepo, pullRepoResult, readLinks, readSkillAllowList, resolveAgentDir, resolveAll, resolveAsset, resolveGlobalBackends, resolveGlobalSkWorkspaceConfig, resolveSkWorkspaceConfig, resolveSourcePublisher, saveSkWorkspaceConfig, scanRepo, sourceCacheKey, sourceShortName, stageMaterializedSkills, stagedSkillMarkerState, storeManifestSlug, unlinkRepo, unstageSkill, validateAssetRecipeAttr, validateAssetRecipeFlake, workspaceConfigFilename, writeLinks } from '../chunk-P2G6XSJ3.js';
7
7
  export { DRIVER_TARGETS, SUPPORTED_DRIVER_TARGETS, globalBackendRoot } from '../chunk-MENCWIHW.js';
8
8
  export { SKAILE_MANIFEST_FILENAME, decodeSkaileManifest, encodeSkaileManifest, loadSkPublishManifest, saveSkPublishManifest } from '../chunk-P4VHQA4N.js';
9
9
  export { DEFAULT_FS_DEADLINE_MS, DEFAULT_WALK_BUDGET_MS, DEFAULT_WALK_MAX_DEPTH, DEFAULT_WALK_MAX_ENTRIES, FS_DEADLINE_ENV_VAR, FsDeadlineError, WALK_BUDGET_MS_ENV_VAR, WALK_MAX_DEPTH_ENV_VAR, WALK_MAX_ENTRIES_ENV_VAR, bundleDepRefs, fromAgentMd, fromAgentYaml, fromBundleYaml, fromConnectorMd, fromContractMd, fromFlowYaml, fromMcpServerMd, fromMcpServerMdContent, fromPromptMd, fromSkillMd, fsDeadlineMs, parseFrontmatter, parseRequires, scanDirectory, tryWithFsDeadline, walkDir, withFsDeadline } from '../chunk-MKZOK4JU.js';
@@ -1,5 +1,5 @@
1
- export { FACTORY_ASSETS_REPO_NAME, factoryAssetRoots, resolveFactoryAssetsRoot, resolveFactoryAssetsRootOrNull, resolvePackagedAssetsDir, resolveRuntimeAssets, resolveWorkspacesPackageRoot } from '../chunk-SU5LVG6T.js';
2
- import '../chunk-HKOC273F.js';
1
+ export { FACTORY_ASSETS_REPO_NAME, factoryAssetRoots, resolveFactoryAssetsRoot, resolveFactoryAssetsRootOrNull, resolvePackagedAssetsDir, resolveRuntimeAssets, resolveWorkspacesPackageRoot } from '../chunk-UM4LDXV5.js';
2
+ import '../chunk-P2G6XSJ3.js';
3
3
  import '../chunk-MENCWIHW.js';
4
4
  import '../chunk-P4VHQA4N.js';
5
5
  import '../chunk-MKZOK4JU.js';
@@ -49,6 +49,6 @@ export { processAlive, processExited, processGroupAlive } from "./process-alive.
49
49
  export type { ProvenanceCandidate, ProvenanceIndex, SourceClone, } from "./walker.js";
50
50
  export { buildProvenanceIndex } from "./walker.js";
51
51
  export type { AgentConfig, AgentConfigProfile, AgentContextConfig, AgentHooks, AgentPermissions, AssetRecipe, CompactionConfig, ConnectorDeclaration, ContainerConfig, DecodeResult, Diagnostic, DiagnosticSeverity, GitConfig, HookEntry, McpServerDeclaration, NetworkPolicy, OverrideEntry, RuntimeDefaults, SecretsConfig, SetupEntry, SkWorkspaceConfig, SkWorkspaceConfigFile, SourceDeclaration, SourceEntry, StoreEntry, SubagentConfig, WorkspaceLayoutConfig, } from "./workspace-config.js";
52
- export { COMPACTION_DEFAULTS, DEFAULT_RECIPE_ATTR, decodeSkaileYaml, deriveSingleMaterializedMcpDeclaration, encodeSkaileYaml, findWorkspaceRoot, isWorkspaceConfigFilename, listSkWorkspaceConfigs, loadMcpServerDeclarations, loadSkWorkspaceConfig, mergeSkWorkspaceConfigs, normalizeConfig, resolveAgentDir, resolveGlobalBackends, resolveGlobalSkWorkspaceConfig, resolveSkWorkspaceConfig, SK_WORKSPACE_DEFAULT_NAME, SK_WORKSPACE_SUFFIX, SKAILE_YAML_DEFAULT, saveSkWorkspaceConfig, STAGED_SKILL_MARKER, stageMaterializedSkills, type UnstageSkillResult, unstageSkill, validateAssetRecipeAttr, validateAssetRecipeFlake, workspaceConfigFilename, } from "./workspace-config.js";
52
+ export { COMPACTION_DEFAULTS, DEFAULT_RECIPE_ATTR, decodeSkaileYaml, deriveSingleMaterializedMcpDeclaration, encodeSkaileYaml, findWorkspaceRoot, isWorkspaceConfigFilename, listSkWorkspaceConfigs, loadMcpServerDeclarations, loadSkWorkspaceConfig, mergeSkWorkspaceConfigs, normalizeConfig, resolveAgentDir, resolveGlobalBackends, resolveGlobalSkWorkspaceConfig, resolveSkWorkspaceConfig, SK_WORKSPACE_DEFAULT_NAME, SK_WORKSPACE_SUFFIX, SKAILE_YAML_DEFAULT, isStagedSkillMarkerFor, readSkillAllowList, SKILL_ALLOWLIST_FILE, SKILL_ALLOWLIST_VERSION, saveSkWorkspaceConfig, STAGED_SKILL_MARKER, type StagedSkillMarkerState, stagedSkillMarkerState, stageMaterializedSkills, type UnstageSkillResult, unstageSkill, validateAssetRecipeAttr, validateAssetRecipeFlake, workspaceConfigFilename, } from "./workspace-config.js";
53
53
  export { WorkspaceYamlEditor } from "./workspace-yaml-editor.js";
54
54
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../core/src/index.ts"],"names":[],"mappings":"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"}
@@ -1106,6 +1106,46 @@ export declare function stageMaterializedSkills(projectDir: string, skillsDir: s
1106
1106
  * any extra files a user kept in it, is removed when that skill leaves the set.
1107
1107
  */
1108
1108
  export declare const STAGED_SKILL_MARKER = ".skaile-staged";
1109
+ /** What a skill dir's {@link STAGED_SKILL_MARKER} says about who owns it. */
1110
+ export type StagedSkillMarkerState = "named" | "legacy" | "other" | "absent";
1111
+ /**
1112
+ * Read `dir`'s {@link STAGED_SKILL_MARKER}. The runner writes the dir name into
1113
+ * it, so an agent's copy or rename of a staged skill (which carries the marker
1114
+ * along) reads `"other"`. `"legacy"` is an older runner's empty marker: an
1115
+ * explicit, host-named detach may remove it, a sweep may not; the next restage
1116
+ * of an assigned skill rewrites it.
1117
+ *
1118
+ * The marker is agent-writable and this runs under the skill-fs lock, so it is
1119
+ * opened with `O_NOFOLLOW | O_NONBLOCK` (a symlink, FIFO or device never blocks
1120
+ * or streams), must be a regular file of at most {@link MARKER_READ_LIMIT}
1121
+ * bytes, and is read only that far. Anything else is `"other"`, never an
1122
+ * error, so it cannot make a detach fail. Any other failure (a timeout)
1123
+ * throws: callers delete on this.
1124
+ */
1125
+ export declare function stagedSkillMarkerState(dir: string, name: string): Promise<StagedSkillMarkerState>;
1126
+ /** Whether `dir`'s marker names `name` exactly (the only proof a sweep accepts). */
1127
+ export declare function isStagedSkillMarkerFor(dir: string, name: string): Promise<boolean>;
1128
+ /**
1129
+ * Session-root-relative path of the skill allowlist a host may deliver next to
1130
+ * the materialized assets: `{ "version": 1, "skills": ["<dir name>", ...] }`,
1131
+ * the complete set of skill dir names the host's latest delivery allows. A
1132
+ * restage removes a MARKED staged skill that the list does not name and whose
1133
+ * materialized asset is absent. No list, or one that does not parse, removes
1134
+ * nothing. It sits under `.skaile/assets/` because that is the tree a broker
1135
+ * host can write in the session root, and a delivery that empties that tree
1136
+ * therefore also drops the list until its last write replaces it.
1137
+ */
1138
+ export declare const SKILL_ALLOWLIST_FILE = ".skaile/assets/skill-allowlist.json";
1139
+ /** The only allowlist format a runner acts on; any other version is ignored. */
1140
+ export declare const SKILL_ALLOWLIST_VERSION = 1;
1141
+ /**
1142
+ * Read {@link SKILL_ALLOWLIST_FILE}. Returns the listed names (a scoped
1143
+ * `@publisher/name` also contributes its dir-name tail), or `null` when there
1144
+ * is no usable list: missing, unreadable, timed out, not valid JSON (a write
1145
+ * still in flight reads as a truncated document), an unknown version, or any
1146
+ * entry that is not a string. `null` means "remove nothing"; never throws.
1147
+ */
1148
+ export declare function readSkillAllowList(projectDir: string): Promise<ReadonlySet<string> | null>;
1109
1149
  /** Outcome of {@link unstageSkill}. */
1110
1150
  export type UnstageSkillResult = {
1111
1151
  name: string;
@@ -1124,21 +1164,25 @@ export type UnstageSkillResult = {
1124
1164
  * {@link stageMaterializedSkills} pass can bring it back. Accepts
1125
1165
  * `@publisher/name` (the dir is the unscoped tail).
1126
1166
  *
1127
- * A same-named skills dir WITHOUT {@link STAGED_SKILL_MARKER} was not staged by
1128
- * this runner (a catalog deploy, the agent's own skill, or an older runner's
1129
- * copy whose skill was never restaged since) and is never deleted: the result
1167
+ * A same-named skills dir whose {@link STAGED_SKILL_MARKER} is missing or names
1168
+ * another dir (see {@link stagedSkillMarkerState}) was not staged by this runner
1169
+ * (a catalog deploy, the agent's own skill or its copy of a staged one, or an
1170
+ * older runner's copy never marked) and is never deleted: the result
1130
1171
  * carries `reason: "not_staged"`. `.skaile/assets` is per-session in every mode (in
1131
1172
  * broker it sits under the session's own root), so removing the asset touches
1132
1173
  * no other session.
1133
1174
  *
1134
1175
  * `opts.knownStaged` is the caller's own record that this runner staged the
1135
1176
  * dir (its marker write may have failed); it is then removed without a marker.
1177
+ * `opts.keepAsset` leaves the materialized source alone (it belongs to the
1178
+ * host; a caller that already saw it absent must not delete a fresh delivery).
1136
1179
  *
1137
1180
  * @throws When `name` is not a plain skill name (path traversal guard), or a
1138
1181
  * probe or removal fails for any reason other than the path being absent
1139
1182
  */
1140
1183
  export declare function unstageSkill(projectDir: string, skillsDir: string, name: string, opts?: {
1141
1184
  knownStaged?: boolean;
1185
+ keepAsset?: boolean;
1142
1186
  }): Promise<UnstageSkillResult>;
1143
1187
  export declare function loadMcpServerDeclarations(projectDir: string): Promise<McpServerDeclaration[]>;
1144
1188
  /**