skaile-cli 5.19.0 → 6.1.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 +54 -0
- package/README.md +3 -3
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,59 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 6.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#1102](https://github.com/skaile-ai/workspaces/pull/1102) [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f) Thanks [@mortegro](https://github.com/mortegro)! - Agents: `install` names `skaile update` for a composed persona or ruleset the library moved past the lock (p1510). A `../` compose folder of an agent is part of the lock: only `update` moves its bytes, `outdated` lists it (p1511). `install`, `install --locked`, `check` and `doctor` refuse what `validate` rejects for `agents:` instances (p1512). `validate` warns on an unknown key inside `agent.permissions` and the `model`, `memory`, `budget` and `permissions` blocks of an instance (p634).
|
|
8
|
+
|
|
9
|
+
- [#1102](https://github.com/skaile-ai/workspaces/pull/1102) [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f) Thanks [@mortegro](https://github.com/mortegro)! - Authoring: `validate`, `library index`, the publish plan and `add` give one verdict and one plain message per problem. A SKILL.md without front matter, or with front matter that is not valid YAML, prints the same `parse error` sentence everywhere, and an unquoted `@publisher/name` in `requires:` names the quoting fix (p1206, p1551). A missing `name` prints a plain fix line, once (p1401). A flow without a description is refused like every other kind (p1402). A `files:` entry outside the library is refused like `root:`, and a `files:` entry that names a missing file makes `validate`, `library index` and the plan exit 1 (p1403, p1404). `library index` drops the search rows of a library that holds no valid asset any more (p1400) and no longer tells the author to run `library index` for an asset that already fails its check (p871). `validate changelog` on a library without a commit prints a plain line (p1405). `library init --path` refuses every deploy folder below a project, including `<project>/.claude` itself (p875). `add` refuses an asset that fails its kind schema with the `validate` line, and `run --skill --dry-run` prints that line instead of a Node error (p1550). `reads_from` and `writes_to` in a flow warn like every other kind instead of failing the flow (p1552).
|
|
10
|
+
|
|
11
|
+
- [#1102](https://github.com/skaile-ai/workspaces/pull/1102) [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f) Thanks [@mortegro](https://github.com/mortegro)! - Consume commands (5.19.0 critique). `outdated` lists only what `update` would change: a library registered under another name with the same remote is no `origin changes` row, and a `#pin`ned ref is shown as `pinned`, never as moving (p1420, p1455). A pin the library never held gets `change the pin in skaile.yaml` in `check`, `doctor`, `outdated` and `install --locked` (p1456). The lock's origin wins: `update` and `add` keep a store- or source-origin asset where the lock has it, and `install --locked` restores a library-origin entry from the store when the lock's library is not registered and the store serves the same hash (p1490). `update --no-catalog` keeps a locked store mcp-server like a skill (p792). `info <ref>` of a locked asset resolves against the lock's library and prints `library:` (p1445). `diff <ref>` prints a missing requirement once (p1443). `add --dry-run` prints the planned library, version, dependencies, folders and files and changes nothing (p1422). A kindless `@pub/name` works in `why` (p1424), and a kindless `add` that misses says `Did you mean agent:@pub/name?` when another kind exists (p1425).
|
|
12
|
+
|
|
13
|
+
- [#1102](https://github.com/skaile-ai/workspaces/pull/1102) [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f) Thanks [@mortegro](https://github.com/mortegro)! - Harnesses: a new verb `skaile harness set <name>` switches a project to `claude-code`, `omp` or `codex` (it rewrites `agent:` and `harness:` and installs for it). `skaile init --harness` in a project that exists now refuses and names that verb. `omp` counts as logged in only when `agent.db` holds a credential, so `run --dry-run` and the real run give the same verdict. The omp ignore warning of `integration install` fires only for a rule that matches `.omp/extensions/skaile.ts` itself and names the ignore file. An unknown key of `skaile.yaml` (top level or in an `agent-config` profile) warns in `validate`, `check`, `run` and `repl`. `validate`, `check` and `doctor` reject a `harness:` or `driver:` no harness registers, after the declared plugins load. The claude-sdk surface warning is one `!` line and the SDK's stderr goes to the log database. `session logs <unknown id>` exits 1 with one line. `config set model` is judged against the project's harness and refuses a model it would refuse. `serve --harness omp --model <x>` refuses, before the ready line, a model omp would refuse: the check judges the `<entry>/<model>` the runner really sends to omp, and names it.
|
|
14
|
+
|
|
15
|
+
- [#1102](https://github.com/skaile-ai/workspaces/pull/1102) [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f) Thanks [@mortegro](https://github.com/mortegro)! - MCP servers from the store:
|
|
16
|
+
|
|
17
|
+
- A fresh `git clone` checks clean without `install`: `check` and `doctor` take the committed `.mcp.json` entry, `.skaile/assets/` payload and `.skaile/mcp-managed.json` as the render of the locked server, although `.skaile/cache/store/` is empty (p1294).
|
|
18
|
+
- `skaile remove mcp-server:<ref>` also removes an `mcp_servers:` entry of the same id that only sets values for the server, its payload and its staged store bytes (p963).
|
|
19
|
+
- `skaile diff mcp-server:<ref>` exits 1 for a missing `.mcp.json` entry, like `check` and `doctor` (p1494).
|
|
20
|
+
- `skaile store show` of an `mcp-server` this CLI writes no `.mcp.json` entry for (Nix recipe runtime, placeholder url) prints `Not runnable here: <reason>` instead of the `Install:` line (p1491). `store search` rows carry no such hint: the catalog row has no field for it.
|
|
21
|
+
|
|
22
|
+
- [#1102](https://github.com/skaile-ai/workspaces/pull/1102) [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f) Thanks [@mortegro](https://github.com/mortegro)! - `skaile serve` no longer writes into `~/.gitconfig` by default. The `[include]` of the project's managed-gitconfig is written only when `SKAILE_GIT_CONFIG_INCLUDE=1` is set (the agent image) or `startAgentServer({ gitConfigInclude: true })` is used. The write is atomic, goes through a symlinked `~/.gitconfig` and keeps its mode, and the include path is absolute. The protocol docs now agree that a default (`env` mode) runner accepts prompts without `session_init`; only a `provisioned` runner waits for `session_init_ack`.
|
|
23
|
+
|
|
24
|
+
- [#1102](https://github.com/skaile-ai/workspaces/pull/1102) [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f) Thanks [@mortegro](https://github.com/mortegro)! - Sources: a GitHub-URL lock entry counts as store-supplied only when a store lists the ref; otherwise `check`, `doctor`, `outdated` and `install` print the `register it again` sentence and fail (p1062). Re-adding a ref of a source after an upstream bump re-locks every entry of that source at one commit, so `install --locked` stays clean (p21). `source add --publisher B` is refused for a source registered as A also when the clone's `origin` differs from the registered URL (p722). A library renamed and renamed back leaves no interim name in the lock or the advice (p893). `source add|list|show|sync|remove` print one parse-error line on a `skaile.yaml` that does not parse (p1421). `library list` points at `skaile source sync` for a source clone whose directory is gone (p1423). A relative, absolute, symlinked or `file://` spelling of one local repository is one source (p618). A dead `sources:` entry no longer turns a fully restored `install --locked` into `Failed`, and the warning names the cause once (p1492). `search` shows the version `add` deploys for a source skill without a version, also outside a project (p855). A `sources:` clone is project-scoped: a project that does not declare it neither searches nor resolves it (p321). The publisher-less ref error of `store show` and `add` says how to find the publisher, not the dead `migrate-skaile-manifest` advice (p1493).
|
|
25
|
+
|
|
26
|
+
- [#1102](https://github.com/skaile-ai/workspaces/pull/1102) [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f) Thanks [@mortegro](https://github.com/mortegro)! - Upgrade safety (5.19.0 critique). `migrate assets --write` refuses two bundles or personas with the same final kind and normalised name (`a/q` and `b/q`, `my_b` and `my-b`) and writes nothing. `install` and `update` stop before they delete files a re-lock no longer ships (git-ignored files a CLI before 5.19.0 deployed) or overwrite a hand-edited rendered agent file no lock entry records; they name the files and need `--force` (`update` gains `--force`). `install --force` prints `Removed <file> (not part of <ref>)` for each deleted file. A 5.12.0 global record without `global_asset_harnesses:` and exactly one existing copy is limited to that harness on the first `install --global`. `library show` and `library default` refuse a registered library whose directory is gone; `library list` marks it `(directory missing)`.
|
|
27
|
+
|
|
28
|
+
### Patch Changes
|
|
29
|
+
|
|
30
|
+
- [#1097](https://github.com/skaile-ai/workspaces/pull/1097) [`2b6b691`](https://github.com/skaile-ai/workspaces/commit/2b6b691149300bb17360ae60e30b77b99e70cce4) Thanks [@mortegro](https://github.com/mortegro)! - A contract asset now ships its whole directory, subfolders included. The contract file filter
|
|
31
|
+
(`contractProvider.defaultFileFilter` and its virtual-tree twin) took only the files next to
|
|
32
|
+
`CONTRACT.md`, while the lock walker recorded and hashed every file under that directory: a
|
|
33
|
+
contract such as `tree/CONTRACT.md` with its nodes in `tree/01_meta/…` was locked with those files
|
|
34
|
+
but, wherever the deploy fell back to the kind's filter, installed without them, and its discovery
|
|
35
|
+
hash (library index, store, GitHub trees) differed from the lock's. Filter, deploy, lock and hash now
|
|
36
|
+
use one file set: the manifest's directory recursively, minus the non-asset names (`.DS_Store`,
|
|
37
|
+
`node_modules/`, …). A contract without subfolders keeps its files and hash.
|
|
38
|
+
A contract installed before this release with only its top-level files now reports drift until it
|
|
39
|
+
is reinstalled (`skaile install` again ships the subfolders).
|
|
40
|
+
|
|
41
|
+
- [#1102](https://github.com/skaile-ai/workspaces/pull/1102) [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f) Thanks [@mortegro](https://github.com/mortegro)! - Docs for 5.19.0 findings: CURRICULUM.md teaches `skaile store search`, `store show` and `add`; `agent-config:` in every example; the `outdated` pin rule, kindless refs, the omp ignore rule, the `serve` probe routes and the instance checks are written down. The malformed-ref error of `add` and `install` now gives `skill:@skaile-ai/use-exa#1.0.0` as its example.
|
|
42
|
+
|
|
43
|
+
- Updated dependencies [[`2b6b691`](https://github.com/skaile-ai/workspaces/commit/2b6b691149300bb17360ae60e30b77b99e70cce4), [`2b6b691`](https://github.com/skaile-ai/workspaces/commit/2b6b691149300bb17360ae60e30b77b99e70cce4), [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f), [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f), [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f), [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f), [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f), [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f), [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f), [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f), [`196d16e`](https://github.com/skaile-ai/workspaces/commit/196d16e8e09c7ec1e8811a6d65b36ff0b3eb117f)]:
|
|
44
|
+
- @skaile/workspaces@6.1.0
|
|
45
|
+
|
|
46
|
+
## 6.0.0
|
|
47
|
+
|
|
48
|
+
### Major Changes
|
|
49
|
+
|
|
50
|
+
- [#1100](https://github.com/skaile-ai/workspaces/pull/1100) [`3a3aa72`](https://github.com/skaile-ai/workspaces/commit/3a3aa72a169904ebc758a7d029ffa95b2c8178a7) Thanks [@mortegro](https://github.com/mortegro)! - Harness replaces driver. The coding-agent runtime adapters (omp, claude-sdk, codex, gemini, qwen, opencode, goose, continue, echo) are now called harnesses everywhere: `AgentDriver` is `AgentHarness`, `DriverInfo` is `HarnessInfo`, `createDriver`/`listDrivers` are `createHarness`/`listHarnesses`, the subpaths `@skaile/workspaces/drivers/<id>` are `@skaile/workspaces/harnesses/<id>`, `@skaile/workspaces/core/driver-targets` is `@skaile/workspaces/core/harness-targets` (its `DriverTarget` union is `HarnessName`), the plugin-registry kind `"driver"` is `"harness"`, the wire fields `driverSessionId`/`driverSessionIdAtCompaction` are `harnessSessionId`/`harnessSessionIdAtCompaction`, `ResolvedAgentConfig.driver` is `harness`, and the event protocol is 5.0.0. The CLI flag is `--harness` and the `skaile.yaml` agent-config / settings key is `harness`. Connector and mount `driver` is unchanged. See MIGRATION.md.
|
|
51
|
+
|
|
52
|
+
### Patch Changes
|
|
53
|
+
|
|
54
|
+
- Updated dependencies [[`3a3aa72`](https://github.com/skaile-ai/workspaces/commit/3a3aa72a169904ebc758a7d029ffa95b2c8178a7)]:
|
|
55
|
+
- @skaile/workspaces@6.0.0
|
|
56
|
+
|
|
3
57
|
## 5.19.0
|
|
4
58
|
|
|
5
59
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -7,11 +7,11 @@ npx skaile-cli install skill:@admin/agent-browser#0.0.0
|
|
|
7
7
|
npx skaile-cli --help
|
|
8
8
|
```
|
|
9
9
|
|
|
10
|
-
`skaile run` and `skaile repl` start a
|
|
11
|
-
optional SDK that `skaile-cli` does not install. Install the one for your
|
|
10
|
+
`skaile run` and `skaile repl` start a harness (a harness). Two of the harnesses need an
|
|
11
|
+
optional SDK that `skaile-cli` does not install. Install the one for your harness
|
|
12
12
|
in the project before the first `run` or `repl`:
|
|
13
13
|
|
|
14
|
-
|
|
|
14
|
+
| Harness | Install |
|
|
15
15
|
|---|---|
|
|
16
16
|
| `claude-sdk` (default) | `npm i @anthropic-ai/claude-agent-sdk` (with Bun: `bun add @anthropic-ai/claude-agent-sdk`) |
|
|
17
17
|
| `codex` | `npm i @openai/codex-sdk` (0.160 or newer; with Bun: `bun add @openai/codex-sdk`) |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skaile-cli",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "6.1.0",
|
|
4
4
|
"description": "Run the Skaile CLI via `npx skaile-cli` — thin wrapper around @skaile/workspaces",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"asset-manager"
|
|
26
26
|
],
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@skaile/workspaces": "
|
|
28
|
+
"@skaile/workspaces": "6.1.0"
|
|
29
29
|
},
|
|
30
30
|
"publishConfig": {
|
|
31
31
|
"access": "public"
|