@hasna/skills 0.10.59 → 0.10.61

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.
@@ -0,0 +1,11 @@
1
+ export declare const LEGACY_PINNED_LAUNCHER_SCHEMA = "hasna-skills-pinned-launcher-v1";
2
+ export declare function renderLegacyPinnedLauncher(binding: {
3
+ runtime: string;
4
+ cwd: string;
5
+ entry: string;
6
+ }): string;
7
+ export declare const SERVER_LAUNCHER_ENV_NAMES: readonly ["DATABASE_URL"];
8
+ export declare const STORAGE_LOCATOR_ENV_NAMES: readonly ["DATABASE_URL", "HASNA_SKILLS_DATABASE_URL", "SKILLS_DATABASE_URL"];
9
+ export declare function isStorageLocatorEnvironmentName(name: string): boolean;
10
+ /** The same deny rule used in V2 client's JS projection and shell projection. */
11
+ export declare const CLIENT_LAUNCHER_STORAGE_DENY_AWK = " if (name == \"DATABASE_URL\" || name == \"HASNA_SKILLS_DATABASE_URL\" || name == \"SKILLS_DATABASE_URL\") continue";
@@ -257,6 +257,32 @@ Installed consumers can use the public `captureClaudeProspectiveCandidateClosure
257
257
  and `hashClaudePluginManifest` exports to prepare the exact digests without
258
258
  copying the package's hashing algorithms.
259
259
 
260
+ ### Claude installer witness CLI
261
+
262
+ The installed Skills command exposes a fixed read-only bridge for installer
263
+ evidence:
264
+
265
+ ```text
266
+ skills hook capture-claude-installer --request /absolute/request.json --json
267
+ ```
268
+
269
+ The UTF-8 request is a bounded JSON object with schema
270
+ `skills.claude-installer-capture/v1`, the exact configured `commandPath`, one
271
+ fixed `operation` (`settings`, `marketplace-registry`, `managed-plugin-registry`,
272
+ `path-bytes`, `discovery-directories`, `plugin-manifest`, or `candidate`), and
273
+ only that operation's documented inputs. The result uses
274
+ `skills.claude-installer-capture-result/v1` and contains a Skills producer
275
+ receipt plus the selected existing witness result. Candidate manifests include
276
+ their plugin name, canonical path, `hashMode: "claude-plugin-manifest-v1"`, and
277
+ SHA-256; the closure and discovery digests use the existing Skills algorithms.
278
+ The command verifies the configured command resolves to this installed
279
+ `@hasna/skills` producer and rechecks producer identity around capture.
280
+
281
+ This command only captures and validates source witnesses. It does not invoke
282
+ Claude, install plugins, mutate settings or policy, authorize a candidate, or
283
+ establish installer atomicity or crash recovery. Input refusals identify the
284
+ fixed field or operation and its accepted form without echoing request contents.
285
+
260
286
  ## Reviewed plugin-hook attestation scope
261
287
 
262
288
  A reviewed discovery input carries `pluginHooks: "reviewed-no-skill-injection"`.
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/skills",
3
- "version": "0.10.59",
3
+ "version": "0.10.61",
4
4
  "description": "Skills library for AI coding agents",
5
5
  "type": "module",
6
6
  "bin": {
@@ -37,6 +37,7 @@
37
37
  "!dist/test-preload.d.ts",
38
38
  "!dist/platform",
39
39
  "bin/",
40
+ "native/kernel-lock-acl-darwin",
40
41
  "migrations/",
41
42
  "docs/skill-standard.md",
42
43
  "docs/plugin-admission.md",
@@ -50,8 +51,8 @@
50
51
  "types": "./dist/index.d.ts",
51
52
  "scripts": {
52
53
  "clean": "rm -rf bin/ dist/",
53
- "build": "bun run clean && bun build --external @hasna/contracts/kernel-lock ./src/cli/index.tsx --outdir ./bin --target bun && bun build --external @hasna/contracts/kernel-lock ./src/mcp/index.ts --outfile ./bin/mcp.js --target bun && bun build --external @hasna/contracts/kernel-lock ./src/server/index.ts --outfile ./bin/server.js --target bun && bun build --external @hasna/contracts/kernel-lock ./src/server/worker.ts --outfile ./bin/worker.js --target bun && bun build --external @hasna/contracts/kernel-lock ./src/server/migrate.ts --outfile ./bin/migrate.js --target bun && bun build --external @hasna/contracts/kernel-lock ./src/server/maintenance.ts --outfile ./bin/maintenance.js --target bun && bun build --external @hasna/contracts/kernel-lock ./src/index.ts ./src/storage.ts ./src/sdk/index.ts ./src/admin-contract.ts --outdir ./dist --target bun && tsc --emitDeclarationOnly --declaration --outDir dist",
54
- "build:js": "rm -rf dist && bun build --external @hasna/contracts/kernel-lock ./src/index.ts ./src/storage.ts ./src/sdk/index.ts ./src/admin-contract.ts --outdir ./dist --target bun && tsc --emitDeclarationOnly --declaration --outDir dist",
54
+ "build": "bun run clean && bun build --external @hasna/contracts/kernel-lock ./src/cli/index.tsx --outdir ./bin --target bun && bun build --external @modelcontextprotocol/sdk ./src/mcp/index.ts --outfile ./bin/mcp.js --target bun && bun build --external @hasna/contracts/kernel-lock ./src/server/index.ts --outfile ./bin/server.js --target bun && bun build --external @hasna/contracts/kernel-lock ./src/server/worker.ts --outfile ./bin/worker.js --target bun && bun build --external @hasna/contracts/kernel-lock ./src/server/migrate.ts --outfile ./bin/migrate.js --target bun && bun build --external @hasna/contracts/kernel-lock ./src/server/maintenance.ts --outfile ./bin/maintenance.js --target bun && bun build ./src/index.ts ./src/storage.ts ./src/sdk/index.ts ./src/admin-contract.ts --outdir ./dist --target bun && tsc --emitDeclarationOnly --declaration --outDir dist && bun scripts/stage-kernel-lock-assets.ts",
55
+ "build:js": "rm -rf dist && bun build ./src/index.ts ./src/storage.ts ./src/sdk/index.ts ./src/admin-contract.ts --outdir ./dist --target bun && tsc --emitDeclarationOnly --declaration --outDir dist && bun scripts/stage-kernel-lock-assets.ts",
55
56
  "test": "bun test --timeout 30000",
56
57
  "dev": "bun run ./src/cli/index.tsx",
57
58
  "dev:watch": "bun --watch run ./src/cli/index.tsx",