eklavya 1.68.0 → 1.68.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.
@@ -14,6 +14,8 @@ export function identityOf(input, cwd, sid) {
14
14
  // a memory and a mastery row disagree about which codebase they belong to.
15
15
  return { ...identity, project: projectKey(identity.checkout) };
16
16
  }
17
+ /** What an unattended session leaves out of its record. */
18
+ const CHAT_KINDS = ['prompt', 'assistant', 'lifecycle'];
17
19
  /**
18
20
  * Records one event. True once it is stored or safely spooled; false on any
19
21
  * other outcome, and never throws.
@@ -29,10 +31,19 @@ export function identityOf(input, cwd, sid) {
29
31
  * for memory no session is ever handed — and unsummarised evidence is never
30
32
  * pruned. It is also the shared home folder, where a session is least likely to
31
33
  * be the developer's project work.
34
+ *
35
+ * An unattended session (`claude -p`, an eval, a script: the host sets
36
+ * `CLAUDE_CODE_SESSION_ATTENDED=0`) records only what it did to the project.
37
+ * Its prompt, reply and start are nobody's decisions, yet each such call
38
+ * opened a session whose one-event batch cost a provider call, and a burst of
39
+ * them left the real queue hours behind. The tool and file events of an
40
+ * unattended run that edits code are still kept.
32
41
  */
33
42
  export function record(db, resolved, identity, event) {
34
43
  if (identity.project === GLOBAL_PROJECT && !resolved.config.retrieval.cross_project)
35
44
  return false;
45
+ if (process.env.CLAUDE_CODE_SESSION_ATTENDED === '0' && CHAT_KINDS.includes(event.kind))
46
+ return false;
36
47
  try {
37
48
  const outcome = captureOrSpool(db, resolved.config, identity, event);
38
49
  return outcome === 'stored' || outcome === 'spooled';
@@ -1 +1 @@
1
- {"version":3,"file":"capture-lib.js","sourceRoot":"","sources":["../../src/hooks/capture-lib.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,WAAW,EAAyB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAkB,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGrE,MAAM,UAAU,UAAU,CAAC,KAAgB,EAAE,GAAW,EAAE,GAAkB;IAC1E,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,GAAG;QACH,SAAS,EAAE,GAAG,IAAI,SAAS;QAC3B,OAAO,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;QAC/B,IAAI,EAAE,aAAa;KACpB,CAAC,CAAC;IACH,uEAAuE;IACvE,8EAA8E;IAC9E,2EAA2E;IAC3E,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AACjE,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,MAAM,CACpB,EAAM,EACN,QAAwB,EACxB,QAA0B,EAC1B,KAAgB;IAEhB,IAAI,QAAQ,CAAC,OAAO,KAAK,cAAc,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IAClG,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QACrE,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,SAAS,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAAM,EAAE,QAAwB,EAAE,QAA0B;IACtF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACpD,IAAI,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG;YAAE,OAAO;QAC9E,YAAY,CAAC,EAAE,EAAE;YACf,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;IAC1E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"capture-lib.js","sourceRoot":"","sources":["../../src/hooks/capture-lib.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,WAAW,EAAyB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAkB,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAGrE,MAAM,UAAU,UAAU,CAAC,KAAgB,EAAE,GAAW,EAAE,GAAkB;IAC1E,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC3B,GAAG;QACH,SAAS,EAAE,GAAG,IAAI,SAAS;QAC3B,OAAO,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;QAC/B,IAAI,EAAE,aAAa;KACpB,CAAC,CAAC;IACH,uEAAuE;IACvE,8EAA8E;IAC9E,2EAA2E;IAC3E,OAAO,EAAE,GAAG,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;AACjE,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,GAAsB,CAAC,QAAQ,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;AAE3E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,MAAM,CACpB,EAAM,EACN,QAAwB,EACxB,QAA0B,EAC1B,KAAgB;IAEhB,IAAI,QAAQ,CAAC,OAAO,KAAK,cAAc,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa;QAAE,OAAO,KAAK,CAAC;IAClG,IAAI,OAAO,CAAC,GAAG,CAAC,4BAA4B,KAAK,GAAG,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IACtG,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QACrE,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,SAAS,CAAC;IACvD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,WAAW,CAAC,EAAM,EAAE,QAAwB,EAAE,QAA0B;IACtF,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;QACpD,IAAI,iBAAiB,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG;YAAE,OAAO;QAC9E,YAAY,CAAC,EAAE,EAAE;YACf,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,GAAG;SACf,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,wEAAwE;IAC1E,CAAC;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "eklavya",
3
3
  "displayName": "Eklavya",
4
- "version": "1.68.0",
4
+ "version": "1.68.1",
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"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "eklavya",
3
- "version": "1.68.0",
3
+ "version": "1.68.1",
4
4
  "description": "Learn while your agent works — local knowledge graph, spaced repetition, and quiz gating for agent-assisted development.",
5
5
  "license": "MIT",
6
6
  "repository": {