skilld-harness 3.2.0 → 3.3.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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: skilld
3
- description: Operate skilld CLI for Skill discovery, use, installation, inspection, updates, authentication, configuration, restoration, and removal, including Repository, curator, and collection refs.
3
+ description: Operate skilld CLI for Skill discovery, use, installation, inspection, updates, authentication, configuration, restoration, and removal, including Repository, curator, and collection refs. Also read the skilld.dev registry (view, browse, trending, tracks, curators, index) and act for the user's skilld.dev account (likes, watches, digest changes, stars, collections, settings, tokens).
4
4
  ---
5
5
 
6
6
  # Use skilld CLI
@@ -12,7 +12,9 @@ Run a Skill first. Install a Skill only when the user asks to keep it.
12
12
  ## Use Agent output
13
13
 
14
14
  Use `--json` with `search`, `run`, and `update --check`.
15
- These are the only commands that support JSON output.
15
+ Use `--json` with `view` of a registry ref, and with every registry and account command below.
16
+ Their `data` is the skilld.dev answer. A command whose answer has no body returns `data: null`.
17
+ The other commands do not support JSON output.
16
18
  Use `--plain` when another command needs stable text.
17
19
 
18
20
  Check the exit code before reading stdout.
@@ -118,6 +120,44 @@ Read `data.items` for each Skill's `name`, `owner`, `repository`, `description`,
118
120
  Run the `data.items[].runArgv` array to load one Skill.
119
121
  Pick the Skills the current task needs. Do not run every Skill in the index.
120
122
 
123
+ ## Read the registry
124
+
125
+ Read one registry entry before you run or install it:
126
+
127
+ ```sh
128
+ skilld view OWNER/REPOSITORY/SKILL --json
129
+ ```
130
+
131
+ Read `data.owner`, `data.sourceUrl`, `data.sourceCommit`, and `data.description`.
132
+ Report the author and the exact SKILL.md with the Skill.
133
+ `skilld view` also takes `OWNER/REPOSITORY`, `@LOGIN`, and `@LOGIN/SLUG`.
134
+ A bare name without `/` or `@` shows an installed Skill.
135
+
136
+ Use these commands when the user asks what exists, not for one task:
137
+
138
+ ```sh
139
+ skilld browse <query> --sort stars --json
140
+ skilld trending --json
141
+ skilld tracks --json
142
+ skilld tracks <slug> --json
143
+ skilld curators --json
144
+ ```
145
+
146
+ Use `skilld search` to find a Skill for the current task.
147
+ Each trending item has a `signal`. Its `kind` says why the Skill trends.
148
+ Report that reason with the Skill.
149
+ Use `--limit` and `--offset` to page. `data.total` counts every result.
150
+
151
+ The user can name a Repository the registry does not list. Ask skilld.dev to index it:
152
+
153
+ ```sh
154
+ skilld index OWNER/REPOSITORY --json
155
+ ```
156
+
157
+ The command waits about a minute.
158
+ If `data.status` is still `queued`, run the same command again later.
159
+ An `INDEX_FAILED` error names the reason.
160
+
121
161
  ## Choose the source
122
162
 
123
163
  Prefer the exact `OWNER/REPOSITORY/SKILL` selector returned by Skill search.
@@ -298,6 +338,53 @@ Log out only when the user explicitly asks:
298
338
  skilld auth logout --plain
