@skaile/workspaces 0.43.1 → 0.45.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 +101 -0
- package/dist/{asset-feeds-3PSV57NT.js → asset-feeds-AOZLZMDV.js} +15 -11
- package/dist/asset-feeds-AOZLZMDV.js.map +1 -0
- package/dist/asset-manager/index.js +5 -5
- package/dist/asset-manager/installer.js +4 -4
- package/dist/asset-manager/src/index.d.ts +149 -4
- package/dist/asset-manager/src/index.d.ts.map +1 -1
- package/dist/{chunk-KYQNWFJV.js → chunk-BLGHFVXE.js} +3 -3
- package/dist/{chunk-KYQNWFJV.js.map → chunk-BLGHFVXE.js.map} +1 -1
- package/dist/{chunk-R4H6EJW5.js → chunk-CBZEIFU4.js} +3 -3
- package/dist/{chunk-R4H6EJW5.js.map → chunk-CBZEIFU4.js.map} +1 -1
- package/dist/{chunk-GJI6FZ56.js → chunk-COSTF7QW.js} +60 -8
- package/dist/chunk-COSTF7QW.js.map +1 -0
- package/dist/{chunk-NYMRKIOR.js → chunk-CVWA4RIK.js} +4 -4
- package/dist/{chunk-NYMRKIOR.js.map → chunk-CVWA4RIK.js.map} +1 -1
- package/dist/{chunk-BXYMGZCI.js → chunk-ETDXTGDF.js} +3 -3
- package/dist/{chunk-BXYMGZCI.js.map → chunk-ETDXTGDF.js.map} +1 -1
- package/dist/{chunk-TDSRLMDB.js → chunk-EVZKWY5J.js} +2 -2
- package/dist/chunk-EVZKWY5J.js.map +1 -0
- package/dist/{chunk-3HUUP3JC.js → chunk-FYLIR4AV.js} +107 -7
- package/dist/chunk-FYLIR4AV.js.map +1 -0
- package/dist/{chunk-G6FJZG4C.js → chunk-GM3BV6JK.js} +2 -2
- package/dist/{chunk-G6FJZG4C.js.map → chunk-GM3BV6JK.js.map} +1 -1
- package/dist/{chunk-R4YUZRGF.js → chunk-JUZGLINM.js} +2 -2
- package/dist/{chunk-R4YUZRGF.js.map → chunk-JUZGLINM.js.map} +1 -1
- package/dist/{chunk-WKZ5R4NP.js → chunk-L6BKSTAX.js} +332 -38
- package/dist/chunk-L6BKSTAX.js.map +1 -0
- package/dist/{chunk-WRDHUTOK.js → chunk-LHUCCPH4.js} +5 -5
- package/dist/{chunk-WRDHUTOK.js.map → chunk-LHUCCPH4.js.map} +1 -1
- package/dist/{chunk-U2XHHLE3.js → chunk-LMRO2QNF.js} +5 -5
- package/dist/{chunk-U2XHHLE3.js.map → chunk-LMRO2QNF.js.map} +1 -1
- package/dist/{chunk-N4FSBCLV.js → chunk-N2KV5RK3.js} +127 -10
- package/dist/chunk-N2KV5RK3.js.map +1 -0
- package/dist/{chunk-CIEKKLMG.js → chunk-PCXU2CVW.js} +3 -3
- package/dist/{chunk-CIEKKLMG.js.map → chunk-PCXU2CVW.js.map} +1 -1
- package/dist/{chunk-HVCZLD5Z.js → chunk-VPXV2Z5E.js} +5 -7
- package/dist/chunk-VPXV2Z5E.js.map +1 -0
- package/dist/{chunk-2BEDUMTA.js → chunk-XF2BBX6P.js} +3 -3
- package/dist/{chunk-2BEDUMTA.js.map → chunk-XF2BBX6P.js.map} +1 -1
- package/dist/{chunk-3K2CYDBT.js → chunk-Z5Z3MYDL.js} +8 -4
- package/dist/chunk-Z5Z3MYDL.js.map +1 -0
- package/dist/{chunk-M54RYUXY.js → chunk-ZAEJ33Y6.js} +19 -7
- package/dist/chunk-ZAEJ33Y6.js.map +1 -0
- package/dist/cli/index.js +969 -572
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/src/asset-feeds.d.ts.map +1 -1
- package/dist/cli/src/commands/asset-cmd.d.ts +1 -1
- package/dist/cli/src/commands/asset-cmd.d.ts.map +1 -1
- package/dist/cli/src/commands/cache.d.ts +27 -0
- package/dist/cli/src/commands/cache.d.ts.map +1 -0
- package/dist/cli/src/commands/catalog.d.ts +9 -3
- package/dist/cli/src/commands/catalog.d.ts.map +1 -1
- package/dist/cli/src/commands/library-cmd.d.ts.map +1 -1
- package/dist/cli/src/commands/manage.d.ts.map +1 -1
- package/dist/cli/src/commands/npx.d.ts +1 -1
- package/dist/cli/src/commands/skailify-lib.d.ts +108 -0
- package/dist/cli/src/commands/skailify-lib.d.ts.map +1 -0
- package/dist/cli/src/commands/source.d.ts +3 -1
- package/dist/cli/src/commands/source.d.ts.map +1 -1
- package/dist/cli/src/commands/update.d.ts +1 -1
- package/dist/cli/src/ensure-sources.d.ts +2 -2
- package/dist/cli/src/ensure-sources.d.ts.map +1 -1
- package/dist/connectors/config.js +4 -4
- package/dist/connectors/index.js +6 -6
- package/dist/connectors/rclone.js +1 -1
- package/dist/connectors/src/rclone-process-manager.d.ts +57 -2
- package/dist/connectors/src/rclone-process-manager.d.ts.map +1 -1
- package/dist/core/index.js +3 -3
- package/dist/core/runtime-assets.js +2 -2
- package/dist/core/src/cache-paths.d.ts +25 -0
- package/dist/core/src/cache-paths.d.ts.map +1 -0
- package/dist/core/src/index.d.ts +2 -1
- package/dist/core/src/index.d.ts.map +1 -1
- package/dist/core/src/repo-manager.d.ts +11 -8
- package/dist/core/src/repo-manager.d.ts.map +1 -1
- package/dist/core/src/runtime-assets.d.ts.map +1 -1
- package/dist/core/src/workspace-config.d.ts +2 -2
- package/dist/core/src/workspace-config.d.ts.map +1 -1
- package/dist/core/workspace-config.js +1 -1
- package/dist/deploy/index.js +3 -3
- package/dist/{ensure-sources-VQDZB7NT.js → ensure-sources-NSDMTAWN.js} +6 -12
- package/dist/ensure-sources-NSDMTAWN.js.map +1 -0
- package/dist/factory-assets/connectors/deploy.js +6 -6
- package/dist/factory-assets/connectors/devserver.js +6 -6
- package/dist/factory-assets/connectors/flow/adapter.js +6 -6
- package/dist/factory-assets/connectors/flow/engine.js +3 -3
- package/dist/factory-assets/connectors/flow/run-flow.js +7 -7
- package/dist/factory-assets/connectors/flow.js +6 -6
- package/dist/factory-assets/connectors/git.js +6 -6
- package/dist/factory-assets/connectors/gmail.js +6 -6
- package/dist/factory-assets/connectors/googledrive.js +6 -6
- package/dist/factory-assets/connectors/local.js +6 -6
- package/dist/factory-assets/connectors/mattermost.js +6 -6
- package/dist/factory-assets/connectors/memory.js +6 -6
- package/dist/factory-assets/connectors/minio.js +6 -6
- package/dist/factory-assets/connectors/postgres.js +6 -6
- package/dist/factory-assets/connectors/s3.js +6 -6
- package/dist/factory-assets/connectors/sharepoint.js +6 -6
- package/dist/factory-assets/connectors/sqlite.js +6 -6
- package/dist/factory-assets/connectors/static-server.js +6 -6
- package/dist/factory-assets/connectors/tunnel.js +6 -6
- package/dist/factory-assets/connectors/webdav.js +6 -6
- package/dist/factory-assets/connectors/xstate-store.js +6 -6
- package/dist/factory-assets/connectors/xstate.js +6 -6
- package/dist/factory-assets/skaile.manifest.yaml +3 -0
- package/dist/factory-assets/skills/skailify/SKILL.md +84 -0
- package/dist/{flows-KTBCZ5GQ.js → flows-WELXQ7IG.js} +3 -3
- package/dist/{flows-KTBCZ5GQ.js.map → flows-WELXQ7IG.js.map} +1 -1
- package/dist/library/index.js +4 -4
- package/dist/library/install.js +3 -3
- package/dist/library/src/local/local-catalog-source.d.ts +1 -1
- package/dist/library/src/local/sidecar-git.d.ts +2 -2
- package/dist/library/src/local/sidecar-paths.d.ts +12 -10
- package/dist/library/src/local/sidecar-paths.d.ts.map +1 -1
- package/dist/library/src/local/store-paths.d.ts +2 -2
- package/dist/library/src/remote/cache.d.ts +8 -2
- package/dist/library/src/remote/cache.d.ts.map +1 -1
- package/dist/library/src/remote/remote-catalog-source.d.ts +1 -1
- package/dist/library/src/remote/rest-catalog-source.d.ts +1 -1
- package/dist/{open-library-FHUXOCN7.js → open-library-362BZ6OW.js} +7 -7
- package/dist/{open-library-FHUXOCN7.js.map → open-library-362BZ6OW.js.map} +1 -1
- package/dist/{paths-7H5CSBLQ.js → paths-4SSFMX5Z.js} +6 -6
- package/dist/{paths-7H5CSBLQ.js.map → paths-4SSFMX5Z.js.map} +1 -1
- package/dist/{plugin-store-LGLN2QUX.js → plugin-store-2X2YXJVG.js} +5 -5
- package/dist/{plugin-store-LGLN2QUX.js.map → plugin-store-2X2YXJVG.js.map} +1 -1
- package/dist/runner/index.js +9 -9
- package/dist/runner/src/file-changed-coalescer.d.ts +48 -0
- package/dist/runner/src/file-changed-coalescer.d.ts.map +1 -0
- package/dist/runner/src/resources.d.ts.map +1 -1
- package/dist/sdk/asset-manager.js +5 -5
- package/dist/sdk/core.js +3 -3
- package/dist/sdk/flow.js +3 -3
- package/dist/sdk/index.js +9 -9
- package/dist/sdk/runner.js +9 -9
- package/dist/sdk/session.js +2 -2
- package/dist/sdk/types.js +1 -1
- package/dist/session/index.js +2 -2
- package/dist/session/src/index.d.ts +1 -1
- package/dist/session/src/index.d.ts.map +1 -1
- package/dist/session/src/mentions.d.ts +11 -0
- package/dist/session/src/mentions.d.ts.map +1 -1
- package/dist/{setup-EVNPECSY.js → setup-VGZTFQ32.js} +5 -5
- package/dist/{setup-EVNPECSY.js.map → setup-VGZTFQ32.js.map} +1 -1
- package/dist/{store-client-4XN7IB3R.js → store-client-XFZFKY3W.js} +6 -6
- package/dist/{store-client-4XN7IB3R.js.map → store-client-XFZFKY3W.js.map} +1 -1
- package/dist/tui/index.js +9 -9
- package/dist/types/index.js +1 -1
- package/dist/types/src/mentions.d.ts +12 -0
- package/dist/types/src/mentions.d.ts.map +1 -1
- package/dist/workspace-plugin/adapters/mcp.js +1 -1
- package/dist/workspace-plugin/adapters/omp.js +3 -3
- package/dist/workspace-plugin/index.js +1 -1
- package/package.json +1 -1
- package/dist/asset-feeds-3PSV57NT.js.map +0 -1
- package/dist/chunk-3HUUP3JC.js.map +0 -1
- package/dist/chunk-3K2CYDBT.js.map +0 -1
- package/dist/chunk-GJI6FZ56.js.map +0 -1
- package/dist/chunk-HVCZLD5Z.js.map +0 -1
- package/dist/chunk-M54RYUXY.js.map +0 -1
- package/dist/chunk-N4FSBCLV.js.map +0 -1
- package/dist/chunk-TDSRLMDB.js.map +0 -1
- package/dist/chunk-WKZ5R4NP.js.map +0 -1
- package/dist/ensure-sources-VQDZB7NT.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,106 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.45.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#207](https://github.com/skaile-ai/workspaces/pull/207) [`14cc088`](https://github.com/skaile-ai/workspaces/commit/14cc088c01563de855b9fb4bd5eb63a14aec4600) Thanks [@mortegro](https://github.com/mortegro)! - CLI: `skaile list` and `skaile asset list` now show the **declared** dependencies
|
|
8
|
+
from `skaile.yaml` (top-level intent), each annotated with a reconciliation state
|
|
9
|
+
— `declared` (not yet resolved), `installed` (locked + materialized on disk),
|
|
10
|
+
`drift` (locked but files missing), or `invalid` (entry isn't a parseable
|
|
11
|
+
canonical ref). Transitive lock-only deps are excluded. The "what's available to
|
|
12
|
+
install" view now lives exclusively in `skaile search`.
|
|
13
|
+
|
|
14
|
+
- `skaile list [kind] [--json] [--global] [--target <agent>]` reads `skaile.yaml`
|
|
15
|
+
`dependencies:` instead of `.skaile/deployed.yaml` and renders a `STATE` column;
|
|
16
|
+
`--json` emits `{ ref, kind, name, state }`.
|
|
17
|
+
- `skaile asset list` is now a synonym for `skaile list` (its old cross-library
|
|
18
|
+
`AssetDefinition` browse — `--library`/`--domain`/`--kind` — is gone; use
|
|
19
|
+
`skaile search`).
|
|
20
|
+
- No `skaile.yaml` → actionable error pointing at `skaile init`; legacy
|
|
21
|
+
`repositories:`/`ai_resources:` keys → parse error pointing at the
|
|
22
|
+
`migrate-skaile-manifest` skill.
|
|
23
|
+
- New public API on `@skaile/workspaces/asset-manager`: `AssetManager.listDeclared`,
|
|
24
|
+
`DeclaredAsset`, `DeclaredState`, `MissingManifestError`. `SKAILE_YAML_DEFAULT` is
|
|
25
|
+
now re-exported from `@skaile/workspaces/core`.
|
|
26
|
+
|
|
27
|
+
- [#200](https://github.com/skaile-ai/workspaces/pull/200) [`22ed138`](https://github.com/skaile-ai/workspaces/commit/22ed13839c0e8430f675f6ea48c486267e63a5b4) Thanks [@mortegro](https://github.com/mortegro)! - feat(cli): skailify — import existing coding-agent skills into a library
|
|
28
|
+
|
|
29
|
+
Add a clean migration path from a Claude Code skill (`~/.claude/skills/`) to a
|
|
30
|
+
skaile library:
|
|
31
|
+
|
|
32
|
+
- **`skaile asset import <name-or-path>`** — resolves a bare skill name from
|
|
33
|
+
`~/.claude/skills/` (or any `SKILL.md` directory by path), normalizes its
|
|
34
|
+
frontmatter to the skaile schema (injects the `metadata:` block with
|
|
35
|
+
`version`/`stage`/`tags`, slugifies a non-canonical name), scaffolds the
|
|
36
|
+
target `--domain` on demand, copies companion files, and auto-wires the
|
|
37
|
+
`skaile.manifest.yaml` entry. The low-level byte mover `asset migrate` is
|
|
38
|
+
unchanged.
|
|
39
|
+
- **`skaile library domain create|list|show`** — first-class domain management.
|
|
40
|
+
`create` scaffolds `<lib>/<domain>/DOMAIN.md` with a publisher slug and marks
|
|
41
|
+
the library domain-structured; a single library is resolved automatically when
|
|
42
|
+
no default is set.
|
|
43
|
+
- New first-party **`skailify`** factory skill that drives the above flow
|
|
44
|
+
conversationally.
|
|
45
|
+
|
|
46
|
+
### Patch Changes
|
|
47
|
+
|
|
48
|
+
- [#210](https://github.com/skaile-ai/workspaces/pull/210) [`f243d11`](https://github.com/skaile-ai/workspaces/commit/f243d1131d1de7c815aaab3b75f189b12d2ad342) Thanks [@peteralbert](https://github.com/peteralbert)! - Coalesce `file_changed` event bursts from bulk git operations. A triage agent
|
|
49
|
+
running `git checkout` / `pull --rebase` / `merge` / `stash pop` on a large repo
|
|
50
|
+
rewrites hundreds-to-thousands of distinct working-tree files; chokidar emitted
|
|
51
|
+
one `file_changed` per file (~170k/day). The existing per-path dedup did not
|
|
52
|
+
help because a bulk checkout touches many _distinct_ paths inside the window.
|
|
53
|
+
|
|
54
|
+
The runner's watch path now feeds events through a per-mount `FileChangedCoalescer`:
|
|
55
|
+
once more than 50 events arrive within ~1s for a mount, the remainder of the
|
|
56
|
+
burst collapses BY DIRECTORY — one representative `file_changed` with a REAL
|
|
57
|
+
path per distinct affected directory, emitted on quiescence. A directory that
|
|
58
|
+
saw a structural change (create/delete) gets a structural representative so the
|
|
59
|
+
frontend refetches its grandparent too. Sub-threshold traffic (interactive
|
|
60
|
+
saves) streams through unchanged.
|
|
61
|
+
|
|
62
|
+
Per-directory real paths (not one empty-path summary) are required because the
|
|
63
|
+
platform consumer is directory-granular: the backend SSE filter only forwards a
|
|
64
|
+
`file_changed` to a user whose open files / expanded folders match the path,
|
|
65
|
+
and the frontend refetches the PARENT directory of the changed path. An
|
|
66
|
+
empty-path summary bypasses the filter and refreshes only the mount root,
|
|
67
|
+
leaving deep expanded folders stale after a bulk checkout — the regression this
|
|
68
|
+
rework fixes. Representatives are capped (256/burst); past the cap the capped
|
|
69
|
+
set is emitted plus a single root-level fallback (logged) so nothing is silently
|
|
70
|
+
dropped. Still a plain `file_changed`, no new event type. Refs
|
|
71
|
+
skaile-ai/platform#972 / [#968](https://github.com/skaile-ai/workspaces/issues/968).
|
|
72
|
+
|
|
73
|
+
## 0.44.0
|
|
74
|
+
|
|
75
|
+
### Minor Changes
|
|
76
|
+
|
|
77
|
+
- [#191](https://github.com/skaile-ai/workspaces/pull/191) [`dc2587d`](https://github.com/skaile-ai/workspaces/commit/dc2587d160183b6aacedacdfad31721356e89c92) Thanks [@P1umPudding](https://github.com/P1umPudding)! - Consolidate re-derivable clones/bytes under a clearly-named `cache/` root at each
|
|
78
|
+
scope and add `skaile cache clean/dir/size`. Source clones unify under
|
|
79
|
+
`~/.skaile/cache/sources` (was split across `~/.skaile/repos` and
|
|
80
|
+
`~/.skaile/sources`); the catalog cache moves to `~/.skaile/cache/catalog`;
|
|
81
|
+
project staging moves to `.skaile/cache/{store,sources}`. Sidecars are renamed to
|
|
82
|
+
`~/.skaile/sidecars` (authored content — never wiped by `cache clean`). Existing
|
|
83
|
+
data is auto-migrated on first run. `SKAILE_CACHE_DIR` now sets the cache root
|
|
84
|
+
(not the repos dir) — see MIGRATION.md.
|
|
85
|
+
|
|
86
|
+
- [#204](https://github.com/skaile-ai/workspaces/pull/204) [`7ed6674`](https://github.com/skaile-ai/workspaces/commit/7ed66741485cb619c6d30ee2ff9b06fde530948a) Thanks [@peteralbert](https://github.com/peteralbert)! - Add an extensible `custom` mention kind to the `Mention` type plus an `isAddressedByKind(mentions, kind)` helper, and teach `isMentioned` to honor custom mentions' `resolved` ids. Backward compatible (additive union member); `parseMentions`/`isAgentAddressed` unchanged.
|
|
87
|
+
|
|
88
|
+
- [#191](https://github.com/skaile-ai/workspaces/pull/191) [`5efb2ae`](https://github.com/skaile-ai/workspaces/commit/5efb2aeb62c2405bcac1e5c911b043fb7b150ba2) Thanks [@P1umPudding](https://github.com/P1umPudding)! - Fix: store-published assets can now be deployed into a project. `skaile add <store-ref>` (and non-locked `skaile install`) fetch a store-resolved asset's bytes from its upstream source at the pinned commit, verify per-file SHA256, stage them under `.skaile/store-cache/`, and deploy the verified bytes into the driver target (`.claude/skills/…`) — reusing the same fetch+verify path as the pointer-only `library.install`. Previously a store asset either reported "Asset not found" (no project `stores:` registered) or crashed the deploy with `ENOENT … /factory-assets/…` because the deploy path tried to read bytes from a local clone that never held them.
|
|
89
|
+
|
|
90
|
+
`add`/`install` now fall back to the global `~/.skaile/config.yaml` `catalog.url` when the project declares no `stores:` (best-effort; offline never regresses missing-dependency reporting), so no manual `skaile.yaml` edit is needed. `mcp-server` and other non-deployable kinds are unchanged. `AssetManagerOptions` gains optional `storeFetcher` / `assetFetcher` / `catalogUrl` seams for network-free testing (additive, non-breaking).
|
|
91
|
+
|
|
92
|
+
### Patch Changes
|
|
93
|
+
|
|
94
|
+
- [#203](https://github.com/skaile-ai/workspaces/pull/203) [`841470f`](https://github.com/skaile-ai/workspaces/commit/841470f6bd1384132c6966980dff6633b51e30ea) Thanks [@Frozen666](https://github.com/Frozen666)! - Auto-recover a poisoned rclone VFS cache. When a remote filesystem mount
|
|
95
|
+
(SharePoint/WebDAV/OneDrive) fails to attach because a prior container was
|
|
96
|
+
SIGKILLed mid-write and left the persistent `--vfs-cache-mode full` cache
|
|
97
|
+
inconsistent (`failed to reload item` / `failed to add virtual dir entry`),
|
|
98
|
+
`RcloneProcessManager.spawn` now quarantines the `vfs`/`vfsMeta` cache
|
|
99
|
+
move-aside into `<cacheDir>/.corrupt-<ISO>` and retries the mount exactly once
|
|
100
|
+
on a clean rebuild from the authoritative remote. The retry is single-shot and
|
|
101
|
+
bounded — a second failure propagates without another reset, so there is no
|
|
102
|
+
reset/respawn loop — and the cache is never hard-deleted.
|
|
103
|
+
|
|
3
104
|
## 0.43.1
|
|
4
105
|
|
|
5
106
|
### Patch Changes
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import './chunk-
|
|
1
|
+
import './chunk-BLGHFVXE.js';
|
|
2
2
|
import './chunk-ZAP2BDHG.js';
|
|
3
|
-
import { factoryAssetRoots } from './chunk-
|
|
4
|
-
import { scanRepo } from './chunk-
|
|
3
|
+
import { factoryAssetRoots } from './chunk-VPXV2Z5E.js';
|
|
4
|
+
import { scanRepo } from './chunk-COSTF7QW.js';
|
|
5
5
|
import './chunk-DZCK7GRW.js';
|
|
6
6
|
import './chunk-6IDBWPK2.js';
|
|
7
7
|
import './chunk-GEEW6SY2.js';
|
|
@@ -16,14 +16,18 @@ import * as path from 'path';
|
|
|
16
16
|
async function libraryAssets() {
|
|
17
17
|
const notes = [];
|
|
18
18
|
try {
|
|
19
|
-
const [{ openLibraryManager }, { skaileHomeDir }] = await Promise.all([
|
|
20
|
-
import('./open-library-
|
|
21
|
-
import('./library/index.js')
|
|
19
|
+
const [{ openLibraryManager }, { skaileHomeDir }, { getGlobalCacheDir }] = await Promise.all([
|
|
20
|
+
import('./open-library-362BZ6OW.js'),
|
|
21
|
+
import('./library/index.js'),
|
|
22
|
+
import('./core/index.js')
|
|
22
23
|
]);
|
|
23
24
|
const { manager, close } = await openLibraryManager();
|
|
24
25
|
try {
|
|
25
|
-
const
|
|
26
|
-
const
|
|
26
|
+
const newRoot = getGlobalCacheDir();
|
|
27
|
+
const legacyRoot = path.join(skaileHomeDir(), "sources");
|
|
28
|
+
const libs = (await manager.listLibraries()).filter(
|
|
29
|
+
(l) => !l.path.startsWith(newRoot) && !l.path.startsWith(legacyRoot)
|
|
30
|
+
);
|
|
27
31
|
const entries = [];
|
|
28
32
|
for (const lib of libs) {
|
|
29
33
|
if (!existsSync(lib.path)) continue;
|
|
@@ -46,7 +50,7 @@ async function libraryAssets() {
|
|
|
46
50
|
async function storeAssets(projectDir) {
|
|
47
51
|
const notes = [];
|
|
48
52
|
try {
|
|
49
|
-
const { resolveCatalogSource } = await import('./open-library-
|
|
53
|
+
const { resolveCatalogSource } = await import('./open-library-362BZ6OW.js');
|
|
50
54
|
const { source, close } = await resolveCatalogSource({ projectDir });
|
|
51
55
|
try {
|
|
52
56
|
const assets = await source.listAssets();
|
|
@@ -120,5 +124,5 @@ async function gatherAssetFeeds(am, projectDir) {
|
|
|
120
124
|
}
|
|
121
125
|
|
|
122
126
|
export { gatherAssetFeeds };
|
|
123
|
-
//# sourceMappingURL=asset-feeds-
|
|
124
|
-
//# sourceMappingURL=asset-feeds-
|
|
127
|
+
//# sourceMappingURL=asset-feeds-AOZLZMDV.js.map
|
|
128
|
+
//# sourceMappingURL=asset-feeds-AOZLZMDV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../cli/src/asset-feeds.ts"],"names":[],"mappings":"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","file":"asset-feeds-AOZLZMDV.js","sourcesContent":["/**\n * asset-feeds.ts — gather installable assets from every feed the manage TUI\n * surfaces.\n *\n * Four 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 * - **Factory assets** — the bundled first-party `factory-assets` tree\n * (`factoryAssetRoots()`), scanned from disk. Always present; no network.\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 {\n type AssetKind,\n type CatalogDomain,\n type CatalogEntry,\n factoryAssetRoots,\n scanRepo,\n} 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\" | \"factory\";\n message: string;\n}\n\n/**\n * Which feed an asset came from. This is the top-level grouping axis in the\n * manage TUI (\"where is this skill coming from?\") and is intentionally distinct\n * from `publisher` (asset-intrinsic identity): the same publisher can legitimately\n * appear under more than one origin (e.g. a github repo you added as a `source`\n * that is also listed in the remote `store`).\n */\nexport type AssetOrigin = \"source\" | \"library\" | \"factory\" | \"store\";\n\n/** A catalog entry tagged with the feed it was gathered from. */\nexport interface OriginEntry {\n origin: AssetOrigin;\n entry: CatalogEntry;\n}\n\nexport interface AssetFeedResult {\n entries: OriginEntry[];\n /**\n * Display-only domain metadata, keyed (by the consumer) on `slug`. Populated\n * from the store's `catalog.listDomains` when the connected catalog source\n * exposes it; empty otherwise. The manage TUI joins `entry.domainSlug` → a\n * domain for grouping headers, descriptions, and relation badges.\n */\n domains: CatalogDomain[];\n notes: FeedNote[];\n}\n\n/**\n * Pull assets from local libraries (the authoring places under\n * `~/.skaile/libraries/<name>/`, not the `~/.skaile/cache/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 }, { getGlobalCacheDir }] = await Promise.all([\n import(\"./open-library.ts\"),\n import(\"@skaile/workspaces/library\"),\n import(\"@skaile/workspaces/core\"),\n ]);\n const { manager, close } = await openLibraryManager();\n try {\n // Authoring libraries are the rows that are NOT source clones. index.db\n // rows predating the cache migration still carry the legacy\n // ~/.skaile/sources path, so exclude both roots.\n const newRoot = getGlobalCacheDir();\n const legacyRoot = path.join(skaileHomeDir(), \"sources\");\n const libs = (await manager.listLibraries()).filter(\n (l) => !l.path.startsWith(newRoot) && !l.path.startsWith(legacyRoot),\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`, carrying `publisher`, `repo`, and\n * `category` straight through and using `source = \"store://<id>\"`; per-file\n * `source` paths are not available for remote assets so the canonical ref is\n * a stable placeholder.\n */\nasync function storeAssets(projectDir: string): Promise<{\n entries: CatalogEntry[];\n domains: CatalogDomain[];\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 publisher: a.publisher,\n repo: a.repo,\n domainSlug: a.domainSlug,\n category: a.category,\n version: a.version,\n requires: [],\n dependencies: [],\n }));\n // Domains are optional on the catalog source — only the store backend\n // (post Part 4 `catalog.listDomains`) exposes them. Duck-type the call so\n // older sources and the local catalog degrade to no domains, not an error.\n const domains = await loadDomains(source);\n return { entries, domains, 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: [], domains: [], notes };\n }\n}\n\n/** Optional `listDomains` capability — returns `[]` when the source lacks it. */\nasync function loadDomains(source: unknown): Promise<CatalogDomain[]> {\n const fn = (source as { listDomains?: () => Promise<CatalogDomain[]> }).listDomains;\n if (typeof fn !== \"function\") return [];\n const domains = await fn.call(source);\n return Array.isArray(domains) ? domains : [];\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 */\nfunction sourceAssets(am: { search: () => CatalogEntry[] }): CatalogEntry[] {\n return am.search();\n}\n\n/**\n * Factory-asset feed: scan the bundled first-party `factory-assets` tree(s)\n * resolved by `factoryAssetRoots()` (the `SKAILE_FACTORY_ASSETS_DIR` override\n * layer ahead of the bundled tree). Synchronous, no network — the entries are\n * the built-in skills / connectors / bundles that ship with `@skaile/workspaces`.\n * `factoryAssetRoots()` already dedupes, so the env override pointing at the\n * bundled dir collapses to one root.\n */\nfunction factoryAssets(): { entries: CatalogEntry[]; notes: FeedNote[] } {\n const notes: FeedNote[] = [];\n try {\n const entries: CatalogEntry[] = [];\n for (const root of factoryAssetRoots()) {\n for (const e of scanRepo(root, \"skaile-factory\")) entries.push(e);\n }\n return { entries, notes };\n } catch (err) {\n notes.push({\n feed: \"factory\",\n message: err instanceof Error ? err.message : String(err),\n });\n return { entries: [], notes };\n }\n}\n\n/** Tag a flat entry list with a single origin. */\nfunction tag(origin: AssetOrigin, entries: CatalogEntry[]): OriginEntry[] {\n return entries.map((entry) => ({ origin, entry }));\n}\n\n/**\n * Run all 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. The factory\n * scan is local + synchronous, so it runs inline.\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 const factory = factoryAssets();\n return {\n entries: [\n ...tag(\"source\", sourceAssets(am)),\n ...tag(\"library\", libs.entries),\n ...tag(\"factory\", factory.entries),\n ...tag(\"store\", store.entries),\n ],\n domains: store.domains,\n notes: [...libs.notes, ...store.notes, ...factory.notes],\n };\n}\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export { AssetManager, parseCanonicalLockKey } from '../chunk-
|
|
2
|
-
export { createScaffold, deployAll, installAgent, removeAsset } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { AssetManager, MissingManifestError, NON_DEPLOYABLE_KINDS, parseCanonicalLockKey } from '../chunk-L6BKSTAX.js';
|
|
2
|
+
export { createScaffold, deployAll, installAgent, removeAsset } from '../chunk-CVWA4RIK.js';
|
|
3
|
+
import '../chunk-BLGHFVXE.js';
|
|
4
4
|
import '../chunk-ZAP2BDHG.js';
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-VPXV2Z5E.js';
|
|
6
|
+
import '../chunk-COSTF7QW.js';
|
|
7
7
|
import '../chunk-DZCK7GRW.js';
|
|
8
8
|
import '../chunk-6IDBWPK2.js';
|
|
9
9
|
import '../chunk-GEEW6SY2.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { createScaffold, deployAll, deployAsset, removeAsset } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { createScaffold, deployAll, deployAsset, removeAsset } from '../chunk-CVWA4RIK.js';
|
|
2
|
+
import '../chunk-BLGHFVXE.js';
|
|
3
3
|
import '../chunk-ZAP2BDHG.js';
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-VPXV2Z5E.js';
|
|
5
|
+
import '../chunk-COSTF7QW.js';
|
|
6
6
|
import '../chunk-DZCK7GRW.js';
|
|
7
7
|
import '../chunk-6IDBWPK2.js';
|
|
8
8
|
import '../chunk-GEEW6SY2.js';
|
|
@@ -9,8 +9,16 @@
|
|
|
9
9
|
* const am = new AssetManager({ projectDir: "/path/to/project" })
|
|
10
10
|
* await am.install()
|
|
11
11
|
*/
|
|
12
|
-
import type { CatalogEntry, DriverTarget, LockFile } from "@skaile/workspaces/core";
|
|
12
|
+
import type { CatalogEntry, DriverTarget, LockFile, StoreFetcher } from "@skaile/workspaces/core";
|
|
13
|
+
import type { AssetFetcher } from "@skaile/workspaces/library";
|
|
13
14
|
import type { HistoryEntry } from "./history.js";
|
|
15
|
+
/**
|
|
16
|
+
* Asset kinds that are never deployed to a driver target as files — bundles
|
|
17
|
+
* resolve to their members, mcp-servers are wired at session startup, and the
|
|
18
|
+
* mixin kinds are resolved at session creation. Store bytes are not staged for
|
|
19
|
+
* these (mirrors the skip set in `deployAll`).
|
|
20
|
+
*/
|
|
21
|
+
export declare const NON_DEPLOYABLE_KINDS: Set<string>;
|
|
14
22
|
/**
|
|
15
23
|
* Parse a canonical lock key (`<kind>:@<publisher>/<name>#<version>`) into its
|
|
16
24
|
* parts. The lock key is now a canonical asset ref, so this delegates to the one
|
|
@@ -26,6 +34,32 @@ export declare function parseCanonicalLockKey(key: string): {
|
|
|
26
34
|
name?: string;
|
|
27
35
|
version?: string;
|
|
28
36
|
};
|
|
37
|
+
/**
|
|
38
|
+
* Reconciliation state of a declared dependency relative to the lock + disk.
|
|
39
|
+
* `invalid` flags a `dependencies:` entry that isn't a parseable canonical ref —
|
|
40
|
+
* surfaced (not silently dropped) so a `skaile.yaml` typo is visible.
|
|
41
|
+
*/
|
|
42
|
+
export type DeclaredState = "declared" | "installed" | "drift" | "invalid";
|
|
43
|
+
/**
|
|
44
|
+
* A top-level dependency declared in `skaile.yaml`, annotated with its
|
|
45
|
+
* reconciliation {@link DeclaredState}. Transitive (lock-only) deps are never
|
|
46
|
+
* included — {@link AssetManager.listDeclared} walks the declared set only.
|
|
47
|
+
*/
|
|
48
|
+
export interface DeclaredAsset {
|
|
49
|
+
/** The canonical declared ref exactly as written in `skaile.yaml`. */
|
|
50
|
+
ref: string;
|
|
51
|
+
kind: string;
|
|
52
|
+
name: string;
|
|
53
|
+
state: DeclaredState;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Thrown by {@link AssetManager.listDeclared} when the project has no
|
|
57
|
+
* `skaile.yaml`. The CLI maps this to a `skaile init` hint.
|
|
58
|
+
*/
|
|
59
|
+
export declare class MissingManifestError extends Error {
|
|
60
|
+
readonly projectDir: string;
|
|
61
|
+
constructor(projectDir: string);
|
|
62
|
+
}
|
|
29
63
|
export type { HistoryEntry } from "./history.js";
|
|
30
64
|
export { appendHistory, clearHistory, getRecentHistory, loadHistory, } from "./history.js";
|
|
31
65
|
export type { DeployOptions } from "./installer.js";
|
|
@@ -197,6 +231,24 @@ export interface AssetManagerOptions {
|
|
|
197
231
|
* project workspace. Skips `skaile.yaml` dependency updates.
|
|
198
232
|
*/
|
|
199
233
|
global?: boolean;
|
|
234
|
+
/**
|
|
235
|
+
* Catalog read-protocol fetcher used to resolve store-published assets. When
|
|
236
|
+
* omitted, one is built per call from the configured stores
|
|
237
|
+
* (`RemoteCatalogSource`). Injected mainly by tests to stay network-free.
|
|
238
|
+
*/
|
|
239
|
+
storeFetcher?: StoreFetcher;
|
|
240
|
+
/**
|
|
241
|
+
* Byte fetcher used to fetch a store asset's files at its pinned commit before
|
|
242
|
+
* deploy. When omitted, the production GitHub fetcher is used. Injected by
|
|
243
|
+
* tests to stay network-free.
|
|
244
|
+
*/
|
|
245
|
+
assetFetcher?: AssetFetcher;
|
|
246
|
+
/**
|
|
247
|
+
* Overrides the global `catalog.url` used as a store fallback when the project
|
|
248
|
+
* declares no `stores:`. Pass `""` to disable the fallback entirely. When
|
|
249
|
+
* omitted, the URL is read from `~/.skaile/config.yaml` (`resolveConfig`).
|
|
250
|
+
*/
|
|
251
|
+
catalogUrl?: string;
|
|
200
252
|
}
|
|
201
253
|
/**
|
|
202
254
|
* Programmatic API for managing AI assets in a Skaile workspace.
|
|
@@ -232,8 +284,24 @@ export declare class AssetManager {
|
|
|
232
284
|
readonly driverTarget: DriverTarget;
|
|
233
285
|
/** Whether this instance operates in global-install mode. */
|
|
234
286
|
readonly global: boolean;
|
|
287
|
+
/** Injected catalog fetcher (tests / custom); falls back to a built one. */
|
|
288
|
+
private readonly injectedStoreFetcher?;
|
|
289
|
+
/** Injected byte fetcher for store staging; falls back to GitHub. */
|
|
290
|
+
private readonly injectedAssetFetcher?;
|
|
291
|
+
/** Injected global catalog URL override for the no-project-store fallback. */
|
|
292
|
+
private readonly catalogUrlOverride?;
|
|
235
293
|
constructor(opts: AssetManagerOptions);
|
|
294
|
+
private get storeCacheDir();
|
|
236
295
|
private get reposDir();
|
|
296
|
+
/**
|
|
297
|
+
* Project-scoped cache dirs rooted at `.skaile/cache/` (`store`, `sources`)
|
|
298
|
+
* relative to `projectDir`. Reading is a side effect: it triggers lazy
|
|
299
|
+
* migration of the legacy `.skaile/{store-cache,repos}` dirs.
|
|
300
|
+
*/
|
|
301
|
+
get projectCacheDirs(): {
|
|
302
|
+
store: string;
|
|
303
|
+
sources: string;
|
|
304
|
+
};
|
|
237
305
|
private get lockPath();
|
|
238
306
|
private get patchDir();
|
|
239
307
|
private get deployOpts();
|
|
@@ -247,6 +315,62 @@ export declare class AssetManager {
|
|
|
247
315
|
* clone slug so `deployAll`'s repositories lookup resolves local-vs-remote.
|
|
248
316
|
*/
|
|
249
317
|
private candidateToCatalogEntry;
|
|
318
|
+
/** A candidate's stable identity key (`<publisher>/<kind>:<name>@<version>`). */
|
|
319
|
+
private candidateKey;
|
|
320
|
+
/**
|
|
321
|
+
* Resolve `deps`, falling back to the global `catalog.url` store when the
|
|
322
|
+
* project declares no store and the first pass leaves something missing.
|
|
323
|
+
*
|
|
324
|
+
* The first pass uses the project stores only, so locally-resolvable refs
|
|
325
|
+
* never trigger a network probe. The fallback retry is best-effort: any error
|
|
326
|
+
* (offline, store down) keeps the first pass's result rather than regressing.
|
|
327
|
+
*/
|
|
328
|
+
private resolveWithStores;
|
|
329
|
+
/** The catalog fetcher to use: an injected one, else built from `stores`. */
|
|
330
|
+
private storeFetcherFor;
|
|
331
|
+
/**
|
|
332
|
+
* The global `catalog.url` as a single-store fallback, or `[]` when no
|
|
333
|
+
* project store should be synthesized — `local` sentinel, already-declared,
|
|
334
|
+
* or no URL. Honours an explicit `catalogUrl` injection (`""` disables it).
|
|
335
|
+
*/
|
|
336
|
+
private globalStoreFallback;
|
|
337
|
+
/**
|
|
338
|
+
* Build deployable catalog entries from resolved candidates. Store-resolved
|
|
339
|
+
* candidates (no local clone bytes) are fetched + SHA-verified into the
|
|
340
|
+
* project store-cache first, then their entry points at the staged bytes so
|
|
341
|
+
* the existing copy-deploy path works. Source-backed candidates keep the
|
|
342
|
+
* clone-relative entry.
|
|
343
|
+
*/
|
|
344
|
+
private buildCatalogEntries;
|
|
345
|
+
/**
|
|
346
|
+
* Fetch + SHA-verify the bytes of every store-resolved deployable candidate
|
|
347
|
+
* into `.skaile/cache/store/`, reusing the same verified-fetch path the
|
|
348
|
+
* pointer-only `library.install` uses (`installFromManifest` flat mode).
|
|
349
|
+
*
|
|
350
|
+
* @returns Map of candidate key → staged primary-manifest path.
|
|
351
|
+
*/
|
|
352
|
+
private stageStoreAssets;
|
|
353
|
+
/** Repo-relative path of a candidate's primary manifest (un-stripped). */
|
|
354
|
+
private primaryManifestRel;
|
|
355
|
+
/**
|
|
356
|
+
* The primary-manifest path relative to a staged asset dir. Takes the kind's
|
|
357
|
+
* manifest (e.g. `SKILL.md`), then strips the same common-dir prefix
|
|
358
|
+
* `installFromManifest` flat mode removed on write.
|
|
359
|
+
*/
|
|
360
|
+
private stagedManifestRel;
|
|
361
|
+
/**
|
|
362
|
+
* `true` when a candidate's primary manifest is present on a local source
|
|
363
|
+
* clone — its `sourceUrl` matches a registered source AND the manifest file
|
|
364
|
+
* exists on disk at the expected path. A URL match alone is not enough: a
|
|
365
|
+
* store can pin a different commit (or a subtree not bundled) of a repo that
|
|
366
|
+
* is also a registered source, in which case the bytes must be fetched from
|
|
367
|
+
* the store rather than read from the clone. (Only the primary manifest is
|
|
368
|
+
* probed — a partially-cloned source is deployed as-is, matching the existing
|
|
369
|
+
* clone-deploy path.)
|
|
370
|
+
*/
|
|
371
|
+
private candidateHasLocalBytes;
|
|
372
|
+
/** Build a copy-deploy catalog entry pointing at staged store bytes. */
|
|
373
|
+
private stagedCandidateToEntry;
|
|
250
374
|
/**
|
|
251
375
|
* Install all dependencies declared in `skaile.yaml`.
|
|
252
376
|
*
|
|
@@ -334,6 +458,27 @@ export declare class AssetManager {
|
|
|
334
458
|
* @returns Shallow {@link CatalogEntry} objects (description and version will be empty).
|
|
335
459
|
*/
|
|
336
460
|
listDeployed(kind?: string): CatalogEntry[];
|
|
461
|
+
/**
|
|
462
|
+
* List the **declared** top-level dependencies from `skaile.yaml`, each tagged
|
|
463
|
+
* with a reconciliation {@link DeclaredState}:
|
|
464
|
+
*
|
|
465
|
+
* - `declared` — in `skaile.yaml`, not yet resolved into the lock.
|
|
466
|
+
* - `installed` — declared + locked, and (for deployable kinds) materialized on
|
|
467
|
+
* disk. Non-deployable kinds ({@link NON_DEPLOYABLE_KINDS}) count as installed
|
|
468
|
+
* once locked — they are wired at session start, never written to the target dir.
|
|
469
|
+
* - `drift` — declared + locked but the deployed files are missing on disk.
|
|
470
|
+
* - `invalid` — the `dependencies:` entry isn't a parseable canonical ref. Only
|
|
471
|
+
* surfaced in the unfiltered listing (a `kind` filter can't classify it).
|
|
472
|
+
*
|
|
473
|
+
* Transitive (lock-only) deps are excluded by construction — only the declared
|
|
474
|
+
* set is walked, so a lock entry with no matching `dependencies:` ref never shows.
|
|
475
|
+
*
|
|
476
|
+
* @param kind - Filter by asset kind. Omit to return all kinds.
|
|
477
|
+
* @returns One {@link DeclaredAsset} per declared dep (after the optional kind filter).
|
|
478
|
+
* @throws {MissingManifestError} when the project has no `skaile.yaml`.
|
|
479
|
+
* @throws {Error} with a `migrate-skaile-manifest` hint on legacy `repositories:` / `ai_resources:` keys.
|
|
480
|
+
*/
|
|
481
|
+
listDeclared(kind?: string): DeclaredAsset[];
|
|
337
482
|
/**
|
|
338
483
|
* Build an aggregated workspace overview with domain grouping and sync status.
|
|
339
484
|
*
|
|
@@ -466,8 +611,8 @@ export declare class AssetManager {
|
|
|
466
611
|
* Remove deployed assets tracked by the lock file and report unmanaged ones.
|
|
467
612
|
*
|
|
468
613
|
* With `opts.all`, also deletes `.skaile/history.yaml`, `.skaile/patches/`,
|
|
469
|
-
* `.skaile/
|
|
470
|
-
* to a pre-install state.
|
|
614
|
+
* `.skaile/cache/sources/`, and `skaile.lock.yaml` — effectively resetting the
|
|
615
|
+
* workspace to a pre-install state.
|
|
471
616
|
*
|
|
472
617
|
* @param opts - Optional cleanup options.
|
|
473
618
|
* @param opts.all - When `true`, remove all Skaile-managed state in addition to deployed assets.
|
|
@@ -494,7 +639,7 @@ export declare class AssetManager {
|
|
|
494
639
|
* keyed by <kind>:<name>; lock canonical refs are mapped to that shape.
|
|
495
640
|
*/
|
|
496
641
|
private collectUnmanagedAssets;
|
|
497
|
-
/** Delete all Skaile-managed state: history file, patches/,
|
|
642
|
+
/** Delete all Skaile-managed state: history file, patches/, cache/sources/, lock. */
|
|
498
643
|
private removeAllManagedState;
|
|
499
644
|
/** Add a dependency ref to skaile.yaml if not already present. */
|
|
500
645
|
private addDependencyToConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../asset-manager/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../asset-manager/src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAaH,OAAO,KAAK,EAEV,YAAY,EACZ,YAAY,EACZ,QAAQ,EAQR,YAAY,EACb,MAAM,yBAAyB,CAAC;AA8BjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAI/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AA6DjD;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,aAM/B,CAAC;AA4EH;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAYA;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;AAE3E;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,sEAAsE;IACtE,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,KAAK;IACjC,QAAQ,CAAC,UAAU,EAAE,MAAM;gBAAlB,UAAU,EAAE,MAAM;CAIxC;AAED,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EACL,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,WAAW,GACZ,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxE,YAAY,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAOxD;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,kHAAkH;IAClH,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACpC,qDAAqD;IACrD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,+DAA+D;IAC/D,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,oDAAoD;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACpC,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IACf,2DAA2D;IAC3D,QAAQ,EAAE,OAAO,CAAC;IAClB,8CAA8C;IAC9C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,kEAAkE;IAClE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,uFAAuF;IACvF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,yDAAyD;IACzD,WAAW,EAAE,OAAO,CAAC;IACrB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,gEAAgE;IAChE,GAAG,EAAE,MAAM,CAAC;IACZ,qDAAqD;IACrD,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,uGAAuG;IACvG,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,MAAM,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB;;;;;;;OAOG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,gGAAgG;IAChG,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IACvC,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,kDAAkD;IAClD,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAID;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,oFAAoF;IACpF,UAAU,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;OAIG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAwDD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,YAAY;IACvB,oDAAoD;IACpD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,oEAAoE;IACpE,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,6DAA6D;IAC7D,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAe;IACrD,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAe;IACrD,8EAA8E;IAC9E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAS;gBAEjC,IAAI,EAAE,mBAAmB;IASrC,OAAO,KAAK,aAAa,GAKxB;IAED,OAAO,KAAK,QAAQ,GAKnB;IAED;;;;OAIG;IACH,IAAI,gBAAgB,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAEzD;IAED,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,CAAC,UAAU;IAkDlB,2EAA2E;IAC3E,OAAO,CAAC,WAAW;IAgBnB;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAmD/B,iFAAiF;IACjF,OAAO,CAAC,YAAY;IAIpB;;;;;;;OAOG;YACW,iBAAiB;IAqC/B,6EAA6E;IAC7E,OAAO,CAAC,eAAe;IAIvB;;;;OAIG;YACW,mBAAmB;IAejC;;;;;;OAMG;YACW,mBAAmB;IAgBjC;;;;;;OAMG;YACW,gBAAgB;IA8C9B,0EAA0E;IAC1E,OAAO,CAAC,kBAAkB;IAO1B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;;;;;;;;OASG;IACH,OAAO,CAAC,sBAAsB;IAe9B,wEAAwE;IACxE,OAAO,CAAC,sBAAsB;IAuB9B;;;;;;;;;;OAUG;IACG,OAAO,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAwClE;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAoB9B,+EAA+E;IAC/E,OAAO,CAAC,oBAAoB;IAmB5B,6EAA6E;IAC7E,OAAO,CAAC,WAAW;IAQnB,gFAAgF;IAChF,OAAO,CAAC,iBAAiB;IA6BzB;;;;;;;;OAQG;YACW,uBAAuB;IAiCrC,OAAO,CAAC,aAAa;IA8DrB;;;;;;;;;OASG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IA2CzC;;;;;OAKG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAmB5B;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE;IAoBrD;;;;;OAKG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAqBtC;;;;;;;;OAQG;IACH,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE;IA6C3C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,YAAY,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE;IAqD5C;;;;;;;OAOG;IACH,QAAQ,IAAI,cAAc;IA4B1B,+EAA+E;IAC/E,OAAO,CAAC,iBAAiB;IAiBzB;;;;;;OAMG;IACH,IAAI,IAAI,cAAc;IAYtB;;;;;;OAMG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAS1B;;;;;;;OAOG;IACH,QAAQ,IAAI,aAAa,EAAE;IA4B3B;;;;;;;;;OASG;IACH,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAiBhC;;;;;;;OAOG;IACG,IAAI,IAAI,OAAO,CAAC,QAAQ,CAAC;IAwB/B;;;;;;;;;OASG;IACH,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAM1B;;;;;;;;;OASG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAmBhC;;;;;;;;OAQG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAsB9B;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAc9B;;;;;;;;OAQG;IACH,MAAM,IAAI,QAAQ,EAAE;IAmCpB;;;;;;;;OAQG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAalF;;;;;OAKG;IACH,OAAO,CAAC,KAAK,SAAK,GAAG,YAAY,EAAE;IAInC;;OAEG;IACH,YAAY,IAAI,IAAI;IAMpB;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,IAAI,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG;QAC/B,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,EAAE,KAAK,CAAC;YAAE,GAAG,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAChD,SAAS,EAAE,MAAM,EAAE,CAAC;KACrB;IAYD;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IA2BjC;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAoB9B,qFAAqF;IACrF,OAAO,CAAC,qBAAqB;IAyB7B,kEAAkE;IAClE,OAAO,CAAC,qBAAqB;IAY7B,gDAAgD;IAChD,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,cAAc;CAqBvB;AAID,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACzF,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,aAAa,EACb,0BAA0B,EAC1B,WAAW,GACZ,MAAM,gBAAgB,CAAC;AAIxB,YAAY,EACV,UAAU,EACV,YAAY,EACZ,WAAW,EACX,eAAe,EACf,UAAU,GACX,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { resolveSkWorkspaceConfig } from './chunk-
|
|
1
|
+
import { resolveSkWorkspaceConfig } from './chunk-COSTF7QW.js';
|
|
2
2
|
import { createHash } from 'crypto';
|
|
3
3
|
import fs, { writeFileSync, existsSync, readFileSync, mkdirSync, cpSync, readdirSync } from 'fs';
|
|
4
4
|
import path, { join, dirname, basename } from 'path';
|
|
@@ -818,5 +818,5 @@ var WorkspaceYamlEditor = class _WorkspaceYamlEditor {
|
|
|
818
818
|
};
|
|
819
819
|
|
|
820
820
|
export { ALL_PROVIDERS, ManifestYamlEditor, SETTINGS_DEFAULTS, WorkspaceYamlEditor, applyPatch, buildLockFile, computeHash, detectEnvApiKeys, extractForPatch, generatePatch, globalSettingsPath, listPatches, loadSettings, mapLegacyFields, maskApiKey, migrateSettings, portableSpawn, portableSpawnSync, projectSettingsPath, providerEnvKey, readLock, readPatch, readPluginsLockSlice, resolveAllKeys, resolveApiKey, resolveSettings, savePatch, saveSettings, verifyLock, walkForSettings, writeLock, writePluginsLockSlice };
|
|
821
|
-
//# sourceMappingURL=chunk-
|
|
822
|
-
//# sourceMappingURL=chunk-
|
|
821
|
+
//# sourceMappingURL=chunk-BLGHFVXE.js.map
|
|
822
|
+
//# sourceMappingURL=chunk-BLGHFVXE.js.map
|