@rckflr/llms-skills 0.2.0 → 0.2.1

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/CHANGELOG.md ADDED
@@ -0,0 +1,49 @@
1
+ # Changelog
2
+
3
+ All notable changes to the [`@rckflr/llms-skills`](https://www.npmjs.com/package/@rckflr/llms-skills)
4
+ package. Format based on [Keep a Changelog](https://keepachangelog.com/); dates
5
+ are the npm publish dates.
6
+
7
+ ## [0.2.0] — 2026-07-10
8
+
9
+ ### Added
10
+ - **`memory <bundle-dir>` — the RAG-OKF builder.** Turns a directory of
11
+ [OKF 0.1](https://github.com/GoogleCloudPlatform/knowledge-catalog/blob/main/okf/SPEC.md)
12
+ concepts (`*.md` with `type`/`title` frontmatter; `index.md`/`log.md`
13
+ reserved) into a serverless RAG:
14
+ - a **byte-deterministic** BM25 snapshot (`minimemory-okf-v1`), pinned by
15
+ `snapshot_sha256` in the `skills-memory` line. Determinism requires
16
+ canonicalization: minimemory's export order comes from a Rust HashMap and
17
+ varies run to run — chunks are sorted by id and re-serialized, which is
18
+ what makes `--check`/CI content-addressing possible at all;
19
+ - three generated executable skills: `search_knowledge` (a **universal
20
+ template** — identical bytes for every publisher, so its `tool_sha256` is
21
+ a stable ecosystem-wide constant: audit once, attest once), `get_concept`
22
+ and `list_concepts` (concept metadata embedded at build time,
23
+ content-addressed);
24
+ - manifest wiring (`memory` block + `published` entries) so a plain
25
+ `publish` emits everything, and a `.gitattributes` pin
26
+ (`skills-index.snapshot -text`) so git CRLF conversion can never break
27
+ the published hash.
28
+ - `memory <bundle> --check` is the CI drift guard. Consumers need nothing
29
+ new: `@rckflr/mcpwasm` ≥ 0.4.0 verifies the snapshot and injects
30
+ `host.memorySearch` on both runtimes (covered by a real end-to-end test
31
+ against the published mcpwasm tarball).
32
+
33
+ ### Changed
34
+ - `@rckflr/minimemory` (~630 KB wasm BM25 engine) added as an
35
+ **optionalDependency**: installed by default, lazily imported by `memory`;
36
+ if omitted, `memory` fails with a clear message and every other command
37
+ works exactly as before (the CLI keeps zero hard dependencies).
38
+
39
+ ## [0.1.0] — 2026-07-10
40
+
41
+ ### Added
42
+ - Initial release: one-command publisher CLI for the llms.txt Skills
43
+ standard — `init` (scaffold SKILL.md + optional tool.js + manifest),
44
+ `publish [--check]` (sha256, `## Skills` into llms.txt,
45
+ `.well-known/agent-skills/index.json`, ed25519 signing), `validate`
46
+ (llms.txt + skills, local path or URL), `keygen`. Zero dependencies
47
+ (hashing and ed25519 via `node:crypto`); output **byte-identical** to the
48
+ reference Python generator (`scripts/generate.py`), enforced by
49
+ `cli/test.mjs` in CI.
package/lib/core.mjs CHANGED
@@ -30,7 +30,16 @@ export function parseFrontmatter(text) {
30
30
  const result = {};
31
31
  for (const line of body.split(/\r?\n/)) {
32
32
  const m = line.match(/^([a-zA-Z_][a-zA-Z0-9_-]*)\s*:\s*(.*)$/);
33
- if (m) result[m[1]] = m[2].trim().replace(/^"|"$/g, "");
33
+ if (m) {
34
+ let v = m[2].trim();
35
+ // strip one MATCHING pair of quotes (double or single) — real-world YAML
36
+ // frontmatter uses both (e.g. type: 'Concept'), and stripping only one
37
+ // style leaves quote characters inside the value.
38
+ if (v.length >= 2 && ((v[0] === '"' && v[v.length - 1] === '"') || (v[0] === "'" && v[v.length - 1] === "'"))) {
39
+ v = v.slice(1, -1);
40
+ }
41
+ result[m[1]] = v;
42
+ }
34
43
  }
35
44
  return result;
36
45
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rckflr/llms-skills",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "One-command publisher CLI for the llms.txt Skills standard: scaffold, hash, sign, and sync the ## Skills section + .well-known/agent-skills/index.json. Byte-identical to the reference Python generator; zero hard dependencies (BM25 knowledge snapshots via an optional wasm engine).",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -35,6 +35,7 @@
35
35
  "./memory": "./lib/memory.mjs"
36
36
  },
37
37
  "files": [
38
+ "CHANGELOG.md",
38
39
  "bin/llms-skills.mjs",
39
40
  "lib/core.mjs",
40
41
  "lib/memory.mjs",