@hasna/skills 0.10.65 → 0.10.67
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 +23 -1
- package/bin/index.js +365 -85
- package/bin/mcp.js +264 -43
- package/bin/migrate.js +1 -1
- package/bin/server.js +1 -1
- package/bin/worker.js +1 -1
- package/dist/index.js +333 -53
- package/dist/lib/agent-discovery.d.ts +3 -2
- package/dist/lib/agent-integration.d.ts +2 -0
- package/dist/lib/codex-semantic-cache-witness.d.ts +23 -0
- package/dist/lib/skillinfo.d.ts +12 -2
- package/dist/runtime-prerequisites.js +37 -3
- package/dist/sdk/index.d.ts +1 -0
- package/dist/sdk/index.js +345 -64
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2534,6 +2534,28 @@ untrusted byte entries, not arbitrary JavaScript proxies or hostile host code.
|
|
|
2534
2534
|
`ContentHashInputError` reports fixed invalid-input, limit, abort or timeout codes
|
|
2535
2535
|
without including file contents or paths in its messages.
|
|
2536
2536
|
|
|
2537
|
+
### Requirements from explicit content
|
|
2538
|
+
|
|
2539
|
+
`@hasna/skills/sdk` exports `getSkillRequirementsFromContent`, the parser behind
|
|
2540
|
+
`skills requires`, for content the caller already holds, such as verified
|
|
2541
|
+
bundle entries:
|
|
2542
|
+
|
|
2543
|
+
```ts
|
|
2544
|
+
import { getSkillRequirementsFromContent, type SkillMeta, type SkillRequirements } from "@hasna/skills/sdk";
|
|
2545
|
+
|
|
2546
|
+
declare const meta: SkillMeta | undefined; // the skill's catalog record, if known
|
|
2547
|
+
const requirements: SkillRequirements = getSkillRequirementsFromContent(
|
|
2548
|
+
"write-brief", [skillMd, readme, envExample], packageJson.dependencies, meta);
|
|
2549
|
+
// { envVars, systemDeps, cliCommand: "skills run write-brief", dependencies }
|
|
2550
|
+
```
|
|
2551
|
+
|
|
2552
|
+
The result depends only on the arguments. It reads no registry, file,
|
|
2553
|
+
environment, install state or network, and does not change its inputs; the
|
|
2554
|
+
returned `dependencies` is the object you passed. When `meta.tags` includes
|
|
2555
|
+
`premium` or `remote`, the skill is treated as hosted: provider keys such as
|
|
2556
|
+
`OPENAI_API_KEY` are omitted, `SKILLS_API_KEY` and `SKILL_API_KEY` are dropped,
|
|
2557
|
+
and `HASNA_SKILLS_API_KEY` is listed.
|
|
2558
|
+
|
|
2537
2559
|
## Invitation email recovery
|
|
2538
2560
|
|
|
2539
2561
|
An existing account with no usable membership can explicitly recover access by
|
|
@@ -2788,6 +2810,6 @@ all changes outside V5 refuse. The guarded upgrade changes policy only, preserve
|
|
|
2788
2810
|
native settings, other witnesses and session pins, and revalidates before apply.
|
|
2789
2811
|
|
|
2790
2812
|
|
|
2791
|
-
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`;
|
|
2813
|
+
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.
|
|
2792
2814
|
|
|
2793
2815
|
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.
|