@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 +49 -0
- package/lib/core.mjs +10 -1
- package/package.json +2 -1
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)
|
|
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.
|
|
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",
|