eklavya 1.25.0 → 1.25.2
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/dist/assets/dashboard.html +1 -1
- package/dist/assets/tutor/references/focus-and-level.md +7 -0
- package/dist/claude-mem.js +9 -7
- package/dist/claude-mem.js.map +1 -1
- package/dist/cli-memory.js +786 -0
- package/dist/cli-memory.js.map +1 -0
- package/dist/cli.js +95 -773
- package/dist/cli.js.map +1 -1
- package/dist/config.js +79 -13
- package/dist/config.js.map +1 -1
- package/dist/dashboard.js +36 -14
- package/dist/dashboard.js.map +1 -1
- package/dist/db.js +33 -6
- package/dist/db.js.map +1 -1
- package/dist/hooks/capture-lib.js +55 -0
- package/dist/hooks/capture-lib.js.map +1 -0
- package/dist/hooks/capture-tool.js +1 -1
- package/dist/hooks/capture-tool.js.map +1 -1
- package/dist/hooks/commit-lib.js +255 -0
- package/dist/hooks/commit-lib.js.map +1 -0
- package/dist/hooks/lib.js +37 -5
- package/dist/hooks/lib.js.map +1 -1
- package/dist/hooks/memory-lib.js +93 -78
- package/dist/hooks/memory-lib.js.map +1 -1
- package/dist/hooks/pre-tool-gate.js +5 -10
- package/dist/hooks/pre-tool-gate.js.map +1 -1
- package/dist/hooks/prompt-submit-nudge.js +26 -1
- package/dist/hooks/prompt-submit-nudge.js.map +1 -1
- package/dist/hooks/session-start.js +13 -4
- package/dist/hooks/session-start.js.map +1 -1
- package/dist/install.js +280 -67
- package/dist/install.js.map +1 -1
- package/dist/memory/capture.js +25 -5
- package/dist/memory/capture.js.map +1 -1
- package/dist/memory/privacy.js +105 -7
- package/dist/memory/privacy.js.map +1 -1
- package/dist/memory/provider.js +13 -3
- package/dist/memory/provider.js.map +1 -1
- package/dist/memory/recall.js +18 -6
- package/dist/memory/recall.js.map +1 -1
- package/dist/memory/spool.js +105 -23
- package/dist/memory/spool.js.map +1 -1
- package/dist/memory/store.js +32 -2
- package/dist/memory/store.js.map +1 -1
- package/dist/memory/summarize.js +5 -5
- package/dist/memory/summarize.js.map +1 -1
- package/dist/memory/worker.js +71 -10
- package/dist/memory/worker.js.map +1 -1
- package/dist/migrate.js +60 -14
- package/dist/migrate.js.map +1 -1
- package/dist/paths.js +49 -0
- package/dist/paths.js.map +1 -1
- package/dist/plugin/.claude-plugin/plugin.json +1 -1
- package/dist/plugin/cli/CLAUDE.md +16 -4
- package/dist/plugin/hooks/CLAUDE.md +33 -3
- package/dist/plugin/hooks/run.mjs +69 -5
- package/dist/plugin/scripts/install-git-hook.sh +114 -24
- package/dist/plugin/skills/CLAUDE.md +1 -1
- package/dist/plugin/skills/setup/SKILL.md +9 -2
- package/dist/plugin/skills/tutor/references/focus-and-level.md +7 -0
- package/dist/safe-write.js +146 -0
- package/dist/safe-write.js.map +1 -0
- package/dist/slug.js +4 -1
- package/dist/slug.js.map +1 -1
- package/dist/srs.js +33 -1
- package/dist/srs.js.map +1 -1
- package/dist/store.js +29 -20
- package/dist/store.js.map +1 -1
- package/dist/tools/config_tools.js +23 -1
- package/dist/tools/config_tools.js.map +1 -1
- package/dist/tools/get_session_quiz_plan.js +51 -30
- package/dist/tools/get_session_quiz_plan.js.map +1 -1
- package/dist/tools/log_session_concepts.js +30 -23
- package/dist/tools/log_session_concepts.js.map +1 -1
- package/dist/tools/record_attempt.js +18 -8
- package/dist/tools/record_attempt.js.map +1 -1
- package/dist/tools/types.js +29 -0
- package/dist/tools/types.js.map +1 -1
- package/dist/tools/upsert_concepts.js +12 -10
- package/dist/tools/upsert_concepts.js.map +1 -1
- package/dist/user-skill/eklavya/SKILL.md +26 -10
- package/package.json +1 -1
|
@@ -13,7 +13,8 @@ and tracks mastery with spaced repetition.
|
|
|
13
13
|
|
|
14
14
|
Both halves are local by default: the summariser and the search index run on
|
|
15
15
|
this machine and nothing leaves it unless `providers.observer` has been
|
|
16
|
-
configured
|
|
16
|
+
configured — an explicit choice that sends session batches to a Claude model
|
|
17
|
+
through `claude -p`, on the developer's own Claude subscription.
|
|
17
18
|
|
|
18
19
|
The two halves are switched separately, and their names now say so.
|
|
19
20
|
`quiz.enabled: false` stops the questions and leaves memory recording;
|
|
@@ -54,7 +55,7 @@ above resolved to.
|
|
|
54
55
|
In a Claude Code session with the Eklavya plugin loaded, `get_config`,
|
|
55
56
|
`set_config`, `get_learner_profile`, `get_concept_graph` and `get_gate_status`
|
|
56
57
|
are available as tools. Use them: they validate the values, they report which
|
|
57
|
-
settings
|
|
58
|
+
settings this project is overriding, and they need no subprocess.
|
|
58
59
|
|
|
59
60
|
The CLI is the fallback for everywhere else — a plain terminal, Cursor, a
|
|
60
61
|
session where the plugin is not enabled. The two write the same files, so it
|
|
@@ -130,9 +131,18 @@ they set it back.
|
|
|
130
131
|
eklavya config set focus learn --topic "database indexing"
|
|
131
132
|
```
|
|
132
133
|
|
|
133
|
-
|
|
134
|
-
applying, that is why — `config get` prints both paths, and `eklavya
|
|
135
|
-
`get_config` names the keys
|
|
134
|
+
Project settings win over global ones. When someone's global setting has
|
|
135
|
+
stopped applying, that is why — `config get` prints both paths, and `eklavya
|
|
136
|
+
doctor` or `get_config` names the keys this project is overriding. The project
|
|
137
|
+
file lives under `~/.eklavya/projects/`, never in the repository.
|
|
138
|
+
|
|
139
|
+
`providers` is the exception: global only. A project file that sets it is
|
|
140
|
+
ignored (`config get` and `get_config`'s `ignored_in_project` say so), and
|
|
141
|
+
`set_config` at project scope returns `global_only`. Set it globally or not at
|
|
142
|
+
all. `set_config` can also return `unreadable_config` — the config file does not
|
|
143
|
+
parse and was left untouched; name the file and let them fix it — and
|
|
144
|
+
`project_collision`, when another checkout's settings already sit in the file
|
|
145
|
+
this one would use.
|
|
136
146
|
|
|
137
147
|
Other keys, same `config set` shape: `pass_threshold`,
|
|
138
148
|
`max_questions_per_task`, `min_minutes_between_quizzes`,
|
|
@@ -193,9 +203,14 @@ questions, or seems to have switched itself off. It never fails loudly — every
|
|
|
193
203
|
hook exits successfully by design, so it can't break a session — which means a
|
|
194
204
|
broken install and a quiet one look the same from the outside.
|
|
195
205
|
|
|
196
|
-
Run `eklavya doctor`. Its first
|
|
197
|
-
`driver`, `plugin`, `skill`. If any says `FAILED`, it exits non-zero
|
|
198
|
-
the fix.
|
|
206
|
+
Run `eklavya doctor`. Its first lines are the install itself: `runtime`,
|
|
207
|
+
`driver`, `plugin`, `versions`, `skill`. If any says `FAILED`, it exits non-zero
|
|
208
|
+
and prints the fix. Later rows also flag a config file that does not parse and a
|
|
209
|
+
terminal commit gate missing `jq` or `sqlite3`.
|
|
210
|
+
|
|
211
|
+
If session start printed `Eklavya paused · can't open its database · run:
|
|
212
|
+
eklavya doctor` (or the variant naming a SQLite module and Node version
|
|
213
|
+
mismatch), the database exists but would not open — `doctor` names why.
|
|
199
214
|
|
|
200
215
|
The fix is almost always `eklavya install`. It is idempotent — it reinstalls the
|
|
201
216
|
runtime, re-copies the plugin and rewrites the registration, and never touches
|
|
@@ -287,5 +302,6 @@ skill, not this one.
|
|
|
287
302
|
entry and its vectors are gone. Confirm before the hard one, and never offer
|
|
288
303
|
it as a tidying-up suggestion.
|
|
289
304
|
- Do not configure `providers.observer` on the user's behalf. It is the one
|
|
290
|
-
setting that sends this machine's work to
|
|
291
|
-
|
|
305
|
+
setting that sends this machine's work off it — to a Claude model, on their
|
|
306
|
+
subscription — and it needs their explicit yes. It goes in the global config
|
|
307
|
+
only.
|
package/package.json
CHANGED