@skaile/workspaces 0.17.1 → 0.19.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 +36 -0
- package/dist/{asset-feeds-CQU46DYQ.js → asset-feeds-OFMOTPTX.js} +4 -4
- package/dist/{asset-feeds-CQU46DYQ.js.map → asset-feeds-OFMOTPTX.js.map} +1 -1
- package/dist/asset-manager/index.js +1 -1
- package/dist/base-assets/connectors/deploy.js +1 -1
- package/dist/base-assets/connectors/devserver.js +1 -1
- package/dist/base-assets/connectors/flow/adapter.js +1 -1
- package/dist/base-assets/connectors/flow/run-flow.js +2 -2
- package/dist/base-assets/connectors/flow.js +1 -1
- package/dist/base-assets/connectors/git/driver.d.ts +6 -2
- package/dist/base-assets/connectors/git/driver.d.ts.map +1 -1
- package/dist/base-assets/connectors/git.js +1 -1
- package/dist/base-assets/connectors/gmail.js +1 -1
- package/dist/base-assets/connectors/googledrive.js +1 -1
- package/dist/base-assets/connectors/local.js +1 -1
- package/dist/base-assets/connectors/mattermost.js +1 -1
- package/dist/base-assets/connectors/memory.js +1 -1
- package/dist/base-assets/connectors/minio.js +1 -1
- package/dist/base-assets/connectors/postgres.js +1 -1
- package/dist/base-assets/connectors/redis.js +1 -1
- package/dist/base-assets/connectors/s3.js +1 -1
- package/dist/base-assets/connectors/sharepoint.js +1 -1
- package/dist/base-assets/connectors/sqlite.js +1 -1
- package/dist/base-assets/connectors/static-server.js +1 -1
- package/dist/base-assets/connectors/tunnel.js +1 -1
- package/dist/base-assets/connectors/webdav.js +1 -1
- package/dist/base-assets/connectors/xstate-store.js +1 -1
- package/dist/base-assets/connectors/xstate.js +1 -1
- package/dist/base-assets/connectors/yjs.js +1 -1
- package/dist/{chunk-2GX7BE7Q.js → chunk-4S4TZDCD.js} +50 -11
- package/dist/chunk-4S4TZDCD.js.map +1 -0
- package/dist/{chunk-D6GE2WA2.js → chunk-63Y7YN33.js} +2 -2
- package/dist/{chunk-D6GE2WA2.js.map → chunk-63Y7YN33.js.map} +1 -1
- package/dist/{chunk-B3XHLXGD.js → chunk-BSY56QS7.js} +9 -5
- package/dist/chunk-BSY56QS7.js.map +1 -0
- package/dist/{chunk-RVPZOFSQ.js → chunk-GVBPAIGF.js} +4 -4
- package/dist/{chunk-RVPZOFSQ.js.map → chunk-GVBPAIGF.js.map} +1 -1
- package/dist/{chunk-G5E44VG7.js → chunk-HS2FNSCF.js} +3 -3
- package/dist/{chunk-G5E44VG7.js.map → chunk-HS2FNSCF.js.map} +1 -1
- package/dist/{chunk-JMB6VR3I.js → chunk-I7HGX4ZE.js} +71 -4
- package/dist/chunk-I7HGX4ZE.js.map +1 -0
- package/dist/{chunk-PBBGKI3L.js → chunk-NCUTHLRV.js} +4 -4
- package/dist/{chunk-PBBGKI3L.js.map → chunk-NCUTHLRV.js.map} +1 -1
- package/dist/{chunk-F6RXWVRE.js → chunk-YVX66WNQ.js} +2 -2
- package/dist/{chunk-F6RXWVRE.js.map → chunk-YVX66WNQ.js.map} +1 -1
- package/dist/cli/index.js +50 -52
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/src/commands/source.d.ts.map +1 -1
- package/dist/connectors/index.js +1 -1
- package/dist/connectors/src/fleet-utils.d.ts +6 -9
- package/dist/connectors/src/fleet-utils.d.ts.map +1 -1
- package/dist/discovery/index.js +1 -1
- package/dist/discovery/src/discover-manifest.d.ts +1 -1
- package/dist/discovery/src/discover-manifest.d.ts.map +1 -1
- package/dist/discovery/src/discover.d.ts +8 -0
- package/dist/discovery/src/discover.d.ts.map +1 -1
- package/dist/discovery/src/index.d.ts +1 -1
- package/dist/discovery/src/index.d.ts.map +1 -1
- package/dist/discovery/src/source-config.d.ts +16 -0
- package/dist/discovery/src/source-config.d.ts.map +1 -1
- package/dist/discovery/src/tree-entries.d.ts +7 -0
- package/dist/discovery/src/tree-entries.d.ts.map +1 -1
- package/dist/{ensure-sources-HA6L3FBS.js → ensure-sources-EU45HFKA.js} +4 -4
- package/dist/{ensure-sources-HA6L3FBS.js.map → ensure-sources-EU45HFKA.js.map} +1 -1
- package/dist/library/index.js +2 -2
- package/dist/library/src/local/local-catalog-source.d.ts +6 -1
- package/dist/library/src/local/local-catalog-source.d.ts.map +1 -1
- package/dist/{open-library-ICKZYC5K.js → open-library-IOYWFK7M.js} +5 -5
- package/dist/{open-library-ICKZYC5K.js.map → open-library-IOYWFK7M.js.map} +1 -1
- package/dist/runner/index.js +3 -3
- package/dist/sdk/asset-manager.js +1 -1
- package/dist/sdk/index.js +3 -3
- package/dist/sdk/runner.js +3 -3
- package/dist/tui/index.js +3 -3
- package/dist/workspace-plugin/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-2GX7BE7Q.js.map +0 -1
- package/dist/chunk-B3XHLXGD.js.map +0 -1
- package/dist/chunk-JMB6VR3I.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.19.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#44](https://github.com/skaile-ai/workspaces/pull/44) [`bd14e1b`](https://github.com/skaile-ai/workspaces/commit/bd14e1be7d8af0819bb21581fc33e5308d199517) Thanks [@mortegro](https://github.com/mortegro)! - Add `dev_paths` to `.skaile-source.yaml` and an `includeDev` discovery option.
|
|
8
|
+
|
|
9
|
+
Assets under a source config's `dev_paths` (e.g. `ai-assets-dev/`) are now
|
|
10
|
+
excluded from a normal discovery run and re-included only when discovery is
|
|
11
|
+
invoked with `includeDev`. This lets a package ship public, consumer-facing
|
|
12
|
+
skills in `ai-assets/` while keeping project-development skills in
|
|
13
|
+
`ai-assets-dev/` out of a normal install. Honored by the glob walker, the
|
|
14
|
+
author-shipped manifest path, and the virtual-tree walker; threaded through
|
|
15
|
+
`LocalCatalogSource.sync({ includeDev })` and surfaced as `--dev` on
|
|
16
|
+
`skaile source sync` / `skaile source add`.
|
|
17
|
+
|
|
18
|
+
### Patch Changes
|
|
19
|
+
|
|
20
|
+
- [#46](https://github.com/skaile-ai/workspaces/pull/46) [`90bf67c`](https://github.com/skaile-ai/workspaces/commit/90bf67cb6a529ba0814bf6400a0206c56ae2476c) Thanks [@peteralbert](https://github.com/peteralbert)! - fix(discovery): default versionless assets to `0.1.0` instead of `0.0.0`
|
|
21
|
+
|
|
22
|
+
Assets whose manifest declares no `version` field now default to `0.1.0` — a
|
|
23
|
+
real, adoptable version — rather than the `0.0.0` placeholder. The Catalog
|
|
24
|
+
rejects `0.0.0` at publish time, so the old default produced unpublishable
|
|
25
|
+
(and therefore unadoptable) catalog entries. Both discovery paths are fixed:
|
|
26
|
+
the local-FS orchestrator (`discover.ts`) and the virtual-tree orchestrator
|
|
27
|
+
(`tree-entries.ts`).
|
|
28
|
+
|
|
29
|
+
## 0.18.0
|
|
30
|
+
|
|
31
|
+
### Minor Changes
|
|
32
|
+
|
|
33
|
+
- [#42](https://github.com/skaile-ai/workspaces/pull/42) [`ecdc900`](https://github.com/skaile-ai/workspaces/commit/ecdc900790773d93b3f18983b785acea15c600db) Thanks [@peteralbert](https://github.com/peteralbert)! - Add fleet-managed short-circuit to the in-container git connector driver.
|
|
34
|
+
|
|
35
|
+
When `SKAILE_FLEET_MANAGED_MOUNTS` lists the connector's mount id, the host's `GitFleetService` has already cloned the bare repo and bind-mounted a shared worktree at `ctx.mountTarget`. The driver now verifies the bind via the existing `ensureFleetMounted` helper, records the current branch for diagnostics, and starts a watcher so the workspace explorer still surfaces changes — then short-circuits `sync` / `onHibernate` / `onSessionClose` and the watcher / managed-credential teardown in `disconnect`. Host supervisor owns clone, fetch, commit, push, and merge.
|
|
36
|
+
|
|
37
|
+
Standalone (non-fleet) sessions are unchanged: when the env does not list the mount id, the driver falls through to the existing clone path.
|
|
38
|
+
|
|
3
39
|
## 0.17.1
|
|
4
40
|
|
|
5
41
|
### Patch Changes
|
|
@@ -16,7 +16,7 @@ async function libraryAssets() {
|
|
|
16
16
|
const notes = [];
|
|
17
17
|
try {
|
|
18
18
|
const [{ openLibraryManager }, { skaileHomeDir }] = await Promise.all([
|
|
19
|
-
import('./open-library-
|
|
19
|
+
import('./open-library-IOYWFK7M.js'),
|
|
20
20
|
import('./library/index.js')
|
|
21
21
|
]);
|
|
22
22
|
const { manager, close } = await openLibraryManager();
|
|
@@ -47,7 +47,7 @@ async function libraryAssets() {
|
|
|
47
47
|
async function storeAssets(projectDir) {
|
|
48
48
|
const notes = [];
|
|
49
49
|
try {
|
|
50
|
-
const { resolveCatalogSource } = await import('./open-library-
|
|
50
|
+
const { resolveCatalogSource } = await import('./open-library-IOYWFK7M.js');
|
|
51
51
|
const { source, close } = await resolveCatalogSource({ projectDir });
|
|
52
52
|
try {
|
|
53
53
|
const assets = await source.listAssets();
|
|
@@ -86,5 +86,5 @@ async function gatherAssetFeeds(am, projectDir) {
|
|
|
86
86
|
}
|
|
87
87
|
|
|
88
88
|
export { gatherAssetFeeds, sourceAssets };
|
|
89
|
-
//# sourceMappingURL=asset-feeds-
|
|
90
|
-
//# sourceMappingURL=asset-feeds-
|
|
89
|
+
//# sourceMappingURL=asset-feeds-OFMOTPTX.js.map
|
|
90
|
+
//# sourceMappingURL=asset-feeds-OFMOTPTX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../cli/src/asset-feeds.ts"],"names":[],"mappings":"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","file":"asset-feeds-
|
|
1
|
+
{"version":3,"sources":["../cli/src/asset-feeds.ts"],"names":[],"mappings":"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","file":"asset-feeds-OFMOTPTX.js","sourcesContent":["/**\n * asset-feeds.ts — gather installable assets from every feed the manage TUI\n * surfaces.\n *\n * Three feeds, normalized into `CatalogEntry`:\n * - **Project sources** — `skaile.yaml` `sources:` entries (scanned via\n * `AssetManager.search()`; the new `sources:` field is merged into the\n * legacy repositories map in `AssetManager.loadConfig`).\n * - **Local libraries** — user authoring places from `LocalIndex` (filesystem\n * scan of each library's `path`).\n * - **Remote store** — the configured catalog source when `catalog.url` is\n * not `local`. Failures are non-fatal — they surface as notes.\n */\n\nimport { existsSync } from \"node:fs\";\nimport * as path from \"node:path\";\nimport { type AssetKind, type CatalogEntry, scanRepo } from \"@skaile/workspaces/core\";\n\n/** One non-fatal note returned to the caller for surfacing in the UI. */\nexport interface FeedNote {\n feed: \"sources\" | \"libraries\" | \"store\";\n message: string;\n}\n\nexport interface AssetFeedResult {\n entries: CatalogEntry[];\n notes: FeedNote[];\n}\n\n/**\n * Pull assets from local libraries (the authoring places under\n * `~/.skaile/libraries/<name>/`, not the `~/.skaile/sources/` cache). Each\n * library's `path` is scanned with `scanRepo` and tagged with\n * `repository = \"library:<name>\"` so the manage TUI groups them into their\n * own headers.\n */\nasync function libraryAssets(): Promise<{ entries: CatalogEntry[]; notes: FeedNote[] }> {\n const notes: FeedNote[] = [];\n try {\n const [{ openLibraryManager }, { skaileHomeDir }] = await Promise.all([\n import(\"./open-library.ts\"),\n import(\"@skaile/workspaces/library\"),\n ]);\n const { manager, close } = await openLibraryManager();\n try {\n const sourcesDir = path.join(skaileHomeDir(), \"sources\");\n const libs = (await manager.listLibraries()).filter(\n (l) => !l.path.startsWith(sourcesDir),\n );\n const entries: CatalogEntry[] = [];\n for (const lib of libs) {\n if (!existsSync(lib.path)) continue;\n for (const e of scanRepo(lib.path, `library:${lib.name}`)) {\n entries.push(e);\n }\n }\n return { entries, notes };\n } finally {\n close();\n }\n } catch (err) {\n notes.push({\n feed: \"libraries\",\n message: err instanceof Error ? err.message : String(err),\n });\n return { entries: [], notes };\n }\n}\n\n/**\n * Pull a (best-effort) snapshot of the connected remote store catalog.\n *\n * - Returns no entries when the resolved catalog is local-only or the host\n * is unreachable (the failure becomes a note, not an exception).\n * - Maps `CatalogAsset` → `CatalogEntry` with `repository = \"store\"` and\n * `source = \"store://<id>\"`; per-file `source` paths are not available\n * for remote assets so we use the canonical ref as a stable placeholder.\n */\nasync function storeAssets(projectDir: string): Promise<{\n entries: CatalogEntry[];\n notes: FeedNote[];\n}> {\n const notes: FeedNote[] = [];\n try {\n const { resolveCatalogSource } = await import(\"./open-library.ts\");\n const { source, close } = await resolveCatalogSource({ projectDir });\n try {\n const assets = await source.listAssets();\n const entries: CatalogEntry[] = assets.map((a) => ({\n name: a.name,\n kind: (a.kind as AssetKind) ?? \"skill\",\n description: a.description ?? \"\",\n source: `store://${a.id}`,\n repository: \"store\",\n domain: a.publisher,\n version: a.version,\n requires: [],\n dependencies: [],\n }));\n return { entries, notes };\n } finally {\n close();\n }\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n // Local-only catalog throws a recognizable message — silence it; absence\n // is the user's choice, not an error.\n if (!/local/i.test(msg)) {\n notes.push({ feed: \"store\", message: msg });\n }\n return { entries: [], notes };\n }\n}\n\n/**\n * Project-source feed: leans on `AssetManager.search()`, which now merges\n * `skaile.yaml`'s `sources:` field into the repositories map. Provided as a\n * function rather than an inline call so the caller can supply a fresh\n * `AssetManager` instance.\n */\nexport function sourceAssets(am: { search: () => CatalogEntry[] }): CatalogEntry[] {\n return am.search();\n}\n\n/**\n * Run all three feeds and return a single normalized result.\n *\n * Feeds run in parallel where possible — the store fetch is the slow one\n * (one HTTP call) and is fired alongside the local library walk.\n */\nexport async function gatherAssetFeeds(\n am: { search: () => CatalogEntry[] },\n projectDir: string,\n): Promise<AssetFeedResult> {\n const [libs, store] = await Promise.all([libraryAssets(), storeAssets(projectDir)]);\n return {\n entries: [...sourceAssets(am), ...libs.entries, ...store.entries],\n notes: [...libs.notes, ...store.notes],\n };\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { DeployConnector, createConnector21 as createConnector } from '../../chunk-
|
|
1
|
+
export { DeployConnector, createConnector21 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { DevServerConnector, createConnector18 as createConnector } from '../../chunk-
|
|
1
|
+
export { DevServerConnector, createConnector18 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { resumeFlow, runFlow } from '../../../chunk-
|
|
1
|
+
export { resumeFlow, runFlow } from '../../../chunk-HS2FNSCF.js';
|
|
2
2
|
import '../../../chunk-GCJXPUHG.js';
|
|
3
3
|
import '../../../chunk-IPUYL6TD.js';
|
|
4
|
-
import '../../../chunk-
|
|
4
|
+
import '../../../chunk-I7HGX4ZE.js';
|
|
5
5
|
import '../../../chunk-VMUQAISH.js';
|
|
6
6
|
import '../../../chunk-6MB7CRME.js';
|
|
7
7
|
import '../../../chunk-QAVZOJCV.js';
|
|
@@ -3,8 +3,7 @@
|
|
|
3
3
|
* Mounts a git repo by cloning/pulling to a local directory.
|
|
4
4
|
* Session-aware: auto-branching, lifecycle hooks (hibernate/close), periodic fetch/rebase.
|
|
5
5
|
*/
|
|
6
|
-
import type { WatchHandle, WatchOptions } from "@skaile/workspaces/connectors";
|
|
7
|
-
import type { ConnectContext, ConnectorChangeEvent, ConnectorDeclaration, ConnectorHandle, FilesystemFace } from "@skaile/workspaces/connectors";
|
|
6
|
+
import type { ConnectContext, ConnectorChangeEvent, ConnectorDeclaration, ConnectorHandle, FilesystemFace, WatchHandle, WatchOptions } from "@skaile/workspaces/connectors";
|
|
8
7
|
import { AbstractConnector } from "@skaile/workspaces/connectors";
|
|
9
8
|
/**
|
|
10
9
|
* Filesystem-face connector for git repositories — clones or pulls on connect, supports
|
|
@@ -24,6 +23,11 @@ export declare class GitConnector extends AbstractConnector {
|
|
|
24
23
|
readonly name = "git";
|
|
25
24
|
readonly filesystem: FilesystemFace;
|
|
26
25
|
connect(declaration: ConnectorDeclaration, ctx: ConnectContext): Promise<ConnectorHandle>;
|
|
26
|
+
/**
|
|
27
|
+
* Fleet-managed connect: verify the host bind, register an explorer watcher,
|
|
28
|
+
* no-op every git lifecycle hook. Spec: `_devlog/specs/2026-05-28-git-fleet-mode-design.md`.
|
|
29
|
+
*/
|
|
30
|
+
private connectFleetManaged;
|
|
27
31
|
/**
|
|
28
32
|
* Public refresh entry-point used by the runner's wake-mid-401 handler when
|
|
29
33
|
* the credential-helper script touches the workspace refresh-flag. Calls
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../../base-assets/connectors/git/driver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../../../base-assets/connectors/git/driver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAYH,OAAO,KAAK,EACV,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,cAAc,EAMd,WAAW,EACX,YAAY,EACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EACL,iBAAiB,EAUlB,MAAM,+BAA+B,CAAC;AAyMvC;;;;;;;;;;;;;GAaG;AACH,qBAAa,YAAa,SAAQ,iBAAiB;IACjD,QAAQ,CAAC,IAAI,SAAS;IAEtB,QAAQ,CAAC,UAAU,EAAE,cAAc,CAIjC;IAEI,OAAO,CAAC,WAAW,EAAE,oBAAoB,EAAE,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAgL/F;;;OAGG;YACW,mBAAmB;IA2CjC;;;;;;;;;;;;;;;OAeG;IACG,wBAAwB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IAmCrF,UAAU,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YAqB1C,KAAK;IAqBV,KAAK,CACZ,MAAM,EAAE,eAAe,EACvB,QAAQ,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,EAC/C,OAAO,CAAC,EAAE,YAAY,GACrB,WAAW;IAsCC,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA4BjE,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAsDnF;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;IASvB;;;;;;;;;;;;;;;OAeG;YACW,mBAAmB;IA8DjC,OAAO,CAAC,uBAAuB;IAmG/B;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe;YAcT,wBAAwB;IAmDtC,OAAO,CAAC,yBAAyB;IA8BjC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,OAAO,CAAC,WAAW;IAgBnB;;;;;;;;OAQG;IACH,OAAO,CAAC,qBAAqB;IAS7B;;;;;;;;;;;;;;;;;;;OAmBG;IACH,OAAO,CAAC,mBAAmB;IAyB3B;;;;;;;;;;;;;;OAcG;IACH,OAAO,CAAC,4BAA4B;IAkCpC,OAAO,CAAC,OAAO;IAYf,OAAO,CAAC,kBAAkB;IAwB1B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAkD/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkC3B,OAAO,CAAC,qBAAqB;IAM7B,OAAO,CAAC,oBAAoB;IAQ5B,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,qBAAqB;CAa9B;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,YAAY,CAE9C"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { GitConnector, createConnector2 as createConnector } from '../../chunk-
|
|
1
|
+
export { GitConnector, createConnector2 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { GmailConnector, createConnector16 as createConnector } from '../../chunk-
|
|
1
|
+
export { GmailConnector, createConnector16 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { GoogleDriveConnector, createConnector7 as createConnector, parseAuthBlob } from '../../chunk-
|
|
1
|
+
export { GoogleDriveConnector, createConnector7 as createConnector, parseAuthBlob } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { LocalConnector, createConnector3 as createConnector } from '../../chunk-
|
|
1
|
+
export { LocalConnector, createConnector3 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { MattermostConnector, createConnector17 as createConnector } from '../../chunk-
|
|
1
|
+
export { MattermostConnector, createConnector17 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { MemoryConnector, createConnector8 as createConnector } from '../../chunk-
|
|
1
|
+
export { MemoryConnector, createConnector8 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { MinIOConnector, createConnector12 as createConnector } from '../../chunk-
|
|
1
|
+
export { MinIOConnector, createConnector12 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { PostgresConnector, createConnector9 as createConnector } from '../../chunk-
|
|
1
|
+
export { PostgresConnector, createConnector9 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { RedisConnector, createConnector10 as createConnector } from '../../chunk-
|
|
1
|
+
export { RedisConnector, createConnector10 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { S3Connector, createConnector4 as createConnector } from '../../chunk-
|
|
1
|
+
export { S3Connector, createConnector4 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { SharePointConnector, createConnector6 as createConnector } from '../../chunk-
|
|
1
|
+
export { SharePointConnector, createConnector6 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { SQLiteConnector, createConnector11 as createConnector } from '../../chunk-
|
|
1
|
+
export { SQLiteConnector, createConnector11 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { StaticServerConnector, createConnector19 as createConnector } from '../../chunk-
|
|
1
|
+
export { StaticServerConnector, createConnector19 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { TunnelConnector, createConnector20 as createConnector } from '../../chunk-
|
|
1
|
+
export { TunnelConnector, createConnector20 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { WebDAVConnector, createConnector5 as createConnector } from '../../chunk-
|
|
1
|
+
export { WebDAVConnector, createConnector5 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { XStateStoreConnector, createConnector14 as createConnector } from '../../chunk-
|
|
1
|
+
export { XStateStoreConnector, createConnector14 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { XStateConnector, createConnector13 as createConnector } from '../../chunk-
|
|
1
|
+
export { XStateConnector, createConnector13 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { YjsConnector, createConnector15 as createConnector } from '../../chunk-
|
|
1
|
+
export { YjsConnector, createConnector15 as createConnector } from '../../chunk-I7HGX4ZE.js';
|
|
2
2
|
import '../../chunk-VMUQAISH.js';
|
|
3
3
|
import '../../chunk-6MB7CRME.js';
|
|
4
4
|
import '../../chunk-QAVZOJCV.js';
|
|
@@ -516,6 +516,14 @@ var SourceConfigSchema = z.object({
|
|
|
516
516
|
default_ref: z.string().min(1).default("main"),
|
|
517
517
|
/** Per-path publisher overrides. Evaluated in order; first match wins. */
|
|
518
518
|
publisher_overrides: z.array(PublisherOverrideSchema).default([]),
|
|
519
|
+
/**
|
|
520
|
+
* Repo-relative path prefixes holding assets meant only for developing the
|
|
521
|
+
* project itself (e.g. `ai-assets-dev/`). Excluded from a normal discovery
|
|
522
|
+
* run; re-included only when discovery is invoked with `includeDev` (the
|
|
523
|
+
* `--dev` flag on `skaile source sync` / `source add`). Conventionally a
|
|
524
|
+
* single top-level folder. See `docs/discovery/dev-assets.md`.
|
|
525
|
+
*/
|
|
526
|
+
dev_paths: z.array(z.string().min(1)).default([]),
|
|
519
527
|
/** Optional sync configuration for the catalog backend. */
|
|
520
528
|
sync: SyncConfigSchema.optional(),
|
|
521
529
|
/**
|
|
@@ -553,6 +561,16 @@ function loadSourceConfig(yamlText) {
|
|
|
553
561
|
function isManifestMode(config) {
|
|
554
562
|
return config.version === 2 && Array.isArray(config.assets);
|
|
555
563
|
}
|
|
564
|
+
function isExcludedDevPath(relativePath, devPaths) {
|
|
565
|
+
if (devPaths.length === 0) return false;
|
|
566
|
+
const rel = relativePath.replace(/^\.\//, "").replace(/\/+$/, "");
|
|
567
|
+
for (const raw of devPaths) {
|
|
568
|
+
const dp = raw.replace(/^\.\//, "").replace(/\/+$/, "");
|
|
569
|
+
if (dp.length === 0) continue;
|
|
570
|
+
if (rel === dp || rel.startsWith(`${dp}/`)) return true;
|
|
571
|
+
}
|
|
572
|
+
return false;
|
|
573
|
+
}
|
|
556
574
|
function collectWarnings(config) {
|
|
557
575
|
const warnings = [];
|
|
558
576
|
if (Array.isArray(config.assets) && config.publisher_overrides.length > 0) {
|
|
@@ -574,6 +592,9 @@ function mergeSourceConfigs(base, overlay) {
|
|
|
574
592
|
if (Array.isArray(overlay.publisher_overrides) && overlay.publisher_overrides.length > 0) {
|
|
575
593
|
merged.publisher_overrides = overlay.publisher_overrides;
|
|
576
594
|
}
|
|
595
|
+
if (Array.isArray(overlay.dev_paths) && overlay.dev_paths.length > 0) {
|
|
596
|
+
merged.dev_paths = overlay.dev_paths;
|
|
597
|
+
}
|
|
577
598
|
if (overlay.default_ref && overlay.default_ref.length > 0) {
|
|
578
599
|
merged.default_ref = overlay.default_ref;
|
|
579
600
|
}
|
|
@@ -607,7 +628,8 @@ function loadMergedSourceConfig(rootPath, sidecarPath) {
|
|
|
607
628
|
version: 2,
|
|
608
629
|
publisher_default: "@<domain>",
|
|
609
630
|
default_ref: "main",
|
|
610
|
-
publisher_overrides: []
|
|
631
|
+
publisher_overrides: [],
|
|
632
|
+
dev_paths: []
|
|
611
633
|
}
|
|
612
634
|
};
|
|
613
635
|
}
|
|
@@ -671,12 +693,14 @@ function computeDeterministicHashDetailed(assetRoot, files) {
|
|
|
671
693
|
}
|
|
672
694
|
return { sha256: hash.digest("hex"), present, missing };
|
|
673
695
|
}
|
|
674
|
-
function discoverFromManifest(rootPath, sourceConfig, registry) {
|
|
696
|
+
function discoverFromManifest(rootPath, sourceConfig, registry, includeDev = false) {
|
|
675
697
|
const assets = [];
|
|
676
698
|
const errors = [];
|
|
677
699
|
const allEdges = [];
|
|
700
|
+
const devPaths = sourceConfig.dev_paths ?? [];
|
|
678
701
|
const sortedEntries = [...sourceConfig.assets].sort((a, b) => a.path < b.path ? -1 : 1);
|
|
679
702
|
for (const entry of sortedEntries) {
|
|
703
|
+
if (!includeDev && isExcludedDevPath(entry.path, devPaths)) continue;
|
|
680
704
|
const result = processEntry(rootPath, entry, registry);
|
|
681
705
|
if (result.errors.length > 0) {
|
|
682
706
|
errors.push(...result.errors);
|
|
@@ -852,10 +876,12 @@ function discoverAssetsInTree(rootPath, optionsOrSourceConfig) {
|
|
|
852
876
|
let sourceConfig;
|
|
853
877
|
let registry;
|
|
854
878
|
let sidecarPath;
|
|
855
|
-
|
|
879
|
+
let includeDev = false;
|
|
880
|
+
if (optionsOrSourceConfig && ("registry" in optionsOrSourceConfig || "sourceConfig" in optionsOrSourceConfig || "sidecarPath" in optionsOrSourceConfig || "includeDev" in optionsOrSourceConfig)) {
|
|
856
881
|
sourceConfig = optionsOrSourceConfig.sourceConfig;
|
|
857
882
|
registry = optionsOrSourceConfig.registry;
|
|
858
883
|
sidecarPath = optionsOrSourceConfig.sidecarPath;
|
|
884
|
+
includeDev = optionsOrSourceConfig.includeDev ?? false;
|
|
859
885
|
} else {
|
|
860
886
|
sourceConfig = optionsOrSourceConfig;
|
|
861
887
|
}
|
|
@@ -869,13 +895,15 @@ function discoverAssetsInTree(rootPath, optionsOrSourceConfig) {
|
|
|
869
895
|
}
|
|
870
896
|
}
|
|
871
897
|
if (sourceConfig && isManifestMode(sourceConfig)) {
|
|
872
|
-
return discoverFromManifest(rootPath, sourceConfig, registry);
|
|
898
|
+
return discoverFromManifest(rootPath, sourceConfig, registry, includeDev);
|
|
873
899
|
}
|
|
874
900
|
const assets = [];
|
|
875
901
|
const errors = [];
|
|
876
902
|
const allEdges = [];
|
|
903
|
+
const devPaths = sourceConfig?.dev_paths ?? [];
|
|
877
904
|
const seen = /* @__PURE__ */ new Set();
|
|
878
905
|
for (const { absPath, relativePath } of walkTree(rootPath)) {
|
|
906
|
+
if (!includeDev && isExcludedDevPath(relativePath, devPaths)) continue;
|
|
879
907
|
let kind;
|
|
880
908
|
try {
|
|
881
909
|
kind = registry.resolveKind(relativePath);
|
|
@@ -899,7 +927,7 @@ function discoverAssetsInTree(rootPath, optionsOrSourceConfig) {
|
|
|
899
927
|
}
|
|
900
928
|
const publisher = resolvePublisher(relativePath, sourceConfig);
|
|
901
929
|
const name = deriveName(relativePath, kind, manifest);
|
|
902
|
-
const version = typeof manifest.version === "string" ? manifest.version : "0.
|
|
930
|
+
const version = typeof manifest.version === "string" ? manifest.version : "0.1.0";
|
|
903
931
|
const ref = `${publisher}/${name}@${version}`;
|
|
904
932
|
const fileFilter = registry.defaultFileFilter(kind, absPath) ?? {
|
|
905
933
|
assetRoot: path.dirname(absPath),
|
|
@@ -1016,6 +1044,7 @@ function deriveName(relativePath, kind, manifest) {
|
|
|
1016
1044
|
}
|
|
1017
1045
|
async function discoverAssetsInTreeEntries(entries, options) {
|
|
1018
1046
|
const registry = options.registry ?? createDefaultRegistry();
|
|
1047
|
+
const includeDev = options.includeDev ?? false;
|
|
1019
1048
|
const blobByPath = /* @__PURE__ */ new Map();
|
|
1020
1049
|
for (const entry of entries) {
|
|
1021
1050
|
if (entry.type === "blob") {
|
|
@@ -1029,8 +1058,15 @@ async function discoverAssetsInTreeEntries(entries, options) {
|
|
|
1029
1058
|
);
|
|
1030
1059
|
const resolvedSourceConfig = options.sidecarSourceConfig ? mergeSourceConfigs(baseSourceConfig, options.sidecarSourceConfig) : baseSourceConfig;
|
|
1031
1060
|
if (resolvedSourceConfig && isManifestMode(resolvedSourceConfig)) {
|
|
1032
|
-
return discoverFromManifestTree(
|
|
1061
|
+
return discoverFromManifestTree(
|
|
1062
|
+
resolvedSourceConfig,
|
|
1063
|
+
blobByPath,
|
|
1064
|
+
options.fetchBlob,
|
|
1065
|
+
registry,
|
|
1066
|
+
includeDev
|
|
1067
|
+
);
|
|
1033
1068
|
}
|
|
1069
|
+
const devPaths = resolvedSourceConfig?.dev_paths ?? [];
|
|
1034
1070
|
const sortedBlobPaths = [...blobByPath.keys()].sort();
|
|
1035
1071
|
const assets = [];
|
|
1036
1072
|
const errors = [];
|
|
@@ -1040,6 +1076,7 @@ async function discoverAssetsInTreeEntries(entries, options) {
|
|
|
1040
1076
|
if (relativePath.startsWith(".git/") || relativePath.startsWith("node_modules/") || relativePath.startsWith(".skaile/") || relativePath.includes("/.git/") || relativePath.includes("/node_modules/") || relativePath.includes("/.skaile/")) {
|
|
1041
1077
|
continue;
|
|
1042
1078
|
}
|
|
1079
|
+
if (!includeDev && isExcludedDevPath(relativePath, devPaths)) continue;
|
|
1043
1080
|
let kind;
|
|
1044
1081
|
try {
|
|
1045
1082
|
kind = registry.resolveKind(relativePath);
|
|
@@ -1082,7 +1119,7 @@ async function discoverAssetsInTreeEntries(entries, options) {
|
|
|
1082
1119
|
}
|
|
1083
1120
|
const publisher = resolvePublisher2(relativePath, resolvedSourceConfig);
|
|
1084
1121
|
const name = deriveName2(relativePath, kind, manifest);
|
|
1085
|
-
const version = typeof manifest.version === "string" ? manifest.version : "0.
|
|
1122
|
+
const version = typeof manifest.version === "string" ? manifest.version : "0.1.0";
|
|
1086
1123
|
const ref = `${publisher}/${name}@${version}`;
|
|
1087
1124
|
const fileFilter = computeFileFilter(kind, relativePath, blobByPath);
|
|
1088
1125
|
let sha256;
|
|
@@ -1305,12 +1342,14 @@ async function resolveSourceConfigFromTree(explicit, blobByPath, fetchBlob) {
|
|
|
1305
1342
|
const result = loadSourceConfig(bytes.toString("utf-8"));
|
|
1306
1343
|
return result.ok ? result.config : void 0;
|
|
1307
1344
|
}
|
|
1308
|
-
async function discoverFromManifestTree(sourceConfig, blobByPath, fetchBlob, registry) {
|
|
1345
|
+
async function discoverFromManifestTree(sourceConfig, blobByPath, fetchBlob, registry, includeDev = false) {
|
|
1309
1346
|
const assets = [];
|
|
1310
1347
|
const errors = [];
|
|
1311
1348
|
const allEdges = [];
|
|
1349
|
+
const devPaths = sourceConfig.dev_paths ?? [];
|
|
1312
1350
|
const sortedEntries = [...sourceConfig.assets].sort((a, b) => a.path < b.path ? -1 : 1);
|
|
1313
1351
|
for (const entry of sortedEntries) {
|
|
1352
|
+
if (!includeDev && isExcludedDevPath(entry.path, devPaths)) continue;
|
|
1314
1353
|
const result = await processManifestEntryTree(entry, blobByPath, fetchBlob, registry);
|
|
1315
1354
|
if (result.errors.length > 0) {
|
|
1316
1355
|
errors.push(...result.errors);
|
|
@@ -1484,6 +1523,6 @@ function validateRequiresSyntax2(requires) {
|
|
|
1484
1523
|
// discovery/src/index.ts
|
|
1485
1524
|
var VERSION = "0.0.0";
|
|
1486
1525
|
|
|
1487
|
-
export { AssetKindRegistry, BUILTIN_PROVIDERS, SEMVER_RE, SourceConfigSchema, VERSION, agentProvider, buildRequiresGraph, computeDeterministicHash, computeDeterministicHashDetailed, connectorProvider, contractProvider, createDefaultRegistry, detectCycles, discoverAssetsInTree, discoverAssetsInTreeEntries, discoverFromManifest, extractRequires, isManifestMode, loadMergedSourceConfig, loadSourceConfig, mcpServerProvider, mergeSourceConfigs, parseSourceConfig, personaProvider, presetProvider, promptProvider, rulesetProvider, skillProvider, validateSourceConfig };
|
|
1488
|
-
//# sourceMappingURL=chunk-
|
|
1489
|
-
//# sourceMappingURL=chunk-
|
|
1526
|
+
export { AssetKindRegistry, BUILTIN_PROVIDERS, SEMVER_RE, SourceConfigSchema, VERSION, agentProvider, buildRequiresGraph, computeDeterministicHash, computeDeterministicHashDetailed, connectorProvider, contractProvider, createDefaultRegistry, detectCycles, discoverAssetsInTree, discoverAssetsInTreeEntries, discoverFromManifest, extractRequires, isExcludedDevPath, isManifestMode, loadMergedSourceConfig, loadSourceConfig, mcpServerProvider, mergeSourceConfigs, parseSourceConfig, personaProvider, presetProvider, promptProvider, rulesetProvider, skillProvider, validateSourceConfig };
|
|
1527
|
+
//# sourceMappingURL=chunk-4S4TZDCD.js.map
|
|
1528
|
+
//# sourceMappingURL=chunk-4S4TZDCD.js.map
|