@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 +45 -3
- package/bin/index.js +748 -339
- package/bin/mcp.js +200 -32
- package/bin/migrate.js +1 -1
- package/bin/server.js +36 -33
- package/bin/worker.js +4 -1
- package/dist/cli/commands/runtime-mcp.d.ts +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +113 -21
- package/dist/lib/auth-store.d.ts +1 -1
- package/dist/lib/codex-plugin-capability-paths.d.ts +31 -0
- package/dist/lib/credential-profile-command.d.ts +5 -0
- package/dist/lib/fleet-credentials.d.ts +11 -5
- package/dist/lib/instance-credentials.d.ts +2 -0
- package/dist/lib/mcp-registration-environment.d.ts +2 -0
- package/dist/lib/private-publication-customer.d.ts +6 -2
- package/dist/lib/registry-types.d.ts +2 -0
- package/dist/lib/remote-private-publications.d.ts +22 -0
- package/dist/lib/sign-in.d.ts +1 -1
- package/dist/runtime-prerequisites.js +3 -2
- package/dist/sdk/index.d.ts +1 -1
- package/dist/sdk/index.js +215 -127
- package/package.json +1 -1
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
|
|
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.
|
|
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.
|