eklavya 1.18.3 → 1.19.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/README.md +1 -1
- package/dist/assets/dashboard.html +570 -15
- package/dist/assets/tutor/SKILL.md +5 -5
- package/dist/assets/tutor/references/focus-and-level.md +34 -5
- package/dist/assets/tutor/references/grading.md +1 -1
- package/dist/cli.js +753 -41
- package/dist/cli.js.map +1 -1
- package/dist/config-path.js +156 -0
- package/dist/config-path.js.map +1 -0
- package/dist/config.js +448 -31
- package/dist/config.js.map +1 -1
- package/dist/dashboard.js +357 -1
- package/dist/dashboard.js.map +1 -1
- package/dist/eval/retrieval-score.js +77 -0
- package/dist/eval/retrieval-score.js.map +1 -0
- package/dist/hooks/capture-tool.js +107 -0
- package/dist/hooks/capture-tool.js.map +1 -0
- package/dist/hooks/checkpoint-quiz.js +2 -2
- package/dist/hooks/checkpoint-quiz.js.map +1 -1
- package/dist/hooks/lib.js +4 -30
- package/dist/hooks/lib.js.map +1 -1
- package/dist/hooks/memory-lib.js +181 -0
- package/dist/hooks/memory-lib.js.map +1 -0
- package/dist/hooks/pre-tool-gate.js +2 -2
- package/dist/hooks/pre-tool-gate.js.map +1 -1
- package/dist/hooks/prompt-submit-nudge.js +57 -20
- package/dist/hooks/prompt-submit-nudge.js.map +1 -1
- package/dist/hooks/session-start.js +110 -80
- package/dist/hooks/session-start.js.map +1 -1
- package/dist/hooks/stop-quiz-check.js +58 -38
- package/dist/hooks/stop-quiz-check.js.map +1 -1
- package/dist/hooks/subagent-start.js +2 -2
- package/dist/hooks/subagent-start.js.map +1 -1
- package/dist/install.js +37 -0
- package/dist/install.js.map +1 -1
- package/dist/memory/capture.js +123 -0
- package/dist/memory/capture.js.map +1 -0
- package/dist/memory/code.js +186 -0
- package/dist/memory/code.js.map +1 -0
- package/dist/memory/collections.js +87 -0
- package/dist/memory/collections.js.map +1 -0
- package/dist/memory/embed.js +81 -0
- package/dist/memory/embed.js.map +1 -0
- package/dist/memory/hosts.js +71 -0
- package/dist/memory/hosts.js.map +1 -0
- package/dist/memory/identity.js +74 -0
- package/dist/memory/identity.js.map +1 -0
- package/dist/memory/import.js +916 -0
- package/dist/memory/import.js.map +1 -0
- package/dist/memory/learning.js +148 -0
- package/dist/memory/learning.js.map +1 -0
- package/dist/memory/notify.js +220 -0
- package/dist/memory/notify.js.map +1 -0
- package/dist/memory/privacy.js +117 -0
- package/dist/memory/privacy.js.map +1 -0
- package/dist/memory/provider.js +155 -0
- package/dist/memory/provider.js.map +1 -0
- package/dist/memory/recall.js +327 -0
- package/dist/memory/recall.js.map +1 -0
- package/dist/memory/replay.js +174 -0
- package/dist/memory/replay.js.map +1 -0
- package/dist/memory/search.js +143 -0
- package/dist/memory/search.js.map +1 -0
- package/dist/memory/spool.js +93 -0
- package/dist/memory/spool.js.map +1 -0
- package/dist/memory/store.js +399 -0
- package/dist/memory/store.js.map +1 -0
- package/dist/memory/summarize.js +178 -0
- package/dist/memory/summarize.js.map +1 -0
- package/dist/memory/sync.js +595 -0
- package/dist/memory/sync.js.map +1 -0
- package/dist/memory/tokens.js +55 -0
- package/dist/memory/tokens.js.map +1 -0
- package/dist/memory/worker.js +207 -0
- package/dist/memory/worker.js.map +1 -0
- package/dist/migrations/009_memory.sql +226 -0
- package/dist/migrations/010_import.sql +26 -0
- package/dist/migrations/011_sync.sql +76 -0
- package/dist/migrations/012_job_backoff.sql +13 -0
- package/dist/migrations/013_batch_provenance.sql +18 -0
- package/dist/migrations/014_batch_events_index.sql +18 -0
- package/dist/packs.js +26 -12
- package/dist/packs.js.map +1 -1
- package/dist/paths.js +60 -0
- package/dist/paths.js.map +1 -1
- package/dist/plugin/.claude-plugin/plugin.json +1 -1
- package/dist/plugin/agents/tutor.md +3 -1
- package/dist/plugin/cli/CLAUDE.md +32 -8
- package/dist/plugin/cli/eklavya-gate +80 -9
- package/dist/plugin/hooks/CLAUDE.md +44 -19
- package/dist/plugin/hooks/hooks.json +10 -0
- package/dist/plugin/scripts/install-git-hook.sh +2 -1
- package/dist/plugin/skills/CLAUDE.md +29 -17
- package/dist/plugin/skills/gate/SKILL.md +1 -1
- package/dist/plugin/skills/level/SKILL.md +3 -3
- package/dist/plugin/skills/memory/SKILL.md +88 -0
- package/dist/plugin/skills/mode/SKILL.md +24 -16
- package/dist/plugin/skills/pack/SKILL.md +8 -4
- package/dist/plugin/skills/progress/SKILL.md +1 -1
- package/dist/plugin/skills/quiz/SKILL.md +2 -2
- package/dist/plugin/skills/setup/SKILL.md +25 -11
- package/dist/plugin/skills/tutor/SKILL.md +5 -5
- package/dist/plugin/skills/tutor/references/focus-and-level.md +34 -5
- package/dist/plugin/skills/tutor/references/grading.md +1 -1
- package/dist/session.js +1 -1
- package/dist/statusline.js +20 -6
- package/dist/statusline.js.map +1 -1
- package/dist/store.js +2 -2
- package/dist/store.js.map +1 -1
- package/dist/surface.js +1 -1
- package/dist/time.js +41 -0
- package/dist/time.js.map +1 -0
- package/dist/tools/code_tools.js +73 -0
- package/dist/tools/code_tools.js.map +1 -0
- package/dist/tools/collection_tools.js +92 -0
- package/dist/tools/collection_tools.js.map +1 -0
- package/dist/tools/config_tools.js +165 -32
- package/dist/tools/config_tools.js.map +1 -1
- package/dist/tools/get_learner_profile.js +2 -1
- package/dist/tools/get_learner_profile.js.map +1 -1
- package/dist/tools/get_session_quiz_plan.js +15 -9
- package/dist/tools/get_session_quiz_plan.js.map +1 -1
- package/dist/tools/index.js +15 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/memory_read_tools.js +277 -0
- package/dist/tools/memory_read_tools.js.map +1 -0
- package/dist/tools/memory_write_tools.js +115 -0
- package/dist/tools/memory_write_tools.js.map +1 -0
- package/dist/tools/types.js +1 -1
- package/dist/tools/types.js.map +1 -1
- package/dist/user-skill/eklavya/SKILL.md +95 -25
- package/package.json +2 -1
|
@@ -4,10 +4,13 @@
|
|
|
4
4
|
* Hard rule: this must never break a session. Every failure path
|
|
5
5
|
* exits 0 with no output — `run()` enforces it.
|
|
6
6
|
*/
|
|
7
|
+
import { findRepoConfig, mainRepoRoot, migrateLegacyRepoConfig } from '../config.js';
|
|
7
8
|
import { isSessionOff, setCurrentSession } from '../session.js';
|
|
8
9
|
import { levelStanding } from '../store.js';
|
|
9
10
|
import { isCowork, withSurfaceNote } from '../surface.js';
|
|
10
11
|
import { run, openExisting, config, cwdOf, sessionId, clearNudgeState } from './lib.js';
|
|
12
|
+
import { flushAtSeam, identityOf, recallBlock, record, replaySpool } from './memory-lib.js';
|
|
13
|
+
import { startupDisplay } from '../memory/recall.js';
|
|
11
14
|
/**
|
|
12
15
|
* The whole tutoring loop starts at log_session_concepts: it is the only writer
|
|
13
16
|
* of session_concepts, and the Stop hook quizzes from nothing else. An unlogged
|
|
@@ -30,98 +33,113 @@ const DIRECTIVE = `[Eklavya] Standing instruction for this session, on every tas
|
|
|
30
33
|
ask right then, before the next line of code, then back to the task in the same turn. That
|
|
31
34
|
interruption is the product -- learning while the work happens, not a pile of questions after
|
|
32
35
|
it. One question, no summary, no re-plan, no second question.`;
|
|
33
|
-
/**
|
|
34
|
-
* "seen" is a mastery row, which only exists once a concept has been attempted.
|
|
35
|
-
* Gated on that rather than on anything being mastered yet, or a learner three
|
|
36
|
-
* attempts in is told they have no history.
|
|
37
|
-
*/
|
|
38
|
-
function domainSummary(db) {
|
|
39
|
-
const rows = db
|
|
40
|
-
.prepare(`SELECT c.domain AS domain,
|
|
41
|
-
sum(CASE WHEN m.score >= 0.7 AND m.reps >= 2 THEN 1 ELSE 0 END) AS known,
|
|
42
|
-
count(*) AS total,
|
|
43
|
-
sum(CASE WHEN m.concept_id IS NOT NULL THEN 1 ELSE 0 END) AS seen
|
|
44
|
-
FROM concepts c LEFT JOIN mastery m ON m.concept_id = c.id
|
|
45
|
-
GROUP BY c.domain
|
|
46
|
-
HAVING seen > 0
|
|
47
|
-
ORDER BY known DESC, seen DESC
|
|
48
|
-
LIMIT 3`)
|
|
49
|
-
.all();
|
|
50
|
-
return rows.map((r) => `${r.domain} ${r.known}/${r.total} known`).join(', ');
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Not "reps > 0": a failing grade resets reps to 0, so that filter would hide
|
|
54
|
-
* precisely the concepts the learner is struggling with. A mastery row at all
|
|
55
|
-
* means it has been attempted.
|
|
56
|
-
*/
|
|
57
|
-
function weakest(db) {
|
|
58
|
-
const rows = db
|
|
59
|
-
.prepare(`SELECT c.slug AS slug FROM concepts c
|
|
60
|
-
JOIN mastery m ON m.concept_id = c.id
|
|
61
|
-
WHERE m.score < 0.5
|
|
62
|
-
ORDER BY m.score ASC
|
|
63
|
-
LIMIT 3`)
|
|
64
|
-
.all();
|
|
65
|
-
return rows.map((r) => r.slug).join(', ');
|
|
66
|
-
}
|
|
67
|
-
function dueCount(db) {
|
|
68
|
-
const row = db
|
|
69
|
-
.prepare(`SELECT count(*) AS n FROM mastery
|
|
70
|
-
WHERE next_review IS NOT NULL
|
|
71
|
-
AND next_review <= strftime('%Y-%m-%dT%H:%M:%fZ','now')`)
|
|
72
|
-
.get();
|
|
73
|
-
return row?.n ?? 0;
|
|
74
|
-
}
|
|
75
36
|
await run(async (input) => {
|
|
37
|
+
const cwd = cwdOf(input);
|
|
38
|
+
// Lift a leftover `<repo>/.eklavya.json` out of the checkout, silently. This
|
|
39
|
+
// is the moment that makes the move automatic: settings files stopped living
|
|
40
|
+
// in repositories, and nobody should have to be told so or do anything about
|
|
41
|
+
// it. `loadConfig` reads the legacy file until this lands, so the session it
|
|
42
|
+
// runs in is configured identically either way. It never throws.
|
|
43
|
+
//
|
|
44
|
+
// **Before the database check below**, and that ordering is the whole point:
|
|
45
|
+
// this has nothing to do with the database, and behind that guard it never ran
|
|
46
|
+
// on a fresh install -- the one case where the file is most likely to be a
|
|
47
|
+
// just-cloned repo's, and where the next thing to happen is `openDb` creating
|
|
48
|
+
// the database and every later session finding the move already done.
|
|
49
|
+
const { repoRoot } = findRepoConfig(cwd);
|
|
50
|
+
if (repoRoot)
|
|
51
|
+
migrateLegacyRepoConfig(repoRoot, mainRepoRoot(repoRoot));
|
|
76
52
|
const db = openExisting();
|
|
77
53
|
if (!db)
|
|
78
54
|
return 0;
|
|
79
|
-
const cwd = cwdOf(input);
|
|
80
55
|
const sid = sessionId(input, db);
|
|
81
56
|
// Stamp the session so MCP tools resolve the same id the hooks will use later
|
|
82
57
|
// (decision G1). This happens even when the banner is suppressed.
|
|
83
58
|
if (sid)
|
|
84
59
|
setCurrentSession(db, sid, cwd);
|
|
85
60
|
const resolved = config(cwd);
|
|
86
|
-
const {
|
|
87
|
-
|
|
61
|
+
const { quiz, difficulty, quiet } = resolved.config;
|
|
62
|
+
// The memory half runs before every learning gate below, because it is not
|
|
63
|
+
// governed by them (PRD CFG-01): `quiz.enabled: false` means no quizzes, not
|
|
64
|
+
// no history. Three jobs, all silent on failure -- replay whatever the spool
|
|
65
|
+
// holds, mark the seam, and drain any batch the last session left queued.
|
|
66
|
+
const identity = identityOf(input, cwd, sid);
|
|
67
|
+
const memoryContext = [];
|
|
68
|
+
const dormant = [];
|
|
69
|
+
const memoryEnabled = resolved.config.memory.enabled;
|
|
70
|
+
if (memoryEnabled) {
|
|
71
|
+
replaySpool(db);
|
|
72
|
+
// Drain first, then mark the seam. The other order batches the lifecycle
|
|
73
|
+
// event on its own and summarises "session started" into an observation of
|
|
74
|
+
// nothing.
|
|
75
|
+
await flushAtSeam(db, resolved, identity);
|
|
76
|
+
record(db, resolved, identity, {
|
|
77
|
+
kind: 'lifecycle',
|
|
78
|
+
title: input.source === 'resume' ? 'session resumed' : 'session started',
|
|
79
|
+
body: `source=${input.source ?? 'startup'} cwd=${cwd}`,
|
|
80
|
+
});
|
|
81
|
+
const block = recallBlock(db, resolved, identity, 'session_start');
|
|
82
|
+
if (block)
|
|
83
|
+
memoryContext.push(block);
|
|
84
|
+
}
|
|
85
|
+
if (!quiz.enabled) {
|
|
86
|
+
// Recall still has a job here: the developer turned quizzing off, not
|
|
87
|
+
// project memory. Nothing else this hook says applies.
|
|
88
|
+
//
|
|
89
|
+
// The line below it is the whole reason the `mode` dial was retired. With
|
|
90
|
+
// quizzing off and nothing yet recalled -- a first session in a repo, which
|
|
91
|
+
// is exactly when somebody is deciding whether this tool works -- this hook
|
|
92
|
+
// used to print nothing whatsoever, and a plugin that greets you with
|
|
93
|
+
// silence is a plugin you conclude is broken. It was not: memory was
|
|
94
|
+
// recording the entire time, with no way to tell from the outside. One line
|
|
95
|
+
// costs nothing and answers the question before it is asked.
|
|
96
|
+
if (!quiet) {
|
|
97
|
+
dormant.push(memoryEnabled
|
|
98
|
+
? '[Eklavya] Questions are off for this project (`quiz.enabled: false`). Memory is still recording and recalling — `memory.enabled: false` is the dial for that.'
|
|
99
|
+
: '[Eklavya] Questions and memory are both off for this project. Nothing is being recorded.');
|
|
100
|
+
}
|
|
101
|
+
dormant.push(...memoryContext);
|
|
102
|
+
if (dormant.length)
|
|
103
|
+
process.stdout.write(`${dormant.join('\n')}\n`);
|
|
88
104
|
return 0;
|
|
105
|
+
}
|
|
89
106
|
// Fires on resume and after a compaction too, with the same session id, so a
|
|
90
107
|
// session silenced an hour ago stays silent rather than greeting its way back.
|
|
91
108
|
if (isSessionOff(db, sid))
|
|
92
109
|
return 0;
|
|
93
|
-
const focusLabel = focus === 'learn' && focus_topic ? `learn (${focus_topic})` : focus;
|
|
94
|
-
// The level, and how far into it they are. This is the one number that makes
|
|
95
|
-
// the runway visible: without it, week one and week ten look identical from
|
|
96
|
-
// the outside, and a learner on `easy` reads tier-2 questions as Eklavya being
|
|
97
|
-
// shallow rather than as a band they are working through.
|
|
98
|
-
//
|
|
99
|
-
// `levelStanding` is the server's own function, so the banner cannot drift
|
|
100
|
-
// from what the quiz planner actually does — the shell version reimplemented
|
|
101
|
-
// this query and had to keep it in step by hand.
|
|
102
110
|
const out = [];
|
|
103
111
|
// `quiet` suppresses the banner, and only the banner. It used to return here,
|
|
104
112
|
// which also dropped the directive below -- so a developer who turned the
|
|
105
113
|
// greeting off silently turned the whole product off: nothing was logged, so
|
|
106
114
|
// the Stop hook found no candidates, so no question was ever asked, while
|
|
107
|
-
// `get_config` went on reporting
|
|
115
|
+
// `get_config` went on reporting quizzing as enabled. The manual has always said
|
|
108
116
|
// this key "suppresses the session-start banner and the statusline output",
|
|
109
|
-
// and `
|
|
117
|
+
// and `quiz.enabled: false` is the documented way to stop the questions.
|
|
110
118
|
if (!quiet) {
|
|
119
|
+
// The runway, and the one place it is visible: without it week one and week
|
|
120
|
+
// ten look identical from the outside, and a learner on `easy` reads a
|
|
121
|
+
// tier-2 question as Eklavya being shallow rather than as a band they are
|
|
122
|
+
// working through. `levelStanding` is the planner's own function, so the
|
|
123
|
+
// greeting cannot drift from what the quiz actually does.
|
|
111
124
|
let levelLabel = `${difficulty} (pinned)`;
|
|
112
125
|
if (difficulty === 'auto') {
|
|
113
126
|
const standing = levelStanding(db, resolved.config, resolved.repoRoot);
|
|
114
|
-
levelLabel = `${standing.level} (${standing.counts.passed}/${standing.needed.answers}
|
|
127
|
+
levelLabel = `${standing.level} (${standing.counts.passed}/${standing.needed.answers})`;
|
|
115
128
|
}
|
|
116
|
-
banner(db, out, {
|
|
129
|
+
banner(db, out, {
|
|
130
|
+
project: identity.project,
|
|
131
|
+
memory: resolved.config.memory.enabled,
|
|
132
|
+
levelLabel,
|
|
133
|
+
overrides: resolved.overrides,
|
|
134
|
+
});
|
|
117
135
|
}
|
|
118
136
|
// Said even when `quiet` is set, and said before the directive, because it is
|
|
119
|
-
// not a greeting: a lead who pinned enforced
|
|
137
|
+
// not a greeting: a lead who pinned `quiz.enforced` has been promised commits
|
|
120
138
|
// are held, and in Cowork nothing holds them. The gate matches `git commit` in
|
|
121
139
|
// a Bash call, and Cowork sessions do not commit. Better to say so once per
|
|
122
140
|
// session than to let someone believe an unenforceable setting is enforcing.
|
|
123
|
-
if (
|
|
124
|
-
out.push('[Eklavya]
|
|
141
|
+
if (quiz.enforced && isCowork()) {
|
|
142
|
+
out.push('[Eklavya] Quizzing is enforced, but this is a Cowork session: the commit gate holds `git commit`, ' +
|
|
125
143
|
'and there are no commits here. Questions still come and the gate still records — nothing is blocked.');
|
|
126
144
|
}
|
|
127
145
|
// The directive is on screen again, so the nudge's clock starts again. This
|
|
@@ -130,30 +148,42 @@ await run(async (input) => {
|
|
|
130
148
|
// restates what was printed seconds ago.
|
|
131
149
|
if (sid)
|
|
132
150
|
clearNudgeState(db, sid);
|
|
151
|
+
// Before the directive: it is what the session is *about*, and the directive
|
|
152
|
+
// is what to do about it.
|
|
153
|
+
out.push(...memoryContext);
|
|
133
154
|
out.push(withSurfaceNote(DIRECTIVE));
|
|
134
155
|
process.stdout.write(`${out.join('\n')}\n`);
|
|
135
156
|
return 0;
|
|
136
157
|
});
|
|
137
|
-
/**
|
|
158
|
+
/**
|
|
159
|
+
* The developer-facing greeting, and everything `quiet` is about.
|
|
160
|
+
*
|
|
161
|
+
* Three lines (PRD UX-01): a heading, what reuse saved, and where this project
|
|
162
|
+
* stands. Deliberately short. It used to print the learner profile, the weakest
|
|
163
|
+
* concepts, the due count and every dial — a scoreboard at the moment
|
|
164
|
+
* somebody sat down to work, none of which they had asked for. The dials live
|
|
165
|
+
* in the status bar (`eklavya statusline`), the profile and the weak list live
|
|
166
|
+
* in the dashboard, and both are there when they are wanted.
|
|
167
|
+
*
|
|
168
|
+
* Every number here is already committed to the database. Nothing waits on a
|
|
169
|
+
* provider call or an index rebuild to greet somebody.
|
|
170
|
+
*/
|
|
138
171
|
function banner(db, out, parts) {
|
|
139
|
-
const
|
|
140
|
-
const
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
out.push(
|
|
154
|
-
}
|
|
155
|
-
if (overrides.length > 0) {
|
|
156
|
-
out.push(`[Eklavya] This repo overrides your global setting for: ${overrides.join(' ')} (.eklavya.json wins).`);
|
|
172
|
+
const display = startupDisplay(db, parts.project);
|
|
173
|
+
const [heading, savings, counts] = display.lines;
|
|
174
|
+
out.push(heading);
|
|
175
|
+
// With memory off there is no reuse to report, and a line saying so every
|
|
176
|
+
// morning is noise about a feature the developer turned off on purpose.
|
|
177
|
+
if (parts.memory)
|
|
178
|
+
out.push(savings);
|
|
179
|
+
// The runway rides on the counts line rather than taking one of its own: it
|
|
180
|
+
// is the same subject -- where this project stands -- and UX-01's budget is
|
|
181
|
+
// three lines, not three subjects spread over five.
|
|
182
|
+
out.push(`${counts} · Level ${parts.levelLabel}`);
|
|
183
|
+
if (parts.overrides.length > 0) {
|
|
184
|
+
// A warning, not a scoreboard: a repo silently overriding a personal
|
|
185
|
+
// setting is the one thing worth interrupting for.
|
|
186
|
+
out.push(`Your settings for this project override your global ones for: ${parts.overrides.join(' ')}.`);
|
|
157
187
|
}
|
|
158
188
|
}
|
|
159
189
|
//# sourceMappingURL=session-start.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../src/hooks/session-start.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAW,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../src/hooks/session-start.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAW,MAAM,UAAU,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;;;;;;;;GASG;AACH,MAAM,SAAS,GAAG;;;;;;;;;;;kEAWgD,CAAC;AAEnE,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;IACxB,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAEzB,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,6EAA6E;IAC7E,iEAAiE;IACjE,EAAE;IACF,6EAA6E;IAC7E,+EAA+E;IAC/E,2EAA2E;IAC3E,8EAA8E;IAC9E,sEAAsE;IACtE,MAAM,EAAE,QAAQ,EAAE,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;IACzC,IAAI,QAAQ;QAAE,uBAAuB,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IAExE,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,CAAC;IAElB,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAEjC,8EAA8E;IAC9E,kEAAkE;IAClE,IAAI,GAAG;QAAE,iBAAiB,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAEzC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;IAC7B,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC;IAEpD,2EAA2E;IAC3E,6EAA6E;IAC7E,6EAA6E;IAC7E,0EAA0E;IAC1E,MAAM,QAAQ,GAAG,UAAU,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7C,MAAM,aAAa,GAAa,EAAE,CAAC;IACnC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;IACrD,IAAI,aAAa,EAAE,CAAC;QAClB,WAAW,CAAC,EAAE,CAAC,CAAC;QAChB,yEAAyE;QACzE,2EAA2E;QAC3E,WAAW;QACX,MAAM,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC1C,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE;YAC7B,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,iBAAiB;YACxE,IAAI,EAAE,UAAU,KAAK,CAAC,MAAM,IAAI,SAAS,QAAQ,GAAG,EAAE;SACvD,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;QACnE,IAAI,KAAK;YAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QAClB,sEAAsE;QACtE,uDAAuD;QACvD,EAAE;QACF,0EAA0E;QAC1E,4EAA4E;QAC5E,4EAA4E;QAC5E,sEAAsE;QACtE,qEAAqE;QACrE,4EAA4E;QAC5E,6DAA6D;QAC7D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CACV,aAAa;gBACX,CAAC,CAAC,+JAA+J;gBACjK,CAAC,CAAC,0FAA0F,CAC/F,CAAC;QACJ,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QAC/B,IAAI,OAAO,CAAC,MAAM;YAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpE,OAAO,CAAC,CAAC;IACX,CAAC;IACD,6EAA6E;IAC7E,+EAA+E;IAC/E,IAAI,YAAY,CAAC,EAAE,EAAE,GAAG,CAAC;QAAE,OAAO,CAAC,CAAC;IAEpC,MAAM,GAAG,GAAa,EAAE,CAAC;IAEzB,8EAA8E;IAC9E,0EAA0E;IAC1E,6EAA6E;IAC7E,0EAA0E;IAC1E,iFAAiF;IACjF,4EAA4E;IAC5E,yEAAyE;IACzE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,4EAA4E;QAC5E,uEAAuE;QACvE,0EAA0E;QAC1E,yEAAyE;QACzE,0DAA0D;QAC1D,IAAI,UAAU,GAAG,GAAG,UAAU,WAAW,CAAC;QAC1C,IAAI,UAAU,KAAK,MAAM,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;YACvE,UAAU,GAAG,GAAG,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC,MAAM,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC;QAC1F,CAAC;QACD,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE;YACd,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO;YACtC,UAAU;YACV,SAAS,EAAE,QAAQ,CAAC,SAAS;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,8EAA8E;IAC9E,8EAA8E;IAC9E,+EAA+E;IAC/E,4EAA4E;IAC5E,6EAA6E;IAC7E,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE,EAAE,CAAC;QAChC,GAAG,CAAC,IAAI,CACN,oGAAoG;YAClG,sGAAsG,CACzG,CAAC;IACJ,CAAC;IAED,4EAA4E;IAC5E,6EAA6E;IAC7E,6EAA6E;IAC7E,yCAAyC;IACzC,IAAI,GAAG;QAAE,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAElC,6EAA6E;IAC7E,0BAA0B;IAC1B,GAAG,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAC3B,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,CAAC,CAAC;AACX,CAAC,CAAC,CAAC;AASH;;;;;;;;;;;;GAYG;AACH,SAAS,MAAM,CAAC,EAAM,EAAE,GAAa,EAAE,KAAkB;IACvD,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,KAAiC,CAAC;IAC7E,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClB,0EAA0E;IAC1E,wEAAwE;IACxE,IAAI,KAAK,CAAC,MAAM;QAAE,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpC,4EAA4E;IAC5E,4EAA4E;IAC5E,oDAAoD;IACpD,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,YAAY,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;IAElD,IAAI,KAAK,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,qEAAqE;QACrE,mDAAmD;QACnD,GAAG,CAAC,IAAI,CACN,iEAAiE,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAC9F,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -38,9 +38,11 @@
|
|
|
38
38
|
* (`min_minutes_between_checkpoints` here, `min_minutes_between_quizzes` under
|
|
39
39
|
* `end`), `max_stop_blocks_per_session`, and the remaining session budget.
|
|
40
40
|
*/
|
|
41
|
-
import {
|
|
42
|
-
import { run, openExisting, config, cwdOf, sessionId, minutesSince
|
|
41
|
+
import { isCowork } from '../surface.js';
|
|
42
|
+
import { run, openExisting, config, cwdOf, sessionId, minutesSince } from './lib.js';
|
|
43
43
|
import { isSessionOff } from '../session.js';
|
|
44
|
+
import { flushAtSeam, identityOf, wrapUpAtSeam } from './memory-lib.js';
|
|
45
|
+
import { fillOmissions } from '../memory/learning.js';
|
|
44
46
|
await run(async (input) => {
|
|
45
47
|
// Same fast path as checkpoint-quiz.ts, and for a stronger reason: this hook
|
|
46
48
|
// continues the turn. `Stop` is believed to be parent-only -- `SubagentStop`
|
|
@@ -62,12 +64,37 @@ await run(async (input) => {
|
|
|
62
64
|
const sid = sessionId(input, db);
|
|
63
65
|
if (!sid)
|
|
64
66
|
return 0;
|
|
65
|
-
//
|
|
66
|
-
//
|
|
67
|
+
// The end of a turn is the natural seam: close the open batch and summarise
|
|
68
|
+
// it. Before every learning gate below, because memory is not governed by
|
|
69
|
+
// them, and before the block decision, because whether a question is asked
|
|
70
|
+
// must not change what gets remembered. With a provider configured this only
|
|
71
|
+
// queues -- a Stop hook does not wait on an API call (PRD LRN-04).
|
|
72
|
+
const stopConfig = config(cwd);
|
|
73
|
+
if (stopConfig.config.memory.enabled) {
|
|
74
|
+
const identity = identityOf(input, cwd, sid);
|
|
75
|
+
await flushAtSeam(db, stopConfig, identity);
|
|
76
|
+
// Only for a session that logged nothing at all. A session that logged
|
|
77
|
+
// properly is left alone: the model's own account of what it wrote beats
|
|
78
|
+
// anything derived from tool arguments, and adding guesses to it would
|
|
79
|
+
// quiz the developer on the shape of the evidence rather than on the work.
|
|
80
|
+
try {
|
|
81
|
+
fillOmissions(db, stopConfig.config, sid, identity.project);
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
/* A session with nothing to ask about is the status quo, not a failure. */
|
|
85
|
+
}
|
|
86
|
+
// Writes the session's summary entry, then announces the wrap-up if a sink
|
|
87
|
+
// is configured -- which is not the default, and the summary must not wait
|
|
88
|
+
// on it. Gating memory on an announcement channel means nobody ever gets one.
|
|
89
|
+
await wrapUpAtSeam(db, stopConfig, identity);
|
|
90
|
+
}
|
|
91
|
+
// Silenced sessions are never blocked, enforced quizzing included: the commit
|
|
92
|
+
// gate is what `quiz.enforced` is for, and it reads the project config rather
|
|
93
|
+
// than this.
|
|
67
94
|
if (isSessionOff(db, sid))
|
|
68
95
|
return 0;
|
|
69
|
-
const {
|
|
70
|
-
if (
|
|
96
|
+
const { quiz, cadence, max_questions_per_task, max_stop_blocks_per_session, min_minutes_between_quizzes, min_minutes_between_checkpoints, } = config(cwd).config;
|
|
97
|
+
if (!quiz.enabled)
|
|
71
98
|
return 0;
|
|
72
99
|
const stats = db
|
|
73
100
|
.prepare(`SELECT
|
|
@@ -102,10 +129,10 @@ await run(async (input) => {
|
|
|
102
129
|
return 0;
|
|
103
130
|
// Under `interleaved` this sweep asks exactly ONE question (see `take` below),
|
|
104
131
|
// so it is paced by the single-question clock rather than the whole-quiz one.
|
|
105
|
-
// Enforced
|
|
106
|
-
const interleaved = cadence === 'interleaved' &&
|
|
132
|
+
// Enforced quizzing is exempt from both, as it always was (decision G5).
|
|
133
|
+
const interleaved = cadence === 'interleaved' && !quiz.enforced;
|
|
107
134
|
// --- the pacing clock ------------------------------------------------------
|
|
108
|
-
//
|
|
135
|
+
// Unenforced quizzing respects the cadence. Enforced must not, or a cooldown
|
|
109
136
|
// could make a commit gate unpassable (decision G5).
|
|
110
137
|
//
|
|
111
138
|
// Which clock depends on what is being paced. `min_minutes_between_quizzes` is
|
|
@@ -129,7 +156,7 @@ await run(async (input) => {
|
|
|
129
156
|
// which has a logged concept behind each firing. A Stop sweep has no such event:
|
|
130
157
|
// at a gap of 0 a model that ignores the instruction and stops again immediately
|
|
131
158
|
// gets blocked again immediately, three times in a row with no pause.
|
|
132
|
-
if (
|
|
159
|
+
if (!quiz.enforced) {
|
|
133
160
|
const gap = interleaved
|
|
134
161
|
? Math.max(1, min_minutes_between_checkpoints)
|
|
135
162
|
: min_minutes_between_quizzes;
|
|
@@ -200,47 +227,40 @@ await run(async (input) => {
|
|
|
200
227
|
last_blocked_at = excluded.last_blocked_at,
|
|
201
228
|
last_logged_count = excluded.last_logged_count,
|
|
202
229
|
block_count = stop_markers.block_count + 1`).run({ sid, logged: stats.logged });
|
|
203
|
-
const framing = framingFor(focus, focus_topic, 'stop');
|
|
204
230
|
// What the model is being asked for, in the words of the cadence it is running
|
|
205
231
|
// under. `interleaved` gets a hard singular -- the plan will hand back exactly
|
|
206
232
|
// one item, and prose that still says "each question" reads as licence to go
|
|
207
233
|
// looking for more.
|
|
208
234
|
const ask = take === 1
|
|
209
|
-
?
|
|
210
|
-
|
|
211
|
-
record_attempt. One question, then let them finish -- there is no second one to
|
|
212
|
-
come back for. The plan returns a "framing" field. Follow it.`
|
|
213
|
-
: `Use the eklavya MCP server and the tutor skill: call get_session_quiz_plan, ask
|
|
214
|
-
ONE question at a time at each concept's tier_to_ask, and grade each answer with
|
|
215
|
-
record_attempt. The plan returns a "framing" field. Follow it.`;
|
|
235
|
+
? 'One question, then let them finish -- there is no second one to come back for.'
|
|
236
|
+
: `Ask ONE question at a time, up to ${take}.`;
|
|
216
237
|
// The enforced line names the commit gate as the reason to press, which is
|
|
217
238
|
// true everywhere the gate can fire. On Cowork it cannot — it matches `git
|
|
218
239
|
// commit`, and Cowork does not commit — and session-start has already told
|
|
219
240
|
// this session that nothing is blocked. Saying both things in one session
|
|
220
241
|
// teaches the learner that Eklavya's warnings need not be read carefully, so
|
|
221
242
|
// the enforced framing drops to why the quiz still matters there.
|
|
222
|
-
const tone =
|
|
243
|
+
const tone = quiz.enforced
|
|
223
244
|
? isCowork()
|
|
224
|
-
? '
|
|
225
|
-
: '
|
|
226
|
-
: 'If they say skip, record
|
|
227
|
-
|
|
228
|
-
|
|
245
|
+
? 'Quizzing is enforced here. Nothing is blocked — Cowork does not commit — but the gate still records what was answered.'
|
|
246
|
+
: 'Quizzing is enforced in this session: the commit gate needs this quiz.'
|
|
247
|
+
: 'If they say skip, record grade 0 and let them go — do not ask twice.';
|
|
248
|
+
// EVERY LINE BELOW IS PRINTED TO THE DEVELOPER, VERBATIM.
|
|
249
|
+
// The harness renders a Stop hook's `additionalContext` under "Ran N stop
|
|
250
|
+
// hooks" in gold, wrapped and effectively untruncated (`stop_hook_summary` in
|
|
251
|
+
// the 2.1.278 bundle), and there is no field that hides it — `suppressOutput`
|
|
252
|
+
// does not reach this path. So length is the only lever there is, and the page
|
|
253
|
+
// of model-facing instructions this used to be was Eklavya reciting its own
|
|
254
|
+
// prompt at the person it is meant to be teaching, every single task.
|
|
255
|
+
//
|
|
256
|
+
// Say only what this hook alone knows -- which concepts, how big the sweep,
|
|
257
|
+
// whether the gate is pressing -- and let `get_session_quiz_plan` carry the
|
|
258
|
+
// rest. It already returns `framing`, `ask_attribution`, `answer_position` and
|
|
259
|
+
// `tier_to_ask` with every plan, and the next thing the model does is call it,
|
|
260
|
+
// so repeating any of that here buys nothing and costs the developer a screen.
|
|
261
|
+
const context = `Eklavya: quiz the developer on what this task taught. ${ask}
|
|
229
262
|
Concepts: ${concepts}
|
|
230
|
-
|
|
231
|
-
${ask}
|
|
232
|
-
|
|
233
|
-
Ask each question as MULTIPLE CHOICE via the AskUserQuestion tool: four options,
|
|
234
|
-
one correct and three plausible, the correct one in the slot answer_position
|
|
235
|
-
names.
|
|
236
|
-
${attributionRule()}
|
|
237
|
-
The tool's own "Other" choice is the escape hatch for "I don't know". They are
|
|
238
|
-
mid-task -- a blank prompt gets skipped whether or not they knew the answer.
|
|
239
|
-
Record with format "mcq", the labels in "options", and only the stem in
|
|
240
|
-
"question".
|
|
241
|
-
${framing}
|
|
242
|
-
${tone}
|
|
243
|
-
`;
|
|
263
|
+
get_session_quiz_plan, then AskUserQuestion, then record_attempt (format "mcq", labels in "options", stem alone in "question"). The plan's framing, ask_attribution, answer_position and tier_to_ask are the rules — follow them. ${tone}`;
|
|
244
264
|
// exit 0 + JSON, not exit 2 + stderr. Both continue the turn and both pass
|
|
245
265
|
// through the same loop protections; only one of them tells the developer
|
|
246
266
|
// their session just hit an error. No `systemMessage` -- that field is a
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stop-quiz-check.js","sourceRoot":"","sources":["../../src/hooks/stop-quiz-check.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"stop-quiz-check.js","sourceRoot":"","sources":["../../src/hooks/stop-quiz-check.ts"],"names":[],"mappings":"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"}
|
|
@@ -74,9 +74,9 @@ await run(async (input) => {
|
|
|
74
74
|
// subagent may well be the first thing in a session to touch Eklavya, and a
|
|
75
75
|
// hook that bailed on `openExisting() === null` would be silent on exactly
|
|
76
76
|
// the fresh install that most needs the directive.
|
|
77
|
-
if (config(cwdOf(input)).config.
|
|
77
|
+
if (!config(cwdOf(input)).config.quiz.enabled)
|
|
78
78
|
return 0;
|
|
79
|
-
// The one query this hook makes, and only past
|
|
79
|
+
// The one query this hook makes, and only past that gate: a session the
|
|
80
80
|
// developer silenced should not be handed the directive through the back door
|
|
81
81
|
// of delegated work.
|
|
82
82
|
const db = openExisting();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent-start.js","sourceRoot":"","sources":["../../src/hooks/subagent-start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,SAAS,GAAG;+HAC6G,CAAC;AAEhI;;;;;;;;;;;;;GAaG;AACH,SAAS,OAAO,CAAC,SAA6B;IAC5C,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;IACxB,0EAA0E;IAC1E,4EAA4E;IAC5E,2EAA2E;IAC3E,mDAAmD;IACnD,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"subagent-start.js","sourceRoot":"","sources":["../../src/hooks/subagent-start.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,SAAS,GAAG;+HAC6G,CAAC;AAEhI;;;;;;;;;;;;;GAaG;AACH,SAAS,OAAO,CAAC,SAA6B;IAC5C,OAAO,OAAO,SAAS,KAAK,QAAQ,IAAI,SAAS,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;IACxB,0EAA0E;IAC1E,4EAA4E;IAC5E,2EAA2E;IAC3E,mDAAmD;IACnD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO;QAAE,OAAO,CAAC,CAAC;IAExD,wEAAwE;IACxE,8EAA8E;IAC9E,qBAAqB;IACrB,MAAM,EAAE,GAAG,YAAY,EAAE,CAAC;IAC1B,IAAI,EAAE,IAAI,YAAY,CAAC,EAAE,EAAE,SAAS,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAAE,OAAO,CAAC,CAAC;IAE3D,6EAA6E;IAC7E,2EAA2E;IAC3E,2EAA2E;IAC3E,0EAA0E;IAC1E,gEAAgE;IAChE,IAAI,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC;QAAE,OAAO,CAAC,CAAC;IAExC,2EAA2E;IAC3E,2EAA2E;IAC3E,8DAA8D;IAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,GAAG,IAAI,CAAC,SAAS,CAAC;QAChB,kBAAkB,EAAE;YAClB,aAAa,EAAE,eAAe;YAC9B,iBAAiB,EAAE,eAAe,CAAC,SAAS,CAAC;SAC9C;KACF,CAAC,IAAI,CACP,CAAC;IACF,OAAO,CAAC,CAAC;AACX,CAAC,CAAC,CAAC"}
|
package/dist/install.js
CHANGED
|
@@ -389,8 +389,36 @@ function register(version) {
|
|
|
389
389
|
const enabled = (settings.enabledPlugins ?? {});
|
|
390
390
|
enabled['eklavya@eklavya'] = true;
|
|
391
391
|
settings.enabledPlugins = enabled;
|
|
392
|
+
composeStatusLine(settings);
|
|
392
393
|
writeJson(settingsPath, settings);
|
|
393
394
|
}
|
|
395
|
+
/** The status bar command this installer owns, and the only one it will remove. */
|
|
396
|
+
const STATUS_LINE_COMMAND = `node ${path.join(runtimeHome(), 'node_modules', 'eklavya', 'dist', 'cli.js')} statusline`;
|
|
397
|
+
/**
|
|
398
|
+
* Puts the dials in the status bar, and never over somebody else's.
|
|
399
|
+
*
|
|
400
|
+
* `statusLine` holds one command, so "install ours" and "keep yours" cannot
|
|
401
|
+
* both happen — and between the two, keeping theirs is obviously right: a
|
|
402
|
+
* status bar is a thing people build deliberately, often with a script that
|
|
403
|
+
* took an afternoon. So this writes only into an empty slot, and the manual
|
|
404
|
+
* keeps the by-hand instructions for anyone who wants to compose the two
|
|
405
|
+
* themselves.
|
|
406
|
+
*
|
|
407
|
+
* The removal in `deregister` matches on the command being exactly ours, which
|
|
408
|
+
* is what stops an uninstall taking a line it did not write.
|
|
409
|
+
*/
|
|
410
|
+
function composeStatusLine(settings) {
|
|
411
|
+
const existing = settings.statusLine;
|
|
412
|
+
if (existing !== undefined && existing !== null) {
|
|
413
|
+
const command = existing?.command;
|
|
414
|
+
// Ours already, possibly from an older runtime path: refresh it.
|
|
415
|
+
if (typeof command === 'string' && /dist[\\/]cli\.js["']? statusline\b/.test(command)) {
|
|
416
|
+
settings.statusLine = { type: 'command', command: STATUS_LINE_COMMAND, padding: 0 };
|
|
417
|
+
}
|
|
418
|
+
return;
|
|
419
|
+
}
|
|
420
|
+
settings.statusLine = { type: 'command', command: STATUS_LINE_COMMAND, padding: 0 };
|
|
421
|
+
}
|
|
394
422
|
function deregister() {
|
|
395
423
|
const pluginsDir = path.join(claudeHome(), 'plugins');
|
|
396
424
|
const marketplaces = path.join(pluginsDir, 'known_marketplaces.json');
|
|
@@ -420,6 +448,15 @@ function deregister() {
|
|
|
420
448
|
const settingsPath = path.join(claudeHome(), 'settings.json');
|
|
421
449
|
const settings = readJson(settingsPath);
|
|
422
450
|
const enabled = (settings.enabledPlugins ?? {});
|
|
451
|
+
// Only a status line that is exactly ours. Somebody else's stays, and so
|
|
452
|
+
// does one they composed by hand around ours -- this installer did not write
|
|
453
|
+
// it and has no business deciding what is left of it.
|
|
454
|
+
const line = settings.statusLine?.command;
|
|
455
|
+
const ownsStatusLine = typeof line === 'string' && line === STATUS_LINE_COMMAND;
|
|
456
|
+
if (ownsStatusLine) {
|
|
457
|
+
delete settings.statusLine;
|
|
458
|
+
writeJson(settingsPath, settings);
|
|
459
|
+
}
|
|
423
460
|
if ('eklavya@eklavya' in enabled) {
|
|
424
461
|
delete enabled['eklavya@eklavya'];
|
|
425
462
|
settings.enabledPlugins = enabled;
|
package/dist/install.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../src/install.ts"],"names":[],"mappings":"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"}
|