@skaile/workspaces 5.3.0 → 5.5.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 +50 -0
- package/README.md +8 -1
- package/dist/{asset-feeds-VIZXYDAO.js → asset-feeds-KTFUB7EX.js} +7 -7
- package/dist/{asset-feeds-VIZXYDAO.js.map → asset-feeds-KTFUB7EX.js.map} +1 -1
- package/dist/asset-manager/catalog-deployer.js +3 -3
- package/dist/asset-manager/index.js +6 -6
- package/dist/asset-manager/installer.js +4 -4
- package/dist/asset-manager/src/index.d.ts +19 -0
- package/dist/asset-manager/src/index.d.ts.map +1 -1
- package/dist/asset-manager/src/installer.d.ts +7 -0
- package/dist/asset-manager/src/installer.d.ts.map +1 -1
- package/dist/bridge/drivers/claude-sdk.js +5 -5
- package/dist/bridge/drivers/codex.js +5 -5
- package/dist/bridge/drivers/continue.js +6 -6
- package/dist/bridge/drivers/echo.js +1 -1
- package/dist/bridge/drivers/gemini.js +5 -5
- package/dist/bridge/drivers/goose.js +6 -6
- package/dist/bridge/drivers/omp.js +2 -2
- package/dist/bridge/drivers/opencode.js +6 -6
- package/dist/bridge/drivers/qwen.js +5 -5
- package/dist/bridge/index.js +6 -6
- package/dist/{chunk-ZCSFGGLG.js → chunk-2D2P7HSR.js} +4 -4
- package/dist/{chunk-ZCSFGGLG.js.map → chunk-2D2P7HSR.js.map} +1 -1
- package/dist/{chunk-DECPI7DN.js → chunk-3665M43C.js} +5 -5
- package/dist/{chunk-DECPI7DN.js.map → chunk-3665M43C.js.map} +1 -1
- package/dist/{chunk-6GBQND2F.js → chunk-3JHFFIQ6.js} +4 -4
- package/dist/{chunk-6GBQND2F.js.map → chunk-3JHFFIQ6.js.map} +1 -1
- package/dist/{chunk-VLEWVR44.js → chunk-5Y3L7XWH.js} +10 -10
- package/dist/{chunk-VLEWVR44.js.map → chunk-5Y3L7XWH.js.map} +1 -1
- package/dist/{chunk-K2JVODQD.js → chunk-75EX5GY4.js} +5 -5
- package/dist/{chunk-K2JVODQD.js.map → chunk-75EX5GY4.js.map} +1 -1
- package/dist/{chunk-3ZVSINEV.js → chunk-AC2N5BRP.js} +44 -12
- package/dist/chunk-AC2N5BRP.js.map +1 -0
- package/dist/{chunk-OMD4TAJX.js → chunk-C4GF7RSQ.js} +3 -3
- package/dist/{chunk-OMD4TAJX.js.map → chunk-C4GF7RSQ.js.map} +1 -1
- package/dist/{chunk-QHIMMBJO.js → chunk-CODXK5L5.js} +4 -4
- package/dist/{chunk-QHIMMBJO.js.map → chunk-CODXK5L5.js.map} +1 -1
- package/dist/{chunk-LM5XEFNS.js → chunk-DPMKI26Y.js} +3 -3
- package/dist/{chunk-LM5XEFNS.js.map → chunk-DPMKI26Y.js.map} +1 -1
- package/dist/{chunk-YXNYBUQY.js → chunk-EJYZ3MKJ.js} +4 -4
- package/dist/{chunk-YXNYBUQY.js.map → chunk-EJYZ3MKJ.js.map} +1 -1
- package/dist/chunk-ES2FXWQ4.js +22 -0
- package/dist/chunk-ES2FXWQ4.js.map +1 -0
- package/dist/{chunk-D63AJVBW.js → chunk-G2O2AARG.js} +13 -13
- package/dist/{chunk-D63AJVBW.js.map → chunk-G2O2AARG.js.map} +1 -1
- package/dist/{chunk-FXN4PLRO.js → chunk-G474PBUQ.js} +3 -3
- package/dist/{chunk-FXN4PLRO.js.map → chunk-G474PBUQ.js.map} +1 -1
- package/dist/{chunk-7L4WFH3Y.js → chunk-JBPG5KQC.js} +3 -3
- package/dist/{chunk-7L4WFH3Y.js.map → chunk-JBPG5KQC.js.map} +1 -1
- package/dist/{chunk-A223FDDC.js → chunk-K2NUT3HO.js} +6 -6
- package/dist/{chunk-A223FDDC.js.map → chunk-K2NUT3HO.js.map} +1 -1
- package/dist/{chunk-ERCSHLTF.js → chunk-LCULZ4ED.js} +3 -3
- package/dist/{chunk-ERCSHLTF.js.map → chunk-LCULZ4ED.js.map} +1 -1
- package/dist/{chunk-FZGL7Z52.js → chunk-LFEGIZTW.js} +2 -2
- package/dist/{chunk-FZGL7Z52.js.map → chunk-LFEGIZTW.js.map} +1 -1
- package/dist/{chunk-WGNFDLHT.js → chunk-MMC24L2W.js} +84 -20
- package/dist/chunk-MMC24L2W.js.map +1 -0
- package/dist/{chunk-ZDMGMWK6.js → chunk-N3Y43LMZ.js} +30 -21
- package/dist/chunk-N3Y43LMZ.js.map +1 -0
- package/dist/chunk-NESV47MF.js +20 -0
- package/dist/chunk-NESV47MF.js.map +1 -0
- package/dist/{chunk-KBAE7PU7.js → chunk-ORUHADS6.js} +9 -6
- package/dist/chunk-ORUHADS6.js.map +1 -0
- package/dist/{chunk-TR7KFBIO.js → chunk-P6KFWTGP.js} +5 -5
- package/dist/{chunk-TR7KFBIO.js.map → chunk-P6KFWTGP.js.map} +1 -1
- package/dist/{chunk-WGN7Z36G.js → chunk-R4G7XI7A.js} +18 -4
- package/dist/chunk-R4G7XI7A.js.map +1 -0
- package/dist/{chunk-YTJZQ4HY.js → chunk-SNVOASTL.js} +3 -3
- package/dist/{chunk-YTJZQ4HY.js.map → chunk-SNVOASTL.js.map} +1 -1
- package/dist/{chunk-AWGQVAC5.js → chunk-UFS3FEBA.js} +3 -3
- package/dist/{chunk-AWGQVAC5.js.map → chunk-UFS3FEBA.js.map} +1 -1
- package/dist/{chunk-OOKFZW6H.js → chunk-UHLBDAJR.js} +7 -7
- package/dist/{chunk-OOKFZW6H.js.map → chunk-UHLBDAJR.js.map} +1 -1
- package/dist/{chunk-FTYM4VRZ.js → chunk-V7VDSFPS.js} +2 -2
- package/dist/{chunk-FTYM4VRZ.js.map → chunk-V7VDSFPS.js.map} +1 -1
- package/dist/{chunk-BUZ3K2PT.js → chunk-WHSQSVN2.js} +2 -2
- package/dist/{chunk-BUZ3K2PT.js.map → chunk-WHSQSVN2.js.map} +1 -1
- package/dist/{chunk-CZ35I4RK.js → chunk-X4GO3GJZ.js} +3 -3
- package/dist/{chunk-CZ35I4RK.js.map → chunk-X4GO3GJZ.js.map} +1 -1
- package/dist/{chunk-4257Q2LH.js → chunk-XBM5ND55.js} +6 -6
- package/dist/{chunk-4257Q2LH.js.map → chunk-XBM5ND55.js.map} +1 -1
- package/dist/{chunk-TVFSA5IQ.js → chunk-Y4QWHIHB.js} +4 -4
- package/dist/{chunk-TVFSA5IQ.js.map → chunk-Y4QWHIHB.js.map} +1 -1
- package/dist/{chunk-4SSKKFDF.js → chunk-YK7WJSTD.js} +3 -3
- package/dist/{chunk-4SSKKFDF.js.map → chunk-YK7WJSTD.js.map} +1 -1
- package/dist/cli/index.js +377 -176
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/src/commands/asset-cmd.d.ts.map +1 -1
- package/dist/cli/src/commands/catalog.d.ts +33 -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/library-index.d.ts +14 -0
- package/dist/cli/src/commands/library-index.d.ts.map +1 -1
- package/dist/cli/src/commands/library-publish.d.ts.map +1 -1
- package/dist/cli/src/commands/npx.d.ts.map +1 -1
- package/dist/cli/src/commands/project.d.ts.map +1 -1
- package/dist/cli/src/commands/update.d.ts.map +1 -1
- package/dist/cli/src/commands/validate.d.ts.map +1 -1
- package/dist/cli/src/helpers.d.ts +10 -0
- package/dist/cli/src/helpers.d.ts.map +1 -1
- package/dist/cli/src/setup.d.ts.map +1 -1
- package/dist/cli/src/skill-checks.d.ts +21 -0
- package/dist/cli/src/skill-checks.d.ts.map +1 -0
- package/dist/cli/src/spinner.d.ts +24 -0
- package/dist/cli/src/spinner.d.ts.map +1 -0
- package/dist/connectors/config.js +2 -2
- package/dist/connectors/index.js +9 -9
- package/dist/{connectors-Z2FUGAJU.js → connectors-MPYCSQNG.js} +12 -12
- package/dist/{connectors-Z2FUGAJU.js.map → connectors-MPYCSQNG.js.map} +1 -1
- package/dist/core/index.js +3 -3
- package/dist/core/runtime-assets.js +2 -2
- package/dist/core/src/repo-manager.d.ts +7 -0
- package/dist/core/src/repo-manager.d.ts.map +1 -1
- package/dist/core/workspace-config.js +1 -1
- package/dist/deploy/index.js +3 -3
- package/dist/{ensure-sources-3IH5XHAP.js → ensure-sources-QFRA46DJ.js} +9 -9
- package/dist/{ensure-sources-3IH5XHAP.js.map → ensure-sources-QFRA46DJ.js.map} +1 -1
- package/dist/factory-assets/README.md +2 -2
- package/dist/factory-assets/connectors/box.js +9 -9
- package/dist/factory-assets/connectors/deploy.js +9 -9
- package/dist/factory-assets/connectors/devserver.js +9 -9
- package/dist/factory-assets/connectors/flow/adapter.js +9 -9
- package/dist/factory-assets/connectors/flow/engine.js +4 -4
- package/dist/factory-assets/connectors/flow/run-flow.js +10 -10
- package/dist/factory-assets/connectors/flow.js +9 -9
- package/dist/factory-assets/connectors/git.js +9 -9
- package/dist/factory-assets/connectors/gmail.js +9 -9
- package/dist/factory-assets/connectors/googledrive.js +9 -9
- package/dist/factory-assets/connectors/local.js +9 -9
- package/dist/factory-assets/connectors/mattermost.js +9 -9
- package/dist/factory-assets/connectors/memory.js +9 -9
- package/dist/factory-assets/connectors/minio.js +9 -9
- package/dist/factory-assets/connectors/postgres.js +9 -9
- package/dist/factory-assets/connectors/s3.js +9 -9
- package/dist/factory-assets/connectors/sharepoint.js +9 -9
- package/dist/factory-assets/connectors/sqlite.js +9 -9
- package/dist/factory-assets/connectors/static-server.js +9 -9
- package/dist/factory-assets/connectors/tunnel.js +9 -9
- package/dist/factory-assets/connectors/webdav.js +9 -9
- package/dist/factory-assets/connectors/xstate-store.js +9 -9
- package/dist/factory-assets/connectors/xstate.js +9 -9
- package/dist/factory-assets/skills/authoring-skaile-assets/SKILL.md +17 -15
- package/dist/factory-assets/skills/authoring-skaile-manifests/SKILL.md +20 -17
- package/dist/factory-assets/skills/skaile-author-asset/SKILL.md +82 -71
- package/dist/factory-assets/skills/skaile-manage-workspace/SKILL.md +17 -11
- package/dist/factory-assets/skills/skailify/SKILL.md +8 -4
- package/dist/{flows-64OAOYLP.js → flows-KCARGXRT.js} +6 -6
- package/dist/{flows-64OAOYLP.js.map → flows-KCARGXRT.js.map} +1 -1
- package/dist/{helpers-HV5Y57CY.js → helpers-PSROT7CU.js} +9 -9
- package/dist/{helpers-HV5Y57CY.js.map → helpers-PSROT7CU.js.map} +1 -1
- package/dist/library/index.js +4 -4
- package/dist/library/src/local/install-library-asset.d.ts +3 -2
- package/dist/library/src/local/install-library-asset.d.ts.map +1 -1
- package/dist/library/src/remote/remote-catalog-source.d.ts +11 -2
- package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
- package/dist/{library-publish-TVS3WQ4C.js → library-publish-YAI7WOXC.js} +36 -18
- package/dist/library-publish-YAI7WOXC.js.map +1 -0
- package/dist/{open-library-AT6RYQ5M.js → open-library-Z5NJU4Z5.js} +12 -12
- package/dist/{open-library-AT6RYQ5M.js.map → open-library-Z5NJU4Z5.js.map} +1 -1
- package/dist/{open-registry-F2Z4OLXJ.js → open-registry-TYUVN5SG.js} +8 -8
- package/dist/{open-registry-F2Z4OLXJ.js.map → open-registry-TYUVN5SG.js.map} +1 -1
- package/dist/{paths-P7ZXMDCX.js → paths-HKAXUR3W.js} +6 -6
- package/dist/{paths-P7ZXMDCX.js.map → paths-HKAXUR3W.js.map} +1 -1
- package/dist/{plugin-store-27KGLW4S.js → plugin-store-N6SI2TYM.js} +5 -5
- package/dist/{plugin-store-27KGLW4S.js.map → plugin-store-N6SI2TYM.js.map} +1 -1
- package/dist/plugins/src/catalog-source.d.ts +7 -0
- package/dist/plugins/src/catalog-source.d.ts.map +1 -1
- package/dist/{project-J2EROMBW.js → project-SVS4UMGL.js} +11 -10
- package/dist/{project-J2EROMBW.js.map → project-SVS4UMGL.js.map} +1 -1
- package/dist/resolver/index.js +3 -3
- package/dist/runner/index.js +15 -15
- package/dist/sdk/asset-manager.js +6 -6
- package/dist/sdk/bridge.js +6 -6
- package/dist/sdk/core.js +3 -3
- package/dist/sdk/flow.js +4 -4
- package/dist/sdk/index.js +15 -15
- package/dist/sdk/resolver.js +3 -3
- package/dist/sdk/runner.js +15 -15
- package/dist/{setup-IFGA4NQA.js → setup-IOEZGJNC.js} +16 -15
- package/dist/setup-IOEZGJNC.js.map +1 -0
- package/dist/{skills-3T55L4YT.js → skills-HW6I6ZZ7.js} +5 -5
- package/dist/{skills-3T55L4YT.js.map → skills-HW6I6ZZ7.js.map} +1 -1
- package/dist/{source-HEAE43IL.js → source-OKRJT53H.js} +13 -13
- package/dist/{source-HEAE43IL.js.map → source-OKRJT53H.js.map} +1 -1
- package/dist/{source-manifest-publish-SCAHAYSQ.js → source-manifest-publish-MILEQDRD.js} +15 -15
- package/dist/{source-manifest-publish-SCAHAYSQ.js.map → source-manifest-publish-MILEQDRD.js.map} +1 -1
- package/dist/tui/index.js +15 -15
- package/dist/workspace-plugin/adapters/mcp.js +12 -12
- package/dist/workspace-plugin/adapters/omp.js +14 -14
- package/dist/workspace-plugin/index.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-3ZVSINEV.js.map +0 -1
- package/dist/chunk-KBAE7PU7.js.map +0 -1
- package/dist/chunk-WGN7Z36G.js.map +0 -1
- package/dist/chunk-WGNFDLHT.js.map +0 -1
- package/dist/chunk-ZDMGMWK6.js.map +0 -1
- package/dist/library-publish-TVS3WQ4C.js.map +0 -1
- package/dist/setup-IFGA4NQA.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: "skaile-author-asset"
|
|
3
|
-
description: "Use when an asset author needs to build a skill in a local library and publish it. Covers the source/library/store model, laying out a repo (any depth, optional plugin grouping), the SKILL.md format, and the
|
|
3
|
+
description: "Use when an asset author needs to build a skill in a local library and publish it. Covers the source/library/store model, laying out a repo (any depth, optional plugin grouping), the SKILL.md format, and the skaile.manifest.yaml publication manifest and publish flow (library publish/register/yank) via the skaile CLI."
|
|
4
4
|
metadata:
|
|
5
|
-
version: "0.1.
|
|
5
|
+
version: "0.1.2"
|
|
6
6
|
tags:
|
|
7
7
|
- "authoring"
|
|
8
8
|
- "skill"
|
|
@@ -19,7 +19,7 @@ metadata:
|
|
|
19
19
|
# Author an AI-Asset
|
|
20
20
|
|
|
21
21
|
How to author a **skill** (or any asset kind) in a local library, lay out the
|
|
22
|
-
repository,
|
|
22
|
+
repository, keep its `skaile.manifest.yaml` **manifest** current, and
|
|
23
23
|
**publish** it through the store.
|
|
24
24
|
|
|
25
25
|
For the canonical skill folder layout and frontmatter spec, read the companion
|
|
@@ -78,7 +78,7 @@ names carry no meaning, so lay the repo out however suits you:
|
|
|
78
78
|
|
|
79
79
|
```
|
|
80
80
|
my-assets/ # repo root (a "source")
|
|
81
|
-
├──
|
|
81
|
+
├── skaile.manifest.yaml # publication manifest (see §4)
|
|
82
82
|
├── .claude-plugin/
|
|
83
83
|
│ └── plugin.json # optional grouping (see below)
|
|
84
84
|
├── skills/
|
|
@@ -92,13 +92,13 @@ my-assets/ # repo root (a "source")
|
|
|
92
92
|
|
|
93
93
|
**Publisher** is never read from a path segment. Resolution order:
|
|
94
94
|
|
|
95
|
-
1. A per-asset `publisher`
|
|
96
|
-
2.
|
|
97
|
-
3. `
|
|
98
|
-
4. Otherwise the repo name.
|
|
95
|
+
1. A per-asset `publisher` on the `assets[]` entry (§4).
|
|
96
|
+
2. The manifest's top-level `publisher`.
|
|
97
|
+
3. Otherwise your store identity or the library name (`library create` warns when it falls back).
|
|
99
98
|
|
|
100
|
-
With `
|
|
101
|
-
|
|
99
|
+
With `publisher: acme` at the top of `skaile.manifest.yaml`, every asset is
|
|
100
|
+
published as `@acme/<name>`; set `publisher` on an entry for the exceptions.
|
|
101
|
+
Change the default later with `skaile library set <library> publisher=<slug>`.
|
|
102
102
|
|
|
103
103
|
**Grouping in `skaile manage`** is optional and comes from Claude plugin
|
|
104
104
|
manifests, not from folders: list the asset directories in
|
|
@@ -126,7 +126,7 @@ metadata:
|
|
|
126
126
|
tags: [research, brief]
|
|
127
127
|
stage: alpha # alpha | beta | stable | deprecated
|
|
128
128
|
requires: # cross-asset dependencies (optional)
|
|
129
|
-
- "
|
|
129
|
+
- "skill:brief-format"
|
|
130
130
|
---
|
|
131
131
|
|
|
132
132
|
# Brief
|
|
@@ -140,86 +140,98 @@ metadata:
|
|
|
140
140
|
|
|
141
141
|
Keep the body tight — it ships as a prompt.
|
|
142
142
|
|
|
143
|
-
## 4. The manifest —
|
|
143
|
+
## 4. The manifest — `skaile.manifest.yaml`
|
|
144
144
|
|
|
145
|
-
One file at the **repo root** declares
|
|
146
|
-
|
|
145
|
+
One file at the **library/repo root** declares what the repo **publishes**:
|
|
146
|
+
the default `publisher`, a default `version`, and the `assets[]` inventory.
|
|
147
|
+
`skaile library init` / `library create` write and maintain it; the publish
|
|
148
|
+
commands read it as the **allowlist** — only assets listed in `assets[]` are
|
|
149
|
+
published.
|
|
147
150
|
|
|
148
|
-
|
|
151
|
+
```yaml
|
|
152
|
+
# skaile.manifest.yaml
|
|
153
|
+
publisher: acme # GitHub-shaped, no "@"; inherited by every asset
|
|
154
|
+
version: 1.0.0 # repo-level default version
|
|
155
|
+
dev_paths: # optional: dev-only prefixes, excluded unless --dev
|
|
156
|
+
- ai-assets-dev
|
|
157
|
+
assets:
|
|
158
|
+
- kind: skill
|
|
159
|
+
name: brief
|
|
160
|
+
root: research/skills/brief # a directory, walked recursively
|
|
161
|
+
description: Generates a project brief
|
|
162
|
+
keywords: [research, brief]
|
|
163
|
+
dependencies: # canonical refs only: kind:@<publisher>/<name>[#version]
|
|
164
|
+
- skill:@acme/brief-format#^2
|
|
165
|
+
- kind: agent
|
|
166
|
+
name: analyst
|
|
167
|
+
files: # or an explicit file list (repo-relative)
|
|
168
|
+
- agents/analyst/agent.yaml
|
|
169
|
+
publisher: research # per-asset publisher override
|
|
170
|
+
version: 2.0.0 # per-asset version override
|
|
171
|
+
```
|
|
149
172
|
|
|
150
|
-
|
|
151
|
-
publisher from the manifest. Use this while a repo is evolving fast.
|
|
173
|
+
Keep it in sync with the tree instead of hand-editing the inventory:
|
|
152
174
|
|
|
153
|
-
```
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
publisher_overrides:
|
|
158
|
-
- path: research-contracts/
|
|
159
|
-
publisher: '@research-contracts'
|
|
175
|
+
```bash
|
|
176
|
+
skaile library create skill my-skill --library personal # scaffolds the asset AND adds its assets[] entry
|
|
177
|
+
skaile library index personal # after hand edits: add new assets, drop deleted ones
|
|
178
|
+
skaile validate <library-path> # schema + canonical names, run before publishing
|
|
160
179
|
```
|
|
161
180
|
|
|
162
|
-
|
|
181
|
+
An asset on disk but missing from `assets[]` is **not published**; an entry
|
|
182
|
+
whose `root:` directory is gone makes `library publish` fail until
|
|
183
|
+
`library index` drops it. `sha256` per entry is optional — if you pin one, a
|
|
184
|
+
mismatch is a hard error.
|
|
163
185
|
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
186
|
+
> `.skaile-source.yaml` is the **legacy** source config of third-party repos
|
|
187
|
+
> (`publisher_default`, `publisher_overrides`, `dev_paths`). It is not what a
|
|
188
|
+
> library writes and no longer sets a publisher; `skaile.manifest.yaml`
|
|
189
|
+
> replaces it.
|
|
168
190
|
|
|
169
|
-
|
|
170
|
-
version: 2
|
|
171
|
-
publisher_default: '@acme'
|
|
172
|
-
default_ref: main
|
|
173
|
-
assets:
|
|
174
|
-
- path: research/skills/brief # relative to repo root
|
|
175
|
-
kind: skill
|
|
176
|
-
publisher: '@research' # required per entry
|
|
177
|
-
name: brief
|
|
178
|
-
version: 1.0.0
|
|
179
|
-
sha256: "<64-hex>" # optional locally, REQUIRED to publish
|
|
180
|
-
files: # explicit; no wildcards; ≥1
|
|
181
|
-
- SKILL.md
|
|
182
|
-
- validator.py
|
|
183
|
-
- references/template.md
|
|
184
|
-
requires:
|
|
185
|
-
- "@research/brief-format@^2"
|
|
186
|
-
metadata:
|
|
187
|
-
description: Generates a project brief
|
|
188
|
-
keywords: [research, brief]
|
|
189
|
-
```
|
|
191
|
+
### Curating a repo you don't own
|
|
190
192
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
+
For a third-party source added with `skaile source add`, the manifest is a
|
|
194
|
+
**curator** manifest (it carries `source:` and `provenance:`) kept under
|
|
195
|
+
`~/.skaile/store/manifests/`:
|
|
193
196
|
|
|
194
197
|
```bash
|
|
195
|
-
skaile source
|
|
196
|
-
skaile source
|
|
197
|
-
skaile source
|
|
198
|
-
skaile source
|
|
198
|
+
skaile source manifest init <src> # create it from a discovery walk
|
|
199
|
+
skaile source manifest rebuild <src> # re-derive after upstream changes (keeps your curation; --overwrite discards it)
|
|
200
|
+
skaile source manifest verify <src> --strict # verify hashes + manifest parse before publishing
|
|
201
|
+
skaile source manifest publish <src> # register it in the store
|
|
199
202
|
```
|
|
200
203
|
|
|
201
|
-
Hash = sort `files[]` lexicographically, then SHA256 over
|
|
202
|
-
`<relpath>\0<content>\0` per file. Author-computed hashes are wire-compatible
|
|
203
|
-
with server-computed ones. Missing files are a hard error in manifest mode.
|
|
204
|
-
|
|
205
204
|
## 5. Publish
|
|
206
205
|
|
|
206
|
+
`<library>` below is the **library name** (as shown by `skaile library list`),
|
|
207
|
+
never an asset ref.
|
|
208
|
+
|
|
207
209
|
```bash
|
|
208
210
|
# Attach a GitHub remote so the library is store-publishable
|
|
209
211
|
skaile library link personal https://github.com/you/my-assets
|
|
210
212
|
|
|
211
|
-
|
|
212
|
-
skaile library publish @research/brief@1.0.0
|
|
213
|
+
skaile store login
|
|
213
214
|
|
|
214
|
-
#
|
|
215
|
-
skaile library
|
|
215
|
+
# Preview the plan: remote, publisher namespace(s), ref, refs to publish
|
|
216
|
+
skaile library publish personal --dry-run
|
|
216
217
|
|
|
217
|
-
#
|
|
218
|
-
skaile library
|
|
218
|
+
# Commit + push to the PUBLIC remote, register it as a store source, publish its assets
|
|
219
|
+
skaile library publish personal
|
|
220
|
+
# → skill:@acme/brief#1.0.0
|
|
221
|
+
|
|
222
|
+
# Or register bytes that are already on GitHub (no commit/push)
|
|
223
|
+
skaile library register personal
|
|
224
|
+
|
|
225
|
+
# Retract published assets (all, or one with --asset)
|
|
226
|
+
skaile library yank personal --asset skill:@acme/brief#1.0.0
|
|
219
227
|
```
|
|
220
228
|
|
|
221
|
-
|
|
222
|
-
|
|
229
|
+
`--asset <ref>` limits `publish` / `register` / `yank` to one asset. A local
|
|
230
|
+
library with no remote needs `--create-repo` (or `library link`) first.
|
|
231
|
+
|
|
232
|
+
Consumers then install pointer-only with the canonical ref:
|
|
233
|
+
`skaile install skill:@acme/brief#1.0.0` fetches from your repo at the pinned
|
|
234
|
+
commit and verifies SHA256 per file.
|
|
223
235
|
|
|
224
236
|
## Dev-only assets — `dev_paths` + `--dev`
|
|
225
237
|
|
|
@@ -232,11 +244,10 @@ pulled in only when a contributor opts in.
|
|
|
232
244
|
- **Folder name:** keep dev assets under one top-level folder named
|
|
233
245
|
**`ai-assets-dev/`** (intention-revealing; treat the `-dev` suffix as
|
|
234
246
|
reserved).
|
|
235
|
-
- **Mechanism:** declare it in
|
|
247
|
+
- **Mechanism:** declare it in `skaile.manifest.yaml` under `dev_paths`:
|
|
236
248
|
|
|
237
249
|
```yaml
|
|
238
|
-
|
|
239
|
-
publisher_default: '@acme'
|
|
250
|
+
publisher: acme
|
|
240
251
|
dev_paths: # excluded from a normal discovery run
|
|
241
252
|
- ai-assets-dev
|
|
242
253
|
```
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: "skaile-manage-workspace"
|
|
3
3
|
description: "Use when managing a skaile workspace from the command line: init/install a project, add/remove/list/search assets, work with sources and libraries, the interactive manage TUI, patches, sessions, and catalog config. Wraps the `skaile` CLI workspace surface."
|
|
4
4
|
metadata:
|
|
5
|
-
version: "0.1.
|
|
5
|
+
version: "0.1.2"
|
|
6
6
|
tags:
|
|
7
7
|
- "cli"
|
|
8
8
|
- "workspace"
|
|
@@ -45,8 +45,8 @@ paths, resources) live in `skaile.yaml` and are hand-edited.
|
|
|
45
45
|
|
|
46
46
|
## Assets in a workspace
|
|
47
47
|
|
|
48
|
-
|
|
49
|
-
`bundle`, `contract`)
|
|
48
|
+
The asset verbs work across kinds (`skill`, `agent`, `prompt`, `flow`,
|
|
49
|
+
`bundle`, `contract`):
|
|
50
50
|
|
|
51
51
|
```bash
|
|
52
52
|
skaile add <ref> [--global] # add to skaile.yaml + deploy
|
|
@@ -57,7 +57,7 @@ skaile search [kind] [query] # search across all sources
|
|
|
57
57
|
skaile info <ref> # metadata, deps, deploy status
|
|
58
58
|
skaile why <ref> # why is this installed (dep chain)
|
|
59
59
|
skaile tree # dependency tree
|
|
60
|
-
skaile outdated [
|
|
60
|
+
skaile outdated [ref] # assets behind their source
|
|
61
61
|
skaile update [name] # refresh catalog cache + re-deploy outdated
|
|
62
62
|
skaile diff <ref> # deployed vs source diff
|
|
63
63
|
skaile doctor [name] # scan for broken deps
|
|
@@ -65,12 +65,14 @@ skaile create <name> [--kind k] # scaffold a new asset
|
|
|
65
65
|
skaile history [limit] # recent actions
|
|
66
66
|
```
|
|
67
67
|
|
|
68
|
-
`<ref>` is
|
|
68
|
+
`<ref>` is the canonical `kind:@<publisher>/<name>`, optionally pinned with
|
|
69
|
+
`#<version>` — e.g. `skill:@research/brief#1.0.0`. The `kind:` prefix is
|
|
70
|
+
required and the version follows `#`, never `@`.
|
|
69
71
|
|
|
70
72
|
### Pointer-only install from the catalog
|
|
71
73
|
|
|
72
74
|
```bash
|
|
73
|
-
skaile install
|
|
75
|
+
skaile install skill:@research/brief#1.0.0
|
|
74
76
|
```
|
|
75
77
|
|
|
76
78
|
Resolves the install manifest from the configured catalog, fetches file bytes
|
|
@@ -92,15 +94,19 @@ grouped by publisher/source and Claude plugin, unlisted assets under `Other`), *
|
|
|
92
94
|
## Sources (third-party / team repos)
|
|
93
95
|
|
|
94
96
|
```bash
|
|
95
|
-
skaile source add <git-url> # clone + register a github source (~/.skaile/sources/<
|
|
97
|
+
skaile source add <git-url> # clone + register a github source (~/.skaile/cache/sources/<host>/<owner>/<repo>/)
|
|
96
98
|
skaile source list # registered sources
|
|
97
99
|
skaile source show <name>
|
|
98
100
|
skaile source remove <name>
|
|
99
101
|
skaile source sync [name] # re-fetch upstream changes
|
|
100
|
-
skaile source
|
|
101
|
-
skaile source
|
|
102
|
+
skaile source manifest init <src> # curate a manifest over a source you don't own
|
|
103
|
+
skaile source manifest verify <src> --strict # verify hashes + manifest parse
|
|
102
104
|
```
|
|
103
105
|
|
|
106
|
+
`source manifest *` curates a catalog entry over a source you **don't** own. For
|
|
107
|
+
a library you author yourself, the manifest is its `skaile.manifest.yaml` (kept
|
|
108
|
+
current by `skaile library index <library>`) — see `skaile-author-asset`.
|
|
109
|
+
|
|
104
110
|
## Libraries (your authoring places)
|
|
105
111
|
|
|
106
112
|
```bash
|
|
@@ -110,7 +116,7 @@ skaile library create <kind> <name> # scaffold a new asset
|
|
|
110
116
|
skaile library list|status|show <name>
|
|
111
117
|
skaile library default <name> # set default
|
|
112
118
|
skaile library commit|pull|push|sync <name> # git ops
|
|
113
|
-
skaile library publish <
|
|
119
|
+
skaile library publish <library> # push + register in the store (<library> is a NAME, not a ref)
|
|
114
120
|
```
|
|
115
121
|
|
|
116
122
|
See the `skaile-author-asset` skill for the full authoring + publish flow.
|
|
@@ -154,7 +160,7 @@ catalog settings per-workspace.
|
|
|
154
160
|
## Dev-only assets
|
|
155
161
|
|
|
156
162
|
A source can mark assets meant only for developing the project itself (those
|
|
157
|
-
under `ai-assets-dev/`) as dev-only via `dev_paths` in its
|
|
163
|
+
under `ai-assets-dev/`) as dev-only via `dev_paths` in its `skaile.manifest.yaml`.
|
|
158
164
|
A normal sync excludes them; `--dev` on the sync re-includes them:
|
|
159
165
|
|
|
160
166
|
```bash
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
name: skailify
|
|
3
3
|
description: "Use when a user wants to move an existing coding-agent skill (a Claude Code skill under ~/.claude/skills/, or any SKILL.md directory) into a skaile library so it can be versioned and published. Trigger phrases: 'skailify my skill', 'import this Claude skill into my library', 'move my ~/.claude skill into skaile', 'turn my CC skill into a skaile asset', 'add my local skill to the library'. Drives `skaile asset import` and verifies with `skaile validate`."
|
|
4
4
|
metadata:
|
|
5
|
-
version: "0.1.
|
|
5
|
+
version: "0.1.1"
|
|
6
6
|
source: AUTHORED
|
|
7
7
|
stage: alpha
|
|
8
8
|
tags:
|
|
@@ -52,7 +52,7 @@ wires the entry into `skaile.manifest.yaml`. The low-level `skaile asset migrate
|
|
|
52
52
|
|
|
53
53
|
| Flag | Use |
|
|
54
54
|
|---|---|
|
|
55
|
-
| `--
|
|
55
|
+
| `--library <library>` | Target a non-default library. |
|
|
56
56
|
| `--version <semver>` | Stamp when the skill ships none (default `0.1.0`). |
|
|
57
57
|
| `--stage <stage>` | `alpha` (default) \| `beta` \| `stable`. |
|
|
58
58
|
| `--no-normalize` | Copy frontmatter verbatim (rare — only if already skaile-shaped). |
|
|
@@ -61,8 +61,12 @@ wires the entry into `skaile.manifest.yaml`. The low-level `skaile asset migrate
|
|
|
61
61
|
## After import
|
|
62
62
|
|
|
63
63
|
- Edit the stamped `metadata.tags` if `import` left them empty.
|
|
64
|
-
- To publish:
|
|
65
|
-
(
|
|
64
|
+
- To publish: link the library to a GitHub remote once
|
|
65
|
+
(`skaile library link <library> <git-url>`), sign in (`skaile store login`),
|
|
66
|
+
then `skaile library publish <library>` — `<library>` is the library **name**,
|
|
67
|
+
not an asset ref; add `--asset <ref>` for one asset and `--dry-run` to preview
|
|
68
|
+
(see [skaile-author-asset]). The imported skill publishes as
|
|
69
|
+
`skill:@<publisher>/<name>#<version>`.
|
|
66
70
|
- Re-running `import` for the same `(kind, name)` updates its manifest entry in
|
|
67
71
|
place rather than duplicating it.
|
|
68
72
|
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export { flowFindFlowForSession, flowGetSession, flowList, flowListSessions, flowShow } from './chunk-
|
|
1
|
+
export { flowFindFlowForSession, flowGetSession, flowList, flowListSessions, flowShow } from './chunk-WHSQSVN2.js';
|
|
2
2
|
import './chunk-R6O6YWU7.js';
|
|
3
3
|
import './chunk-JELTQ4H7.js';
|
|
4
4
|
import './chunk-X5YPJV4N.js';
|
|
5
5
|
import './chunk-JKWU6ULI.js';
|
|
6
|
-
import './chunk-
|
|
6
|
+
import './chunk-3JHFFIQ6.js';
|
|
7
7
|
import './chunk-4GY63JU6.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-YK7WJSTD.js';
|
|
9
9
|
import './chunk-XGIS325V.js';
|
|
10
10
|
import './chunk-5BEFNLOR.js';
|
|
11
11
|
import './chunk-A2ULN3KX.js';
|
|
12
|
-
import './chunk-
|
|
12
|
+
import './chunk-ORUHADS6.js';
|
|
13
13
|
import './chunk-MFHKHXDE.js';
|
|
14
14
|
import './chunk-TOSHZX4C.js';
|
|
15
15
|
import './chunk-SR4RFKHM.js';
|
|
@@ -22,5 +22,5 @@ import './chunk-MJHSLODD.js';
|
|
|
22
22
|
import './chunk-C3CAXQMA.js';
|
|
23
23
|
import './chunk-BOFL7GIF.js';
|
|
24
24
|
import './chunk-NSBPE2FW.js';
|
|
25
|
-
//# sourceMappingURL=flows-
|
|
26
|
-
//# sourceMappingURL=flows-
|
|
25
|
+
//# sourceMappingURL=flows-KCARGXRT.js.map
|
|
26
|
+
//# sourceMappingURL=flows-KCARGXRT.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"flows-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"flows-KCARGXRT.js"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
export { KIND_COL_WIDTH, S, TARGET_DEFAULT_HINT, bareSoftDepName, colorRef, fitWidth, formatRelativeTime, formatSoftDepAddPreview, formatSoftDepHint, formatSoftDepRemovePreview, formatSoftDepSection, kindColor, kindColorPad, logErr, logInfo, logOk, logWarn, warnLegacyClaudeCopies } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
export { KIND_COL_WIDTH, S, TARGET_DEFAULT_HINT, bareSoftDepName, colorRef, deferredWarnings, fitWidth, formatRelativeTime, formatSoftDepAddPreview, formatSoftDepHint, formatSoftDepRemovePreview, formatSoftDepSection, kindColor, kindColorPad, logErr, logInfo, logOk, logWarn, warnLegacyClaudeCopies } from './chunk-R4G7XI7A.js';
|
|
2
|
+
import './chunk-MMC24L2W.js';
|
|
3
|
+
import './chunk-AC2N5BRP.js';
|
|
4
4
|
import './chunk-Y7UBRRKG.js';
|
|
5
5
|
import './chunk-VKSA2CDJ.js';
|
|
6
6
|
import './chunk-R7FOF242.js';
|
|
7
7
|
import './chunk-ZDKJHQY2.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-75EX5GY4.js';
|
|
9
9
|
import './chunk-CGYEHQOX.js';
|
|
10
|
-
import './chunk-
|
|
10
|
+
import './chunk-3JHFFIQ6.js';
|
|
11
11
|
import './chunk-4GY63JU6.js';
|
|
12
|
-
import './chunk-
|
|
12
|
+
import './chunk-YK7WJSTD.js';
|
|
13
13
|
import './chunk-XGIS325V.js';
|
|
14
14
|
import './chunk-5BEFNLOR.js';
|
|
15
15
|
import './chunk-A2ULN3KX.js';
|
|
16
|
-
import './chunk-
|
|
16
|
+
import './chunk-ORUHADS6.js';
|
|
17
17
|
import './chunk-MFHKHXDE.js';
|
|
18
18
|
import './chunk-TOSHZX4C.js';
|
|
19
19
|
import './chunk-SR4RFKHM.js';
|
|
@@ -30,5 +30,5 @@ import './chunk-UQ6LFBPZ.js';
|
|
|
30
30
|
import './chunk-TNWXGHLD.js';
|
|
31
31
|
import './chunk-5CYEWBPB.js';
|
|
32
32
|
import './chunk-NSBPE2FW.js';
|
|
33
|
-
//# sourceMappingURL=helpers-
|
|
34
|
-
//# sourceMappingURL=helpers-
|
|
33
|
+
//# sourceMappingURL=helpers-PSROT7CU.js.map
|
|
34
|
+
//# sourceMappingURL=helpers-PSROT7CU.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"helpers-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"helpers-PSROT7CU.js"}
|
package/dist/library/index.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
export { AssignmentNotFoundError, CatalogCache, CatalogConfigSchema, CatalogHttpError, DuplicateAssignmentError, DuplicateLibraryNameError, GitSyncDriver, InstanceHasConsumersError, InstanceNotFoundError, InterpolationError, KNOWN_ASSET_KINDS, KnowledgeManifestSchema, LIBRARY_BACKENDS, LIBRARY_OWNERSHIPS, LOCAL_CATALOG_URL, LibraryConfigSchema, LibraryError, LibraryInstanceRefSchema, LibraryManager, LibrarySectionSchema, LibrarySyncError, LocalCatalogSource, LocalIndex, LocalSyncDriver, LockAssignmentSchema, LockFileSchema, OfflineError, OperationNotPermittedError, PIN_POLICIES, PinPolicySchema, PresetAppliedSchema, PresetExpandedSchema, RemoteCatalogSource, RequiresEdgeSchema, RestCatalogSource, SidecarGit, SkaileConfigSchema, SourceNotFoundError, TarballHashMismatchError, UserLibraryNotFoundError, WorkspaceConfigV2Schema, applyNonStructuralUpgrade, applyPreset, applyPresetFromData, assertManifestEditable, classifyRef, cloneOrInitGitRepo, createEmptyLockFile, curatedManifestOverlay, deriveSlug, detectChanges, detectNestedPresetRefs, detectWorkspaceVersion, ensureGitRepo, evaluateUpgrade, extractLibraryInstanceId, extractReferencedKeys, filterKey, getConfigDefaults, getDefaultValue, getSidecarRoot, getStoreManifestsDir, getStoreRoot, hasInterpolationTokens, installLibraryAsset, interpolate, isGitRepo, isLocalCatalogUrl, isSecretPlaceholder, knowledgeKindProvider, listSidecarSlugsOnDisk, loadLockFile, loadWorkspaceV2, migrateSidecarsToStoreIfNeeded, migrateWorkspaceConfig, missingRootAssets, parsePreset, parsePresetYaml, parseWorkspaceV2, projectConfigPath, pruneMissingRootAssets, queryInstancePickerChoices, resolveAllItems, resolveConfig, resolveIndexPath, resolveItem, resolvePin, resolveSidecarPaths, saveConfig, saveLockFile, saveWorkspaceV2, setManifestPublisher, setOriginUrl, sha256Hex, stampManifestPublisher, storeSecrets, syncManifestWithDisk, trpcGetUrl, upsertManifestAsset, validateAllPlaceholders, validateKnowledge, validateNestingDepth, validatePlaceholder, writeCuratedManifest } from '../chunk-
|
|
1
|
+
export { AssignmentNotFoundError, CatalogCache, CatalogConfigSchema, CatalogHttpError, DuplicateAssignmentError, DuplicateLibraryNameError, GitSyncDriver, InstanceHasConsumersError, InstanceNotFoundError, InterpolationError, KNOWN_ASSET_KINDS, KnowledgeManifestSchema, LIBRARY_BACKENDS, LIBRARY_OWNERSHIPS, LOCAL_CATALOG_URL, LibraryConfigSchema, LibraryError, LibraryInstanceRefSchema, LibraryManager, LibrarySectionSchema, LibrarySyncError, LocalCatalogSource, LocalIndex, LocalSyncDriver, LockAssignmentSchema, LockFileSchema, OfflineError, OperationNotPermittedError, PIN_POLICIES, PinPolicySchema, PresetAppliedSchema, PresetExpandedSchema, RemoteCatalogSource, RequiresEdgeSchema, RestCatalogSource, SidecarGit, SkaileConfigSchema, SourceNotFoundError, TarballHashMismatchError, UserLibraryNotFoundError, WorkspaceConfigV2Schema, applyNonStructuralUpgrade, applyPreset, applyPresetFromData, assertManifestEditable, classifyRef, cloneOrInitGitRepo, createEmptyLockFile, curatedManifestOverlay, deriveSlug, detectChanges, detectNestedPresetRefs, detectWorkspaceVersion, ensureGitRepo, evaluateUpgrade, extractLibraryInstanceId, extractReferencedKeys, filterKey, getConfigDefaults, getDefaultValue, getSidecarRoot, getStoreManifestsDir, getStoreRoot, hasInterpolationTokens, installLibraryAsset, interpolate, isGitRepo, isLocalCatalogUrl, isSecretPlaceholder, knowledgeKindProvider, listSidecarSlugsOnDisk, loadLockFile, loadWorkspaceV2, migrateSidecarsToStoreIfNeeded, migrateWorkspaceConfig, missingRootAssets, parsePreset, parsePresetYaml, parseWorkspaceV2, projectConfigPath, pruneMissingRootAssets, queryInstancePickerChoices, resolveAllItems, resolveConfig, resolveIndexPath, resolveItem, resolvePin, resolveSidecarPaths, saveConfig, saveLockFile, saveWorkspaceV2, setManifestPublisher, setOriginUrl, sha256Hex, stampManifestPublisher, storeSecrets, syncManifestWithDisk, trpcGetUrl, upsertManifestAsset, validateAllPlaceholders, validateKnowledge, validateNestingDepth, validatePlaceholder, writeCuratedManifest } from '../chunk-AC2N5BRP.js';
|
|
2
2
|
import '../chunk-Y7UBRRKG.js';
|
|
3
3
|
export { installFromManifest } from '../chunk-VKSA2CDJ.js';
|
|
4
4
|
export { GITHUB_PAT_ENV, fetchAssetFilesFromGitHub } from '../chunk-R7FOF242.js';
|
|
5
5
|
import '../chunk-ZDKJHQY2.js';
|
|
6
|
-
export { resolveLibraryDir } from '../chunk-
|
|
6
|
+
export { resolveLibraryDir } from '../chunk-3JHFFIQ6.js';
|
|
7
7
|
import '../chunk-4GY63JU6.js';
|
|
8
|
-
import '../chunk-
|
|
8
|
+
import '../chunk-YK7WJSTD.js';
|
|
9
9
|
import '../chunk-XGIS325V.js';
|
|
10
10
|
import '../chunk-5BEFNLOR.js';
|
|
11
11
|
import '../chunk-A2ULN3KX.js';
|
|
12
|
-
import '../chunk-
|
|
12
|
+
import '../chunk-ORUHADS6.js';
|
|
13
13
|
export { userConfigPath } from '../chunk-MFHKHXDE.js';
|
|
14
14
|
import '../chunk-TOSHZX4C.js';
|
|
15
15
|
import '../chunk-SR4RFKHM.js';
|
|
@@ -54,8 +54,9 @@ export interface InstalledLibraryAsset {
|
|
|
54
54
|
* The hash check covers the files discovery hashed, siblings included when the
|
|
55
55
|
* manifest declares the folder as the asset's `root`.
|
|
56
56
|
*
|
|
57
|
-
* @throws When the asset is no longer in the library at the indexed version, when
|
|
58
|
-
* on-disk hash differs from the indexed one
|
|
57
|
+
* @throws When the asset is no longer in the library at the indexed version, when the
|
|
58
|
+
* index holds no hash for it, when its on-disk hash differs from the indexed one
|
|
59
|
+
* (`hash mismatch`), when a directory-kind
|
|
59
60
|
* asset sits at the library root or its path would escape the target, or when the
|
|
60
61
|
* existing lock cannot be read. A link install over an existing path fails with the
|
|
61
62
|
* filesystem's `EEXIST`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install-library-asset.d.ts","sourceRoot":"","sources":["../../../../library/src/local/install-library-asset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAiBH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGlD,+CAA+C;AAC/C,MAAM,WAAW,uBAAuB;IACtC,2FAA2F;IAC3F,GAAG,EAAE,eAAe,CAAC;IACrB;;;;OAIG;IACH,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC;IAChG,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,0DAA0D;AAC1D,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED
|
|
1
|
+
{"version":3,"file":"install-library-asset.d.ts","sourceRoot":"","sources":["../../../../library/src/local/install-library-asset.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAiBH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACrD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGlD,+CAA+C;AAC/C,MAAM,WAAW,uBAAuB;IACtC,2FAA2F;IAC3F,GAAG,EAAE,eAAe,CAAC;IACrB;;;;OAIG;IACH,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,eAAe,CAAC,CAAC,CAAC;IAChG,wEAAwE;IACxE,SAAS,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED,0DAA0D;AAC1D,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB,wFAAwF;IACxF,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,uBAAuB,GAAG,qBAAqB,CAyExF"}
|
|
@@ -126,11 +126,20 @@ export declare class RemoteCatalogSource implements ICatalogSource {
|
|
|
126
126
|
* Resolve a single asset by canonical ref (`<publisher>/<name>@<version>`).
|
|
127
127
|
*
|
|
128
128
|
* Cache: hit returns immediately. Miss fetches `/trpc/catalog.get`. Stale
|
|
129
|
-
* entry serves the cached value and triggers a background refresh.
|
|
129
|
+
* entry serves the cached value and triggers a background refresh. An entry
|
|
130
|
+
* without `requires` was cached by a CLI that predates the field and is
|
|
131
|
+
* refetched like a miss, so it cannot hide the asset's dependencies; if that
|
|
132
|
+
* refetch fails (offline), the old entry is served rather than nothing.
|
|
130
133
|
*
|
|
131
|
-
* Air-gapped: throws {@link OfflineError} on cache miss.
|
|
134
|
+
* Air-gapped: serves any cached entry; throws {@link OfflineError} on cache miss.
|
|
132
135
|
*/
|
|
133
136
|
resolve(ref: string): Promise<CatalogAsset | null>;
|
|
137
|
+
/**
|
|
138
|
+
* Fetch `ref` from the store, bypassing the resolve cache, and cache the answer.
|
|
139
|
+
* For a caller that knows the cached answer is wrong, e.g. a cached miss for an
|
|
140
|
+
* asset whose install manifest just resolved. Air-gapped: throws {@link OfflineError}.
|
|
141
|
+
*/
|
|
142
|
+
revalidate(ref: string): Promise<CatalogAsset | null>;
|
|
134
143
|
/**
|
|
135
144
|
* List assets matching `filter`.
|
|
136
145
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-catalog-source.d.ts","sourceRoot":"","sources":["../../../../library/src/remote/remote-catalog-source.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAGH,OAAO,KAAK,EACV,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EACjB,cAAc,EACf,MAAM,4BAA4B,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAuC,MAAM,YAAY,CAAC;AAM/E;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,CACvB,GAAG,EAAE,MAAM,EACX,IAAI,CAAC,EAAE;IACL,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;CAC1C,KACE,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEvB;;;;GAIG;AACH,MAAM,WAAW,0BAA0B;IACzC,oGAAoG;IACpG,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,2GAA2G;IAC3G,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB;;;OAGG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;;;;;GAMG;AACH,qBAAa,wBAAyB,SAAQ,KAAK;aAE/B,QAAQ,EAAE,MAAM;aAChB,MAAM,EAAE,MAAM;gBADd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM;CAKjC;AAED;;;;;;GAMG;AACH,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;aAGvB,MAAM,EAAE,MAAM;aACd,GAAG,CAAC,EAAE,MAAM;gBAF5B,OAAO,EAAE,MAAM,EACC,MAAM,EAAE,MAAM,EACd,GAAG,CAAC,EAAE,MAAM,YAAA;CAK/B;AAQD;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,cAAc;IACxD,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAU;IACjD,sFAAsF;IACtF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;gBAEjD,IAAI,EAAE,0BAA0B;IAiB5C
|
|
1
|
+
{"version":3,"file":"remote-catalog-source.d.ts","sourceRoot":"","sources":["../../../../library/src/remote/remote-catalog-source.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,32 +1,33 @@
|
|
|
1
|
-
import { makeHttpPublisherClient } from './chunk-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
1
|
+
import { makeHttpPublisherClient } from './chunk-UFS3FEBA.js';
|
|
2
|
+
import { checkSkillManifest } from './chunk-ES2FXWQ4.js';
|
|
3
|
+
import { isStoreAuthenticated, bareName, assetNamespace, refFor, assetEntryRef, manifestNamespaces, plannedRefs, formatNamespaceAvailability, preflightNamespace, publishToStore } from './chunk-EJYZ3MKJ.js';
|
|
4
|
+
import { openLibraryManager } from './chunk-P6KFWTGP.js';
|
|
5
|
+
import { logErr, logInfo, logOk, logWarn, S } from './chunk-R4G7XI7A.js';
|
|
6
|
+
import './chunk-2D2P7HSR.js';
|
|
7
|
+
import './chunk-DPMKI26Y.js';
|
|
7
8
|
import './chunk-QZLWJETK.js';
|
|
8
9
|
import './chunk-NFGRW3L7.js';
|
|
9
10
|
import './chunk-QCI6D7E4.js';
|
|
10
|
-
import './chunk-
|
|
11
|
-
import { missingRootAssets } from './chunk-
|
|
11
|
+
import './chunk-MMC24L2W.js';
|
|
12
|
+
import { missingRootAssets } from './chunk-AC2N5BRP.js';
|
|
12
13
|
import './chunk-Y7UBRRKG.js';
|
|
13
14
|
import './chunk-VKSA2CDJ.js';
|
|
14
15
|
import './chunk-R7FOF242.js';
|
|
15
16
|
import './chunk-ZDKJHQY2.js';
|
|
16
|
-
import './chunk-
|
|
17
|
+
import './chunk-75EX5GY4.js';
|
|
17
18
|
import './chunk-CGYEHQOX.js';
|
|
18
|
-
import './chunk-
|
|
19
|
+
import './chunk-3JHFFIQ6.js';
|
|
19
20
|
import './chunk-4GY63JU6.js';
|
|
20
|
-
import './chunk-
|
|
21
|
+
import './chunk-YK7WJSTD.js';
|
|
21
22
|
import './chunk-XGIS325V.js';
|
|
22
23
|
import './chunk-5BEFNLOR.js';
|
|
23
24
|
import './chunk-A2ULN3KX.js';
|
|
24
|
-
import './chunk-
|
|
25
|
+
import './chunk-ORUHADS6.js';
|
|
25
26
|
import './chunk-MFHKHXDE.js';
|
|
26
27
|
import './chunk-TOSHZX4C.js';
|
|
27
28
|
import { loadSkPublishManifest, decodeSkaileManifest } from './chunk-SR4RFKHM.js';
|
|
28
29
|
import './chunk-RVRB27AN.js';
|
|
29
|
-
import './chunk-LFMX2UEF.js';
|
|
30
|
+
import { parseFrontmatter } from './chunk-LFMX2UEF.js';
|
|
30
31
|
import './chunk-WX74MVNA.js';
|
|
31
32
|
import './chunk-ICSCSM5D.js';
|
|
32
33
|
import './chunk-JMKB7IB4.js';
|
|
@@ -40,7 +41,7 @@ import './chunk-5CYEWBPB.js';
|
|
|
40
41
|
import './chunk-NSBPE2FW.js';
|
|
41
42
|
import { spawnSync } from 'child_process';
|
|
42
43
|
import { readFileSync, existsSync } from 'fs';
|
|
43
|
-
import { join } from 'path';
|
|
44
|
+
import { join, relative, basename } from 'path';
|
|
44
45
|
|
|
45
46
|
var MANIFEST_FILENAME = "skaile.manifest.yaml";
|
|
46
47
|
function remoteUrlOf(lib) {
|
|
@@ -132,13 +133,30 @@ function isGithubRemote(url) {
|
|
|
132
133
|
);
|
|
133
134
|
}
|
|
134
135
|
var MAX_LISTED_UNTRACKED = 10;
|
|
135
|
-
function
|
|
136
|
+
function assetWarnings(libPath, manifest, targetName) {
|
|
137
|
+
const warnings = [];
|
|
138
|
+
for (const a of manifest.assets ?? []) {
|
|
139
|
+
if (targetName && a.name !== targetName) continue;
|
|
140
|
+
if (a.kind !== "skill" || !a.root || a.source || manifest.source) continue;
|
|
141
|
+
const file = join(libPath, a.root, "SKILL.md");
|
|
142
|
+
if (!existsSync(file)) continue;
|
|
143
|
+
const { data, body } = parseFrontmatter(readFileSync(file, "utf-8"));
|
|
144
|
+
if (!data || Object.keys(data).length === 0) continue;
|
|
145
|
+
const rel = relative(libPath, file);
|
|
146
|
+
for (const f of checkSkillManifest(data, body, basename(join(libPath, a.root)))) {
|
|
147
|
+
warnings.push(`${assetEntryRef(a, manifest)} (${rel}) [${f.tag}] \u2014 ${f.text}`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return warnings;
|
|
151
|
+
}
|
|
152
|
+
function publishWarnings(libPath, spawn, skipPush, manifest, targetName) {
|
|
136
153
|
const warnings = [];
|
|
137
154
|
if (!existsSync(join(libPath, "LICENSE")) && !existsSync(join(libPath, "LICENSE.md"))) {
|
|
138
155
|
warnings.push(
|
|
139
156
|
"No LICENSE or LICENSE.md in the library root \u2014 a public repo without a license grants consumers no rights to use it."
|
|
140
157
|
);
|
|
141
158
|
}
|
|
159
|
+
warnings.push(...assetWarnings(libPath, manifest, targetName));
|
|
142
160
|
if (!skipPush) {
|
|
143
161
|
const status = runGit(spawn, libPath, ["status", "--porcelain", "--untracked-files=all"]);
|
|
144
162
|
if (status.status === 0) {
|
|
@@ -227,7 +245,7 @@ async function publishLibrary(name, opts, client, spawn = spawnSync) {
|
|
|
227
245
|
const namespaces = manifestNamespaces(manifest, targetName);
|
|
228
246
|
const wouldBeRefs = plannedRefs(manifest, targetName);
|
|
229
247
|
const sourceRef = opts.ref ?? branchOf(lib);
|
|
230
|
-
const warnings = publishWarnings(lib.path, spawn, opts.skipPush);
|
|
248
|
+
const warnings = publishWarnings(lib.path, spawn, opts.skipPush, manifest, targetName);
|
|
231
249
|
if (opts.dryRun) {
|
|
232
250
|
logInfo(`Publish plan for ${S.bold(name)}:`);
|
|
233
251
|
logInfo(
|
|
@@ -346,5 +364,5 @@ async function runLibraryYank(name, opts, client) {
|
|
|
346
364
|
}
|
|
347
365
|
|
|
348
366
|
export { runLibraryPublish, runLibraryRegister, runLibraryYank };
|
|
349
|
-
//# sourceMappingURL=library-publish-
|
|
350
|
-
//# sourceMappingURL=library-publish-
|
|
367
|
+
//# sourceMappingURL=library-publish-YAI7WOXC.js.map
|
|
368
|
+
//# sourceMappingURL=library-publish-YAI7WOXC.js.map
|