@hasna/skills 0.10.76 → 0.10.78

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/README.md CHANGED
@@ -80,7 +80,11 @@ Stations provisioned with a fleet key keep using the internal gateway
80
80
  no recorded URL (the Keychain item, `HASNA_SKILLS_API_KEY` alone, or an older
81
81
  credentials file) always stays on that gateway and is never sent anywhere else.
82
82
  The gateway has no interactive login service, so on such a station
83
- `skills login` says so, sends nothing, and names the credential to unset first.
83
+ `skills login` says so and sends nothing. A stored gateway credential or vault
84
+ reference is preserved even with `--url`. Use a separate credential profile for
85
+ customer sign-in: `skills --profile skillsmd login`. Later product commands use that
86
+ profile too, for example `skills --profile skillsmd whoami --json`; fleet
87
+ commands keep their original configuration.
84
88
  Obtain a workspace API key through your administrator's provisioning process
85
89
  and configure it using the [credential resolution](#credentials) below. Check
86
90
  the selected identity and available capabilities before syncing:
@@ -2026,6 +2030,14 @@ Stable command shapes:
2026
2030
  snapshot plan.
2027
2031
  - MCP registration: `mcp --register <agent> --json` returns
2028
2032
  `{ "registered": number, "results": [...] }`.
2033
+ Claude re-registration updates only `mcpServers.skills` in the active user
2034
+ `.claude.json` (respecting `CLAUDE_CONFIG_DIR` and an active legacy
2035
+ `.config.json`). Before changing an existing file it preserves and reads back
2036
+ a mode-0600 sibling `.skills-mcp-<id>.backup`. A competing native config lock
2037
+ or a changed config refuses the update; retry after the other writer finishes.
2038
+ A native policy or unknown refusal also fails closed. Updating an existing
2039
+ entry requires Claude's exact admitted duplicate-name refusal; configuring
2040
+ before CLI installation is supported only when the executable is missing.
2029
2041
 
2030
2042
  ## Query a caller-owned catalog
2031
2043
 
@@ -2272,6 +2284,15 @@ skills mcp --register claude # Auto-register with Claude Code
2272
2284
  skills mcp --register all # Register with all supported agents
2273
2285
  ```
2274
2286
 
2287
+ Register from the same credential profile you use for the product, for example
2288
+ `skills --profile customer setup agents`. Registrations retain that profile and
2289
+ any invocation-specific API origin, including
2290
+ `skills setup --api-url <origin> agents`, and start `skills-mcp --stdio`. Supported configuration-home overrides
2291
+ are retained so the later process resolves the same credential files. Keys,
2292
+ sessions and vault values are never copied into agent configuration. With no
2293
+ selectors, the MCP process keeps its usual credential resolution. Existing
2294
+ credential-to-origin checks still refuse a key bound to a different instance.
2295
+
2275
2296
  ## Skills API
2276
2297
 
2277
2298
  Use a named profile for each independently operated instance. A commercial Skills instance
@@ -2342,6 +2363,8 @@ current version UUID (or `--expect-empty`). Request a code with `auth signup`
2342
2363
  first, then enter it over stdin; do not put verification codes in shell history.
2343
2364
 
2344
2365
  ```sh
2366
+ skills --profile customer publication create my-skill --display-name "My skill" \
2367
+ --email you@example.com --code-stdin --confirm --json
2345
2368
  skills --profile customer publication publish ./my-skill \
2346
2369
  --skill-id <skill-uuid> --expect-empty --recovery-dir "$PWD/publication-receipt" \
2347
2370
  --email you@example.com --code-stdin --confirm --json
@@ -2349,6 +2372,22 @@ skills --profile customer publication status --recovery-dir "$PWD/publication-re
2349
2372
  --email you@example.com --code-stdin --json
2350
2373
  ```
2351
2374
 
2375
+ `publication create` creates an empty private skill and returns its `id` for
2376
+ `publication publish --skill-id`. It requires Pro and fresh interactive session
2377
+ verification; an API key cannot create or publish a private skill. Use
2378
+ `--visibility team` for a team skill. Slugs use lowercase kebab-case (at most
2379
+ 128 characters), display names are nonempty (at most 256 characters), and
2380
+ descriptions are limited to 8192 UTF-8 bytes. JSON returns only validated IDs,
2381
+ the slug, visibility and source type, bound to the selected workspace. Creation
2382
+ does not write a recovery directory or save the session. If its result is
2383
+ uncertain, run `skills --profile customer info my-skill --remote --json` on
2384
+ the same workspace to recover its validated `id`, then use that ID with
2385
+ `publication publish --skill-id`. `list --remote --json` also includes server
2386
+ UUIDs when supplied. Newly created rows with no category display as `Remote`.
2387
+ Do not repeat creation to recover a lost result; the command never retries its
2388
+ create POST automatically. The selected profile, origin and credential files
2389
+ are captured before code entry; a change during that wait refuses the action.
2390
+
2352
2391
  Without an enrolled named profile, also supply the observed `--user-id` and
2353
2392
  `--membership-id`. `publication resume` and `publication cancel` use the same
2354
2393
  recovery directory, fresh verification, and `--confirm`. The directory must be
@@ -2366,7 +2405,10 @@ server's current boolean capability; it does not authorize an individual run.
2366
2405
 
2367
2406
  The SDK exports `RemotePrivatePublicationsClient` through both the root and
2368
2407
  `./sdk`; `RemoteSkillsAuthClient.openPrivatePublications` creates one from fresh
2369
- workspace verification. The shared `preparePrivatePublication`,
2408
+ workspace verification. Call its `createSkill({ slug, displayName, confirm: true })`
2409
+ with optional `description` and `visibility` to obtain the validated skill ID.
2410
+ `CreatePrivateSkillInput` and `CreatedPrivateSkill` are exported by both entry
2411
+ points. The shared `preparePrivatePublication`,
2370
2412
  `continuePrivatePublication`, `inspectPrivatePublication`, and
2371
2413
  `readPrivatePublicationRecovery` functions implement the same durable workflow.
2372
2414
  MCP exposes `publish_private_skill`, `get_private_publication`,
@@ -3318,6 +3360,6 @@ membership too; an executable digest does not prove dynamic backend behavior or
3318
3360
  native adoption. These captures read files and never launch a native consumer.
3319
3361
 
3320
3362
 
3321
- Codex cache witnesses migrate separately through `skills hook rebind-cache --agent codex`. Preview requires the exact current policy and configuration SHA-256 values. Name each reviewed remote app-only parent with `--app-only-parent`; name each already reviewed native `mcp_tool` parent with `--reviewed-hook-parent`. Hook parents require exact enrolled manifest and hook bytes. When the owning installer created a remote-install receipt, its exact schema, identity and bytes are required. A local marketplace install with no receipt is accepted only when the exact full marketplace source is already enrolled and the unchanged Codex settings enable that exact plugin identity. The complete cache census refuses unknown parents, cache-member aliases, new skills, direct hooks selecting cache inputs, and changed app/MCP/hook/receipt or marketplace capabilities. Reviewed whole Codex root aliases keep their existing identity/CAS guards; hook selection through either the alias or canonical cache path is refused. Commands containing the direct `plugins/cache` selector are conservatively refused, including HOME, tilde and relative spellings; no shell evaluation is performed. App-only bootstrap verifies the old full manifest and receipt sources, then explicitly reviews current app capabilities; it does not claim those app bytes were historically witnessed.
3363
+ Codex cache witnesses migrate separately through `skills hook rebind-cache --agent codex`. Preview requires the exact current policy and configuration SHA-256 values. Name each reviewed remote app-only parent with `--app-only-parent`; name each already reviewed native `mcp_tool` parent with `--reviewed-hook-parent`. Hook parents require exact enrolled manifest and hook bytes. When the owning installer created a remote-install receipt, its exact schema, identity and bytes are required. A local marketplace install with no receipt is accepted only when the exact full marketplace source is already enrolled and the unchanged Codex settings enable that exact plugin identity. The complete cache census refuses unknown parents, cache-member aliases, new skills, direct hooks selecting cache inputs, and changed app/MCP/hook/receipt or marketplace capabilities. It also refuses every capability location Codex reads in a plugin version root that the witness does not bind (the Agent Plugins root `plugin.json`, `.claude-plugin` and `.cursor-plugin` manifests, a root `hooks.json`, `commands/` and `agents/` directories, and a skill document not spelled exactly `SKILL.md`), compared without regard to case; the vendor-refresh guard reads the same list. A semantic binding captured by an earlier release is checked against this census at every guard run, so one of these paths makes it refuse until a fresh discovery review. Reviewed whole Codex root aliases keep their existing identity/CAS guards; hook selection through either the alias or canonical cache path is refused. Commands containing the direct `plugins/cache` selector are conservatively refused, including HOME, tilde and relative spellings; no shell evaluation is performed. App-only bootstrap verifies the old full manifest and receipt sources, then explicitly reviews current app capabilities; it does not claim those app bytes were historically witnessed.
3322
3364
 
3323
3365
  Review the returned semantic cache digest, then repeat with `--expected-cache-witness-sha256 <digest> --apply`. The owning apply path preserves/readbacks the original policy, recomputes the whole plan, compares policy/config/cache preimages, writes only the Skills policy, and verifies the resulting consumer. Historical directory hashes and source rows remain retained as provenance; this command cannot reconstruct an unavailable old directory tree or waive an ancestor directory containing unrelated inputs. Equivalent version materializations and inert assets then leave the new Codex-specific witness unchanged. Every other discovery source, directory, settings witness, native control and session pin stays under its existing contract. Settings and cache upgrades remain independent; neither silently repairs drift in the other.