@cairnkeep/cli 2.16.0 → 2.17.0
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 +24 -0
- package/README.md +1 -0
- package/docs/README.md +8 -0
- package/docs/agents.md +20 -0
- package/docs/context-intelligence.md +143 -0
- package/docs/context-packs.md +33 -0
- package/docs/domain-knowledge.md +29 -0
- package/docs/learning/CURRICULUM-MAP.md +3 -1
- package/docs/learning/FEATURE-GUIDE.md +22 -3
- package/docs/learning/README.md +1 -0
- package/docs/learning/lessons/L00-why-cairnkeep.md +1 -1
- package/docs/learning/lessons/L01-safe-trial.md +3 -3
- package/docs/learning/lessons/L02-installation.md +2 -2
- package/docs/learning/lessons/L03-first-project.md +1 -1
- package/docs/learning/lessons/L19-validated-skill-improvement.md +1 -1
- package/docs/learning/lessons/L20-mcp-tool-profiles.md +1 -1
- package/docs/learning/lessons/L21-context-packs.md +1 -1
- package/docs/learning/lessons/L22-native-windows.md +2 -2
- package/docs/learning/lessons/L23-guided-setup.md +1 -1
- package/docs/learning/lessons/L24-okf-exchange.md +1 -1
- package/docs/learning/lessons/L25-playbooks.md +1 -1
- package/docs/learning/lessons/L26-context-intelligence.md +180 -0
- package/docs/learning/tracks/evidence-and-evaluation.md +1 -0
- package/docs/learning/tracks/operator.md +1 -0
- package/docs/learning/tracks/practitioner.md +1 -0
- package/docs/learning/video-scripts/V26-context-intelligence.md +144 -0
- package/docs/operating.md +44 -0
- package/docs/privacy-and-data-flow.md +22 -0
- package/docs/storage.md +21 -0
- package/docs/work-evidence.md +14 -0
- package/examples/eval/bundled-fake.json +1 -1
- package/mcp-memory-server/dist/context-pack-cli.js +3 -1
- package/mcp-memory-server/dist/context-pack-retrieval.js +413 -0
- package/mcp-memory-server/dist/context-pack.js +171 -3
- package/mcp-memory-server/dist/domain-retrieval-provider.js +257 -0
- package/mcp-memory-server/dist/index.js +73 -387
- package/mcp-memory-server/dist/mcp-tool-catalog.js +2 -0
- package/mcp-memory-server/dist/memory-extraction.js +87 -0
- package/mcp-memory-server/dist/memory-proposal-cli.js +110 -0
- package/mcp-memory-server/dist/memory-proposal-schema.js +78 -0
- package/mcp-memory-server/dist/memory-proposal-store.js +273 -0
- package/mcp-memory-server/dist/platform-security.js +32 -26
- package/mcp-memory-server/dist/retrieval-benchmark.js +199 -0
- package/mcp-memory-server/dist/reviewed-memory-store.js +281 -0
- package/mcp-memory-server/dist/work-evidence-schema.js +17 -0
- package/mcp-memory-server/dist/work-evidence-store.js +57 -1
- package/mcp-memory-server/package.json +8 -1
- package/package.json +1 -1
- package/schemas/context-usage-receipt.schema.json +41 -0
- package/schemas/memory-proposal.schema.json +65 -0
- package/schemas/retrieval-benchmark.schema.json +64 -0
- package/scripts/cairn-cli.mjs +2 -0
- package/scripts/completion.sh +17 -6
- package/scripts/doctor.sh +4 -2
- package/scripts/test-completion.sh +8 -1
- package/scripts/test-doctor.sh +21 -0
- package/scripts/test-release-sbom.sh +3 -0
- package/scripts/test-windows-native.mjs +30 -0
- package/scripts/windows-platform.mjs +8 -5
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,30 @@ All notable user-facing changes are documented here. This project follows
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
## [2.17.0] - 2026-08-29
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Frozen, offline retrieval benchmark with substring and deterministic mock-
|
|
13
|
+
embedding goldens, quality/cost/latency metrics, mutation accounting, and
|
|
14
|
+
forbidden-result leakage checks.
|
|
15
|
+
- Progressive context-pack hierarchy and derived summary cache, the
|
|
16
|
+
`context_pack_tree` MCP tool, and opt-in hierarchical search detail and
|
|
17
|
+
sanitized explanation traces. Compatible flat content search remains the
|
|
18
|
+
default.
|
|
19
|
+
- Opt-in, privacy-preserving context-usage receipts linked to work evidence.
|
|
20
|
+
- Review-gated `cairn proposals create|list|show|apply|doctor` workflow for
|
|
21
|
+
promoting redacted trajectory candidates into reviewed durable memory.
|
|
22
|
+
- Provider-neutral domain retrieval with an explicitly gated, read-only
|
|
23
|
+
OpenViking adapter; AnythingLLM remains the default provider.
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
|
|
27
|
+
- Context-pack search can return stable result and chunk digests when requested,
|
|
28
|
+
without changing the default response shape.
|
|
29
|
+
- `cairn doctor` validates progressive context-cache records while preserving
|
|
30
|
+
immutable pack objects, project pins, and skill-approval authority.
|
|
31
|
+
|
|
8
32
|
## [2.16.0] - 2026-08-27
|
|
9
33
|
|
|
10
34
|
### Added
|
package/README.md
CHANGED
|
@@ -99,6 +99,7 @@ guides. In particular:
|
|
|
99
99
|
|
|
100
100
|
- [Quickstart](docs/quickstart.md)
|
|
101
101
|
- [For coding agents](docs/agents.md)
|
|
102
|
+
- [Context intelligence](docs/context-intelligence.md)
|
|
102
103
|
- [Operating guide](docs/operating.md)
|
|
103
104
|
- [Harness compatibility](docs/harness-compatibility.md)
|
|
104
105
|
- [Privacy and data flow](docs/privacy-and-data-flow.md)
|
package/docs/README.md
CHANGED
|
@@ -27,6 +27,14 @@ linked guides rather than the project landing page.
|
|
|
27
27
|
- [Validated skill improvement](skill-improvement.md) describes the reviewed,
|
|
28
28
|
measured, reversible path for changing a live skill.
|
|
29
29
|
|
|
30
|
+
## Context intelligence
|
|
31
|
+
|
|
32
|
+
- [Context intelligence](context-intelligence.md) connects progressive context-pack
|
|
33
|
+
retrieval, the frozen benchmark, usage receipts, review-gated proposals, and
|
|
34
|
+
the optional read-only OpenViking provider.
|
|
35
|
+
- [Immutable context packs](context-packs.md), [domain knowledge](domain-knowledge.md),
|
|
36
|
+
and [work evidence](work-evidence.md) document each boundary in depth.
|
|
37
|
+
|
|
30
38
|
## Operations, storage, and privacy
|
|
31
39
|
|
|
32
40
|
- [Operating Cairnkeep](operating.md) is the full CLI and configuration
|
package/docs/agents.md
CHANGED
|
@@ -139,6 +139,26 @@ and file digest. Even then, they are discoverable text through MCP—not copied
|
|
|
139
139
|
into a harness, automatically activated, or executed. A pack update invalidates
|
|
140
140
|
the old approval. See [Immutable context packs](context-packs.md).
|
|
141
141
|
|
|
142
|
+
## Progressive retrieval and reviewed-memory proposals
|
|
143
|
+
|
|
144
|
+
When `context_pack_tree` is available, inspect abstracts before requesting full
|
|
145
|
+
content. Use hierarchical search for broad questions, exact path/title retrieval
|
|
146
|
+
for known leaves, and `explain: true` only when the bounded selection trace helps
|
|
147
|
+
debug retrieval. Default flat search remains valid and compatible.
|
|
148
|
+
|
|
149
|
+
Stable result references are opt-in (`include_refs: true`). If the operator also
|
|
150
|
+
enables `context_usage_record`, record only whether the cited result was used;
|
|
151
|
+
never put prompts or content into digest fields. Treat recording as a mutation.
|
|
152
|
+
|
|
153
|
+
`cairn proposals create` may suggest reviewed-memory candidates from a stored,
|
|
154
|
+
redacted trajectory, but an agent must inspect the proposal and use
|
|
155
|
+
`cairn proposals apply DIGEST` explicitly. Never treat extraction output as
|
|
156
|
+
reviewed truth, auto-apply it, or work around a stale-source/base-memory failure.
|
|
157
|
+
|
|
158
|
+
The optional OpenViking provider changes only how `domain_knowledge_query`
|
|
159
|
+
retrieves external context. It does not replace Cairnkeep's memory, evidence,
|
|
160
|
+
pack, or authority model.
|
|
161
|
+
|
|
142
162
|
## Graceful fallback
|
|
143
163
|
|
|
144
164
|
Cairnkeep should never block ordinary engineering merely because optional
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
# Context intelligence
|
|
2
|
+
|
|
3
|
+
Cairnkeep can retrieve immutable project context progressively, measure retrieval
|
|
4
|
+
quality, record privacy-preserving usage evidence, and propose reviewed-memory
|
|
5
|
+
changes. These features keep the existing authority model: retrieval is an
|
|
6
|
+
observation; durable-memory changes require an explicit review and apply step.
|
|
7
|
+
|
|
8
|
+
## Progressive context-pack retrieval
|
|
9
|
+
|
|
10
|
+
Enable context packs for the process with `CAIRN_CONTEXT_PACKS=1`. The existing
|
|
11
|
+
`context_pack_list`, `context_pack_search`, and `context_pack_read` tools remain
|
|
12
|
+
available, and the default search remains the compatible flat, content-level
|
|
13
|
+
search. Two optional surfaces add progressive disclosure:
|
|
14
|
+
|
|
15
|
+
- `context_pack_tree` returns only enabled documents and approved skills, using
|
|
16
|
+
`abstract` or `overview` detail.
|
|
17
|
+
- `context_pack_search` accepts `strategy: "hierarchical"`,
|
|
18
|
+
`detail: "abstract" | "overview" | "content"`, and `explain: true`.
|
|
19
|
+
|
|
20
|
+
For example:
|
|
21
|
+
|
|
22
|
+
```json
|
|
23
|
+
{
|
|
24
|
+
"query": "release validation",
|
|
25
|
+
"strategy": "hierarchical",
|
|
26
|
+
"detail": "overview",
|
|
27
|
+
"explain": true,
|
|
28
|
+
"include_refs": true
|
|
29
|
+
}
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
Hierarchical search ranks pack, directory, and file summaries before reading
|
|
33
|
+
content. An exact path or title can bypass the hierarchy and select the matching
|
|
34
|
+
leaf directly. `explain` adds a bounded, sanitized decision trace. It never adds
|
|
35
|
+
hidden file content to the trace.
|
|
36
|
+
|
|
37
|
+
Abstracts and overviews are deterministic derived data. They are cached below
|
|
38
|
+
the pack base directory in `cache/context/`, outside immutable pack objects, and
|
|
39
|
+
are bound to the pack digest and exact visible-file set. `cairn doctor` validates
|
|
40
|
+
this cache and can remove invalid derived entries; it does not enable a pack or
|
|
41
|
+
approve a skill.
|
|
42
|
+
|
|
43
|
+
Visibility is unchanged: a document must belong to an enabled pack, while a
|
|
44
|
+
skill must also have a current project approval matching the pack digest, path,
|
|
45
|
+
and file digest. Updating a pack therefore invalidates its old skill approvals.
|
|
46
|
+
Pack SHA-256 digests establish integrity, not publisher authenticity.
|
|
47
|
+
|
|
48
|
+
## Retrieval benchmark
|
|
49
|
+
|
|
50
|
+
The repository includes a frozen synthetic benchmark with hierarchical files,
|
|
51
|
+
multiple versions, and a hidden skill. Positive retrieval cases report Hit@1,
|
|
52
|
+
Recall@5, and MRR; negative-only isolation cases report their count, pass rate,
|
|
53
|
+
and leaks separately. The report also covers relevant/irrelevant bytes, an
|
|
54
|
+
estimated token count, latency, network and filesystem mutations, and leakage
|
|
55
|
+
from disabled packs, unapproved skills, case-specific exclusions, or undeclared
|
|
56
|
+
result identities. Frozen substring and deterministic mock-embedding goldens
|
|
57
|
+
make regression checks offline and reproducible.
|
|
58
|
+
|
|
59
|
+
From a source checkout:
|
|
60
|
+
|
|
61
|
+
```sh
|
|
62
|
+
npm --prefix mcp-memory-server run build
|
|
63
|
+
npm --prefix mcp-memory-server run check:retrieval-benchmark
|
|
64
|
+
npm --prefix mcp-memory-server run benchmark:retrieval
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
The first command compiles the TypeScript sources. The second runs the contract
|
|
68
|
+
smoke test and checks the frozen golden. The third rebuilds and emits a current
|
|
69
|
+
report.
|
|
70
|
+
The benchmark is an engineering baseline, not a claim about every real project.
|
|
71
|
+
|
|
72
|
+
## Context-usage receipts
|
|
73
|
+
|
|
74
|
+
Search results can include stable references by setting `include_refs: true`.
|
|
75
|
+
Each result then has a `chunk_digest`, and the response has a `result_digest`.
|
|
76
|
+
With work evidence enabled, set `CAIRN_CONTEXT_USAGE=1` as the second consent
|
|
77
|
+
gate to expose the local-only `context_usage_record` MCP mutation, then record
|
|
78
|
+
whether a referenced result was used. The tool is not registered unless both
|
|
79
|
+
`CAIRN_WORK_EVIDENCE=1` and `CAIRN_CONTEXT_USAGE=1` are active:
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"task_digest": "<64-lowercase-hex-digest>",
|
|
84
|
+
"result_digest": "<64-lowercase-hex-digest>",
|
|
85
|
+
"outcome": "used"
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
`outcome` is `used`, `unused`, or `unknown`. The receipt links to the active work
|
|
90
|
+
evidence unless `evidence_id` is supplied explicitly. It stores digests and the
|
|
91
|
+
outcome, not the query, prompt, retrieved content, or model response. The tool is
|
|
92
|
+
a mutation, so the read-only MCP profile does not expose it. Receipts are strict,
|
|
93
|
+
idempotent links in the existing work-evidence store and follow its retention.
|
|
94
|
+
|
|
95
|
+
## Review-gated memory proposals
|
|
96
|
+
|
|
97
|
+
`cairn proposals` turns a stored, redacted trajectory into candidates for
|
|
98
|
+
reviewed durable memory. It never applies candidates during extraction:
|
|
99
|
+
|
|
100
|
+
```sh
|
|
101
|
+
cairn proposals create --session SESSION_ID --scope project --json
|
|
102
|
+
cairn proposals list --json
|
|
103
|
+
cairn proposals show PROPOSAL_DIGEST --json
|
|
104
|
+
cairn proposals apply PROPOSAL_DIGEST --json
|
|
105
|
+
cairn proposals doctor --json
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
`create` loads the named local trajectory, redacts it again before any configured
|
|
109
|
+
model call, and writes an immutable, digest-addressed proposal under
|
|
110
|
+
`.agentfs/memory-proposals/`. The digest binds the source, extraction, base memory,
|
|
111
|
+
and candidates. `apply` accepts that exact digest, rechecks source and base-memory
|
|
112
|
+
freshness, and then performs the reviewed-memory write atomically. A stale or
|
|
113
|
+
tampered proposal fails instead of being rebased or silently accepted.
|
|
114
|
+
|
|
115
|
+
Model extraction uses the existing `CAIRN_LLM_API_URL`, `CAIRN_LLM_API_KEY`, and
|
|
116
|
+
`CAIRN_LLM_EXTRACTION_MODEL` settings. No background hook creates or applies
|
|
117
|
+
proposals.
|
|
118
|
+
|
|
119
|
+
## Optional OpenViking retrieval provider
|
|
120
|
+
|
|
121
|
+
AnythingLLM remains the default domain-retrieval provider. OpenViking is an
|
|
122
|
+
optional, read-only adapter behind two explicit settings:
|
|
123
|
+
|
|
124
|
+
```sh
|
|
125
|
+
CAIRN_DOMAIN_RETRIEVAL_PROVIDER=openviking
|
|
126
|
+
CAIRN_OPENVIKING=1
|
|
127
|
+
CAIRN_OPENVIKING_BASE_URL=http://127.0.0.1:1933
|
|
128
|
+
# Optional:
|
|
129
|
+
CAIRN_OPENVIKING_API_KEY=...
|
|
130
|
+
CAIRN_OPENVIKING_TIMEOUT_MS=5000
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
The existing `domain_knowledge_query` tool keeps its schema. The adapter calls
|
|
134
|
+
only OpenViking's search endpoint; Cairnkeep does not import, sync, watch, delete,
|
|
135
|
+
or commit OpenViking data. Plain HTTP is accepted only for loopback hosts; other
|
|
136
|
+
hosts require HTTPS. Embedded URL credentials, redirects, oversized responses,
|
|
137
|
+
and invalid response shapes are rejected. Authenticated remote MCP deployment
|
|
138
|
+
also requires the separate `CAIRN_OPENVIKING_MCP_HTTP=1` consent flag.
|
|
139
|
+
|
|
140
|
+
OpenViking does not replace Cairnkeep. It can supply an external retrieval index;
|
|
141
|
+
Cairnkeep still owns project identity, reviewed memory, immutable context-pack
|
|
142
|
+
pins, tool authority, evidence, and approval boundaries. No OpenViking package or
|
|
143
|
+
service is required for the default Cairnkeep installation.
|
package/docs/context-packs.md
CHANGED
|
@@ -95,6 +95,39 @@ Authenticated HTTP deployments need the separate
|
|
|
95
95
|
project header. Pack digests prove integrity, not publisher authenticity.
|
|
96
96
|
Publisher signatures remain future work.
|
|
97
97
|
|
|
98
|
+
## Progressive hierarchy and stable result references
|
|
99
|
+
|
|
100
|
+
The default `context_pack_search` request remains flat content search, preserving
|
|
101
|
+
the established schema and response shape. Agents can opt into progressive
|
|
102
|
+
disclosure without changing pack contents:
|
|
103
|
+
|
|
104
|
+
```json
|
|
105
|
+
{
|
|
106
|
+
"query": "deployment rollback",
|
|
107
|
+
"strategy": "hierarchical",
|
|
108
|
+
"detail": "overview",
|
|
109
|
+
"explain": true,
|
|
110
|
+
"include_refs": true
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
`strategy` is `flat` or `hierarchical`; `detail` is `abstract`, `overview`, or
|
|
115
|
+
`content`. The optional trace is bounded and sanitized. `context_pack_tree`
|
|
116
|
+
returns the visible hierarchy at `abstract` or `overview` detail, optionally
|
|
117
|
+
limited by pack ID, `id@version`, or digest.
|
|
118
|
+
|
|
119
|
+
Summaries are deterministic derived cache entries below
|
|
120
|
+
`${CAIRN_PACK_BASE_DIR:-~/.cairnkeep/packs}/cache/context/`. They are bound to the
|
|
121
|
+
pack digest and visible-file-set digest, not stored in immutable objects, and can
|
|
122
|
+
be rebuilt without choosing an enabled version or granting approval. Search with
|
|
123
|
+
`include_refs: true` adds per-result `chunk_digest` values and a response-level
|
|
124
|
+
`result_digest` for optional usage receipts.
|
|
125
|
+
|
|
126
|
+
Only enabled documents and explicitly approved skills contribute to the tree,
|
|
127
|
+
summary cache, search results, or explanation trace. A skill approval remains
|
|
128
|
+
bound to project identity, pack digest, path, and file digest; a changed pack
|
|
129
|
+
digest cannot inherit it.
|
|
130
|
+
|
|
98
131
|
## Open Knowledge Format exchange
|
|
99
132
|
|
|
100
133
|
Use `cairn pack validate-okf` and `cairn pack import-okf` to consume OKF 0.1 or
|
package/docs/domain-knowledge.md
CHANGED
|
@@ -96,6 +96,35 @@ copy of the example JSON at the default user config path, or set
|
|
|
96
96
|
and state beside the script retain that legacy behavior. To customize the
|
|
97
97
|
implementation itself, set `CAIRN_ANYTHINGLLM_SYNC_SCRIPT` to the adapted copy.
|
|
98
98
|
|
|
99
|
+
## Retrieval providers
|
|
100
|
+
|
|
101
|
+
AnythingLLM remains the default. Selecting it explicitly is optional:
|
|
102
|
+
|
|
103
|
+
```sh
|
|
104
|
+
CAIRN_DOMAIN_RETRIEVAL_PROVIDER=anythingllm
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
OpenViking can instead back the existing read-only `domain_knowledge_query`
|
|
108
|
+
tool. It is deliberately double-gated and has no sync or write path:
|
|
109
|
+
|
|
110
|
+
```sh
|
|
111
|
+
CAIRN_DOMAIN_RETRIEVAL_PROVIDER=openviking
|
|
112
|
+
CAIRN_OPENVIKING=1
|
|
113
|
+
CAIRN_OPENVIKING_BASE_URL=http://127.0.0.1:1933
|
|
114
|
+
# CAIRN_OPENVIKING_API_KEY=...
|
|
115
|
+
# CAIRN_OPENVIKING_TIMEOUT_MS=5000
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Plain HTTP is limited to loopback. Use HTTPS for any other host. Credentials in
|
|
119
|
+
the URL, redirects, invalid response shapes, and oversized bodies are rejected.
|
|
120
|
+
Authenticated remote MCP use requires the additional explicit consent setting
|
|
121
|
+
`CAIRN_OPENVIKING_MCP_HTTP=1`.
|
|
122
|
+
|
|
123
|
+
This adapter queries `/api/v1/search/find` only. Cairnkeep does not synchronize
|
|
124
|
+
documents into OpenViking, start its service, or adopt its session and memory
|
|
125
|
+
model. OpenViking is optional external retrieval; Cairnkeep remains the authority
|
|
126
|
+
for reviewed memory, pack pins, approvals, evidence, and MCP profiles.
|
|
127
|
+
|
|
99
128
|
## Not using RAG?
|
|
100
129
|
|
|
101
130
|
Do nothing. The tools stay inert, cost nothing, and the rest of cairnkeep is
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Curriculum Coverage Map
|
|
2
2
|
|
|
3
|
-
**Baseline:** Cairnkeep 2.
|
|
3
|
+
**Baseline:** Cairnkeep 2.17.0
|
|
4
4
|
**Last reviewed:** 2026-08-19
|
|
5
5
|
|
|
6
6
|
This map prevents the course from drifting behind the product. It assigns each
|
|
@@ -41,6 +41,7 @@ been rehearsed.
|
|
|
41
41
|
| Pi local stdio memory bridge, trusted annotation details, and explicit lifecycle | L23 | L23 | Ready; Pi 0.84.1 validated minimum |
|
|
42
42
|
| OKF 0.1/0.2 validation/import, provenance, links, regressions, and reviewed 0.2 export | L24 | L24 | Ready; local/offline by default |
|
|
43
43
|
| Bounded project playbooks, generic memory retrieval guidance, enforcement, and private receipts | L25 | L25 | Ready; balanced/local by default; invocation requires runtime evidence; actor identity unverified |
|
|
44
|
+
| Progressive pack retrieval, frozen benchmark, context-usage receipts, review-gated memory proposals, optional provider adapter | L26 | V26 | Ready; default flat search and AnythingLLM remain compatible; OpenViking and receipt mutation are explicitly gated |
|
|
44
45
|
|
|
45
46
|
## Release Review
|
|
46
47
|
|
|
@@ -85,6 +86,7 @@ against `cairn help` so a new command cannot bypass a curriculum decision.
|
|
|
85
86
|
|---|---|
|
|
86
87
|
| `cairn bootstrap` | L03 compatibility challenge |
|
|
87
88
|
| `cairn setup` | L03 for Claude/Codex; advanced Pi lifecycle in L23 |
|
|
89
|
+
| `cairn proposals` | L26 |
|
|
88
90
|
| `cairn memory-server` | L02 |
|
|
89
91
|
| `cairn sync` | L02 |
|
|
90
92
|
| `cairn sync-pi` | L13 and L23 |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Cairnkeep feature guide
|
|
2
2
|
|
|
3
|
-
**Baseline:** Cairnkeep 2.
|
|
3
|
+
**Baseline:** Cairnkeep 2.17.0
|
|
4
4
|
|
|
5
5
|
This is the step-back map for choosing and operating Cairnkeep features. The
|
|
6
6
|
[course labs](https://github.com/cairnkeep/cairnkeep-course-labs) provide one
|
|
@@ -117,5 +117,24 @@ prerequisites for ordinary memory.
|
|
|
117
117
|
- Use `cairn uninstall --dry-run` before uninstall; durable memory is retained
|
|
118
118
|
unless purge is explicitly requested.
|
|
119
119
|
- Revisit the [storage guide](../storage.md) and
|
|
120
|
-
|
|
121
|
-
|
|
120
|
+
[privacy/data-flow guide](../privacy-and-data-flow.md) before enabling a new
|
|
121
|
+
network or retention path.
|
|
122
|
+
|
|
123
|
+
## Context intelligence
|
|
124
|
+
|
|
125
|
+
L26 joins five related surfaces without collapsing their authority boundaries:
|
|
126
|
+
|
|
127
|
+
- the frozen retrieval benchmark measures relevance, context cost, latency,
|
|
128
|
+
mutations, and forbidden leakage offline;
|
|
129
|
+
- context-pack trees and hierarchical summaries support progressive disclosure,
|
|
130
|
+
while omitted options retain compatible flat content search;
|
|
131
|
+
- opt-in result digests can produce content-free usage receipts linked to work
|
|
132
|
+
evidence;
|
|
133
|
+
- trajectory extraction creates an immutable proposal that must be reviewed and
|
|
134
|
+
applied by exact digest before it becomes durable memory;
|
|
135
|
+
- the OpenViking adapter is optional read-only domain retrieval, with
|
|
136
|
+
AnythingLLM still the default and Cairnkeep still owning memory and evidence.
|
|
137
|
+
|
|
138
|
+
See [L26](lessons/L26-context-intelligence.md), its
|
|
139
|
+
[video script](video-scripts/V26-context-intelligence.md), and the
|
|
140
|
+
[context-intelligence reference](../context-intelligence.md).
|
package/docs/learning/README.md
CHANGED
|
@@ -60,6 +60,7 @@ expanded only after their labs are executable.
|
|
|
60
60
|
| L23 | [Guided setup and Pi memory](lessons/L23-guided-setup.md) | Ready | 35 min |
|
|
61
61
|
| L24 | [Reviewed knowledge exchange](lessons/L24-okf-exchange.md) | Ready | 35 min |
|
|
62
62
|
| L25 | [Bounded workflow playbooks](lessons/L25-playbooks.md) | Ready | 35 min |
|
|
63
|
+
| L26 | [Context intelligence with explicit authority](lessons/L26-context-intelligence.md) | Ready | 45 min |
|
|
63
64
|
|
|
64
65
|
The [curriculum coverage map](CURRICULUM-MAP.md) records where every public
|
|
65
66
|
feature is introduced, practised, and operated. It also marks design-only work
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
**Status:** Ready
|
|
4
4
|
**Track:** Quickstart
|
|
5
5
|
**Time:** 15 minutes
|
|
6
|
-
**Tested with:** Cairnkeep 2.
|
|
6
|
+
**Tested with:** Cairnkeep 2.17.0
|
|
7
7
|
|
|
8
8
|
## Outcome
|
|
9
9
|
|
|
@@ -26,7 +26,7 @@ ephemeral; the named course volume is persistent.
|
|
|
26
26
|
1. Pull the public image:
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
|
-
podman pull ghcr.io/cairnkeep/cairnkeep:2.
|
|
29
|
+
podman pull ghcr.io/cairnkeep/cairnkeep:2.17.0
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
2. Start the stdio server with a read-only root filesystem and no Linux
|
|
@@ -38,7 +38,7 @@ ephemeral; the named course volume is persistent.
|
|
|
38
38
|
--read-only --cap-drop=all --security-opt=no-new-privileges \
|
|
39
39
|
--tmpfs=/tmp:rw,noexec,nosuid,size=64m,mode=1777 \
|
|
40
40
|
--volume cairnkeep-course-data:/data:Z,U \
|
|
41
|
-
ghcr.io/cairnkeep/cairnkeep:2.
|
|
41
|
+
ghcr.io/cairnkeep/cairnkeep:2.17.0 stdio
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
3. The process waits quietly for MCP input. Press `Ctrl-C` after confirming it
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
**Status:** Ready
|
|
4
4
|
**Track:** Quickstart
|
|
5
5
|
**Time:** 25 minutes
|
|
6
|
-
**Tested with:** Cairnkeep 2.
|
|
6
|
+
**Tested with:** Cairnkeep 2.17.0 and Node.js 22 or newer
|
|
7
7
|
|
|
8
8
|
## Outcome
|
|
9
9
|
|
|
@@ -47,7 +47,7 @@ sync. Codex project trust remains an explicit operator decision.
|
|
|
47
47
|
2. Install Cairnkeep:
|
|
48
48
|
|
|
49
49
|
```bash
|
|
50
|
-
npm install --global @cairnkeep/cli@2.
|
|
50
|
+
npm install --global @cairnkeep/cli@2.17.0
|
|
51
51
|
cairn --version
|
|
52
52
|
```
|
|
53
53
|
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
**Status:** Ready
|
|
4
4
|
**Track:** Operator
|
|
5
5
|
**Time:** 30 minutes
|
|
6
|
-
**Tested with:** Cairnkeep 2.
|
|
6
|
+
**Tested with:** Cairnkeep 2.17.0, Windows x64, and Node.js 22 or newer
|
|
7
7
|
|
|
8
8
|
## Outcome
|
|
9
9
|
|
|
@@ -16,7 +16,7 @@ perform a reversible uninstall without relying on WSL or Git Bash.
|
|
|
16
16
|
From PowerShell:
|
|
17
17
|
|
|
18
18
|
```powershell
|
|
19
|
-
npm install --global @cairnkeep/cli@2.
|
|
19
|
+
npm install --global @cairnkeep/cli@2.17.0
|
|
20
20
|
cairn version
|
|
21
21
|
|
|
22
22
|
$Lab = Join-Path $env:TEMP 'Cairnkeep Windows Lab'
|