eklavya 1.52.2 → 1.52.3
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eklavya",
|
|
3
3
|
"displayName": "Eklavya",
|
|
4
|
-
"version": "1.52.
|
|
4
|
+
"version": "1.52.3",
|
|
5
5
|
"description": "Learn while your agent works. Turns coding-agent generation time into adaptive, Socratic learning grounded in the code being written.",
|
|
6
6
|
"author": {
|
|
7
7
|
"name": "Ajay Kumar"
|
|
@@ -10,10 +10,10 @@ Quiz the developer now. Follow the `tutor` skill for how to ask and grade — th
|
|
|
10
10
|
|
|
11
11
|
The developer asked for this, so always pass `ignore_cooldown: true`. The quiz cadence exists to stop Eklavya nagging; it must never refuse a request.
|
|
12
12
|
|
|
13
|
-
**Topic given** (`$ARGUMENTS` is non-empty):
|
|
14
|
-
1. `get_learner_profile` with
|
|
15
|
-
2. `get_session_quiz_plan` with `domain: "<topic>"`
|
|
16
|
-
3. If the topic
|
|
13
|
+
**Topic given** (`$ARGUMENTS` is non-empty): decide between a domain and concept slugs from the profile, not by guessing.
|
|
14
|
+
1. `get_learner_profile` with no `domain`. Its `domains` list names every domain there is; `known` is the list you must not ask about.
|
|
15
|
+
2. If the topic exactly names one of those domains, `get_session_quiz_plan` with `domain: "<topic>"`. Otherwise pass every kebab-case word as a concept slug: `/eklavya:quiz csrf jwt-structure` is `slugs: ["csrf", "jwt-structure"]`. Either way pass `ignore_cooldown: true`. The plan already drops what they have mastered, orders prerequisites first, sets each `tier_to_ask`, and hands you `asked_before` so nothing repeats.
|
|
16
|
+
3. If that plan is empty and the topic was not a domain, nothing by that name is due: the concept is unknown, or already mastered and not due. Say that in one line, offer the closest domain from step 1's list, and name `/eklavya:learn <topic>` for a lesson that adds new concepts. A quiz never mints concepts: do not call `upsert_concepts`, do not offer to build concepts from this repository, and do not invent questions.
|
|
17
17
|
|
|
18
18
|
**No topic**: quiz this session's work.
|
|
19
19
|
1. `get_learner_profile`.
|
|
@@ -21,7 +21,7 @@ The developer asked for this, so always pass `ignore_cooldown: true`. The quiz c
|
|
|
21
21
|
3. If `questions_needed` is 0, say why in one line and stop. The `reason` tells you which:
|
|
22
22
|
- `already_covered` → "Everything from this session has already been asked about. `/eklavya:quiz <topic>` to go wider."
|
|
23
23
|
- `nothing_logged` → "Nothing logged this session yet, so there's nothing grounded to ask about."
|
|
24
|
-
- `no_candidates` (topic mode) →
|
|
24
|
+
- `no_candidates` (topic mode) → for a domain, it is fully mastered and nothing is due; name the closest domain that is not. For slugs, follow step 3 of the topic branch.
|
|
25
25
|
- `quiz_disabled` → "Questions are off for this project. Memory is still recording — `/eklavya:mode` turns the questions back on." Do not say "Eklavya is off": it is not, and saying so is what sent people hunting for a bug that was a setting.
|
|
26
26
|
- `session_off` → they silenced the questions for this session, and then asked for a quiz. Say so and offer the one step back: "Questions are off for this session — say the word and I'll turn them back on." Turn them back on with `set_config`, `scope: "session"`, `quiz: { enabled: true }` if they agree, then run the quiz.
|
|
27
27
|
- `panel_question_open` → a question is already waiting in the side panel: "There's already a question waiting in the panel — answer it there." Ask nothing else.
|
package/package.json
CHANGED