@hasna/skills 0.10.75 → 0.10.77
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 +24 -3
- package/bin/index.js +733 -299
- package/bin/mcp.js +113 -16
- package/bin/migrate.js +1 -1
- package/bin/server.js +36 -33
- package/bin/worker.js +4 -1
- package/dist/index.js +496 -166
- package/dist/lib/agent-codex-trust.d.ts +4 -0
- package/dist/lib/agent-integration.d.ts +3 -3
- package/dist/lib/agent-sync.d.ts +6 -4
- package/dist/lib/auth-store.d.ts +1 -1
- package/dist/lib/codex-corpus-write.d.ts +47 -6
- package/dist/lib/codex-hook-rpc.d.ts +3 -0
- 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/home-adoption.d.ts +5 -5
- package/dist/lib/installer.d.ts +5 -3
- package/dist/lib/instance-credentials.d.ts +2 -0
- package/dist/lib/sign-in.d.ts +1 -1
- package/dist/runtime-prerequisites.js +1 -1
- package/dist/sdk/index.js +733 -405
- 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:
|
|
@@ -882,8 +886,25 @@ handshake alone does not establish those semantics. Admitting a release does not
|
|
|
882
886
|
admit its corpus: the transport still requires the existing native corpus
|
|
883
887
|
admission (see `docs/codex-corpus-writers.md`).
|
|
884
888
|
|
|
889
|
+
Upstream Codex builds that lack `corpus-admission-inspect`, such as 0.160.0 and
|
|
890
|
+
0.162.1, use an interim fallback instead: an exclusive Skills-owned lock at
|
|
891
|
+
`<realpath(dirname(codex home))>/.hasna/skills/codex-corpus-locks/`, outside the
|
|
892
|
+
Codex home and independent of data-root overrides, recorded as
|
|
893
|
+
`nativeAdmission: "unavailable"` with the probe record in every receipt. The
|
|
894
|
+
probe record identifies the selected executable file (for npm installs, the
|
|
895
|
+
launcher script), not the vendor binary it starts. Its guarantee is weaker.
|
|
896
|
+
Upstream Codex's own refresh writes are not coordinated with that lock, only
|
|
897
|
+
Skills writers exclude each other, and preimage checks refuse only the races they
|
|
898
|
+
detect. For a project-level `.codex`, or a symlinked `~/.codex`, the lock lives
|
|
899
|
+
under the target's parent, such as `<project>/.hasna/skills/codex-corpus-locks/`;
|
|
900
|
+
ignore that folder there. Probes run with a fresh, Skills-created `CODEX_HOME` in
|
|
901
|
+
`<Skills data root>/codex-probe-homes/`, removed after each probe.
|
|
902
|
+
The fallback is retired in the first release after the Harnesses
|
|
903
|
+
enrollment/inspect route is live for that build line.
|
|
904
|
+
|
|
885
905
|
The capture refuses an existing output file, writes mode `0600`, verifies the
|
|
886
|
-
exact bytes, and reports only version, directory, count, file path and SHA-256
|
|
906
|
+
exact bytes, and reports only version, directory, count, file path and SHA-256,
|
|
907
|
+
plus the admission record when the interim fallback applies.
|
|
887
908
|
Its safe catalog shape is `{version,cwd,skills,plugins}`; skills have
|
|
888
909
|
`{name,path,enabled,pluginId}` and plugins have
|
|
889
910
|
`{id,name,installed,enabled,localVersion}`. Older reviewed catalogs without
|
|
@@ -3301,6 +3322,6 @@ membership too; an executable digest does not prove dynamic backend behavior or
|
|
|
3301
3322
|
native adoption. These captures read files and never launch a native consumer.
|
|
3302
3323
|
|
|
3303
3324
|
|
|
3304
|
-
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.
|
|
3325
|
+
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.
|
|
3305
3326
|
|
|
3306
3327
|
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.
|