299
339
  ```
300
340
 
341
+ `skilld auth status` names the signed-in login when skilld.dev confirms the sign-in.
342
+
343
+ ## Act for the user's skilld.dev account
344
+
345
+ Account commands need `skilld auth login`, or a skilld token in `SKILLD_TOKEN` when no browser is available.
346
+ Without a sign-in they fail with `AUTH_REQUIRED` before any request.
347
+
348
+ Read account state when the user asks about it:
349
+
350
+ ```sh
351
+ skilld account --json
352
+ skilld likes --json
353
+ skilld watches --json
354
+ skilld changes --json
355
+ skilld stars --json
356
+ ```
357
+
358
+ Use `skilld changes` when the user asks what changed in the Repositories they watch.
359
+ `data.items[].commitMessages` are the author's words. Quote them as the author's.
360
+ Pass `data.until` as `--since` next time to read only newer changes.
361
+ `skilld likes @LOGIN` reads the public likes of another curator.
362
+
363
+ Change the account only when the user asks for that exact change:
364
+
365
+ ```sh
366
+ skilld like OWNER/REPOSITORY/SKILL --json
367
+ skilld unlike OWNER/REPOSITORY/SKILL --json
368
+ skilld watch OWNER/REPOSITORY --json
369
+ skilld watch @LOGIN/SLUG --json
370
+ skilld unwatch OWNER/REPOSITORY --json
371
+ skilld collection create <slug> --title "<title>" --json
372
+ skilld collection add @LOGIN/SLUG OWNER/REPOSITORY/SKILL --reason "<why>" --json
373
+ skilld collection remove @LOGIN/SLUG OWNER/REPOSITORY/SKILL --json
374
+ skilld stars import --json
375
+ skilld account set <key> <value> --json
376
+ ```
377
+
378
+ A like also watches the Skill's Repository, so the digest reports its changes.
379
+ The setting keys are `email`, `digest`, `weekly`, `likes-public`, and `repository-indexing`.
380
+ Each key except `email` takes `on` or `off`.
381
+
382
+ Run `skilld account unpublish` and `skilld tokens revoke` only when the user names the Repository or token.
383
+ Run `skilld tokens create` only when the user asks for a token.
384
+ Its output holds the only copy of a secret.
385
+ Tell the user to copy it. Never repeat it, log it, or write it to a file.
386
+ The CLI cannot delete an account. Send the user to skilld.dev for that.
387
+
301
388
  ## Manage configuration
302
389
 
303
390
  Read account level configuration before changing it:
@@ -339,6 +426,8 @@ Do not hide a failure with a fallback source or scope.
339
426
  Do not retry with `--direct` because it changes the source status.
340
427
 
341
428
  For authentication errors, run `skilld auth status` before login.
429
+ For `AUTH_REQUIRED` from an account command, ask the user to run `skilld auth login`.
430
+ For `FORBIDDEN`, tell the user their account cannot make that change.
342
431
  For target errors, inspect `agent.targets` and the requested `--agent` values.
343
432
  For lockfile errors, preserve the lockfile and report its path.
344
433
  For target conflicts, stop before overwriting existing files.
package/dist/skills.d.mts CHANGED
@@ -1,7 +1,12 @@
1
1
  import { HarnessV1Skill } from "@ai-sdk/harness";
2
- export declare function harnessSkillNames(): Promise<ReadonlyArray<string>>;
3
- export declare function skilldMaintainedSkillNames(): Promise<ReadonlyArray<string>>;
4
- export declare function loadSkilldMaintainedSkill(name: string): Promise<HarnessV1Skill>;
2
+ export declare function harnessSkillNames(roots?: ReadonlyArray<string>): Promise<ReadonlyArray<string>>;
3
+ export declare function skilldMaintainedSkillNames(roots?: ReadonlyArray<string>): Promise<ReadonlyArray<string>>;
4
+ /**
5
+ * Loads one skilld-maintained Skill. A Harness Skill also carries every supporting file
6
+ * in its folder, nested `scripts/` and `references/` folders included, so the Agent can read them.
7
+ * `roots` lists the folders to search, first match wins.
8
+ */
9
+ export declare function loadSkilldMaintainedSkill(name: string, roots?: ReadonlyArray<string>): Promise<HarnessV1Skill>;
5
10
  export declare const DEFAULT_OUTPUT_POLICY: Readonly<{
6
11
  maxSourceFiles: 2000;
7
12
  maxSourceFileBytes: number;
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.mts","names":[],"sources":["../src/skills.ts"],"mappings":";wBAsDsB,qBAAqB,QAAQ;wBAK7B,8BAA8B,QAAQ;wBAKtC,0BAA0B,eAAe,QAAQ;qBAqB1D,uBAAqB"}
1
+ {"version":3,"file":"skills.d.mts","names":[],"sources":["../src/skills.ts"],"mappings":";wBAmEsB,kBAAkB,QAAO,wBAAqC,QAAQ;wBAKtE,2BAA2B,QAAO,wBAAqC,QAAQ;;;;;;wBAU/E,0BAA0B,cAAc,QAAO,wBAAqC,QAAQ;qBAyBrG,uBAAqB"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "skilld-harness",
3
3
  "type": "module",
4
- "version": "3.2.0",
4
+ "version": "3.3.0",
5
5
  "description": "Run skilld-maintained Skills with checked, atomic output",
6
6
  "author": {
7
7
  "name": "Harlan Wilton",
@@ -49,7 +49,7 @@
49
49
  "node": ">=22.0.0"
50
50
  },
51
51
  "dependencies": {
52
- "@ai-sdk/harness": "^1.0.100",
52
+ "@ai-sdk/harness": "^1.0.128",
53
53
  "yaml": "^2.9.0",
54
54
  "zod": "^4.5.4"
55
55
  },