@soleri/core 9.4.0 → 9.5.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.
Files changed (45) hide show
  1. package/dist/hooks/candidate-scorer.d.ts +28 -0
  2. package/dist/hooks/candidate-scorer.d.ts.map +1 -0
  3. package/dist/hooks/candidate-scorer.js +20 -0
  4. package/dist/hooks/candidate-scorer.js.map +1 -0
  5. package/dist/hooks/index.d.ts +2 -0
  6. package/dist/hooks/index.d.ts.map +1 -0
  7. package/dist/hooks/index.js +2 -0
  8. package/dist/hooks/index.js.map +1 -0
  9. package/dist/planning/plan-lifecycle.d.ts.map +1 -1
  10. package/dist/planning/plan-lifecycle.js +6 -1
  11. package/dist/planning/plan-lifecycle.js.map +1 -1
  12. package/package.json +1 -1
  13. package/src/brain/brain.ts +120 -46
  14. package/src/brain/intelligence.ts +42 -34
  15. package/src/chat/agent-loop.ts +1 -1
  16. package/src/chat/notifications.ts +4 -0
  17. package/src/control/intent-router.ts +10 -8
  18. package/src/curator/curator.ts +145 -29
  19. package/src/hooks/candidate-scorer.test.ts +76 -0
  20. package/src/hooks/candidate-scorer.ts +39 -0
  21. package/src/hooks/index.ts +6 -0
  22. package/src/index.ts +2 -0
  23. package/src/llm/llm-client.ts +1 -0
  24. package/src/persistence/sqlite-provider.ts +1 -0
  25. package/src/planning/github-projection.ts +48 -44
  26. package/src/planning/plan-lifecycle.ts +14 -1
  27. package/src/queue/pipeline-runner.ts +4 -0
  28. package/src/runtime/curator-extra-ops.test.ts +7 -0
  29. package/src/runtime/curator-extra-ops.ts +10 -1
  30. package/src/runtime/facades/curator-facade.test.ts +7 -0
  31. package/src/runtime/facades/memory-facade.ts +187 -0
  32. package/src/runtime/orchestrate-ops.ts +3 -3
  33. package/src/runtime/runtime.test.ts +50 -2
  34. package/src/runtime/runtime.ts +117 -89
  35. package/src/runtime/shutdown-registry.test.ts +151 -0
  36. package/src/runtime/shutdown-registry.ts +85 -0
  37. package/src/runtime/types.ts +4 -1
  38. package/src/transport/http-server.ts +50 -3
  39. package/src/transport/ws-server.ts +8 -0
  40. package/src/vault/linking.test.ts +12 -0
  41. package/src/vault/linking.ts +90 -44
  42. package/src/vault/vault-maintenance.ts +11 -18
  43. package/src/vault/vault-memories.ts +21 -13
  44. package/src/vault/vault-schema.ts +21 -0
  45. package/src/vault/vault.ts +8 -3
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Candidate scoring rubric for skill-to-hook conversion.
3
+ * 4-dimension scoring: frequency, eventCorrelation, determinism, autonomy.
4
+ * Threshold: >= 3 HIGH dimensions = candidate for conversion.
5
+ */
6
+ export type DimensionLevel = 'HIGH' | 'LOW';
7
+ export interface CandidateDimensions {
8
+ /** 3+ manual calls per session for same event type → HIGH */
9
+ frequency: DimensionLevel;
10
+ /** Skill consistently triggers on a recognizable hook event → HIGH */
11
+ eventCorrelation: DimensionLevel;
12
+ /** Skill produces consistent, non-exploratory guidance → HIGH */
13
+ determinism: DimensionLevel;
14
+ /** Skill requires no interactive user decisions mid-execution → HIGH */
15
+ autonomy: DimensionLevel;
16
+ }
17
+ export interface CandidateScore {
18
+ dimensions: CandidateDimensions;
19
+ highCount: number;
20
+ candidate: boolean;
21
+ }
22
+ /**
23
+ * Score a skill for hook conversion candidacy.
24
+ * @param dimensions - The 4 scored dimensions (each HIGH or LOW)
25
+ * @returns Score with candidate boolean (true if >= 3 HIGH)
26
+ */
27
+ export declare function scoreCandidateForConversion(dimensions: CandidateDimensions): CandidateScore;
28
+ //# sourceMappingURL=candidate-scorer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"candidate-scorer.d.ts","sourceRoot":"","sources":["../../src/hooks/candidate-scorer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,KAAK,CAAC;AAE5C,MAAM,WAAW,mBAAmB;IAClC,6DAA6D;IAC7D,SAAS,EAAE,cAAc,CAAC;IAC1B,sEAAsE;IACtE,gBAAgB,EAAE,cAAc,CAAC;IACjC,iEAAiE;IACjE,WAAW,EAAE,cAAc,CAAC;IAC5B,wEAAwE;IACxE,QAAQ,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,mBAAmB,CAAC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,mBAAmB,GAAG,cAAc,CAQ3F"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Candidate scoring rubric for skill-to-hook conversion.
3
+ * 4-dimension scoring: frequency, eventCorrelation, determinism, autonomy.
4
+ * Threshold: >= 3 HIGH dimensions = candidate for conversion.
5
+ */
6
+ /**
7
+ * Score a skill for hook conversion candidacy.
8
+ * @param dimensions - The 4 scored dimensions (each HIGH or LOW)
9
+ * @returns Score with candidate boolean (true if >= 3 HIGH)
10
+ */
11
+ export function scoreCandidateForConversion(dimensions) {
12
+ const values = Object.values(dimensions);
13
+ const highCount = values.filter((v) => v === 'HIGH').length;
14
+ return {
15
+ dimensions,
16
+ highCount,
17
+ candidate: highCount >= 3,
18
+ };
19
+ }
20
+ //# sourceMappingURL=candidate-scorer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"candidate-scorer.js","sourceRoot":"","sources":["../../src/hooks/candidate-scorer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAqBH;;;;GAIG;AACH,MAAM,UAAU,2BAA2B,CAAC,UAA+B;IACzE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC,MAAM,CAAC;IAC5D,OAAO;QACL,UAAU;QACV,SAAS;QACT,SAAS,EAAE,SAAS,IAAI,CAAC;KAC1B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { scoreCandidateForConversion, type CandidateDimensions, type CandidateScore, type DimensionLevel, } from './candidate-scorer.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,GACpB,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { scoreCandidateForConversion, } from './candidate-scorer.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,GAI5B,MAAM,uBAAuB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"plan-lifecycle.d.ts","sourceRoot":"","sources":["../../src/planning/plan-lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-lifecycle.d.ts","sourceRoot":"","sources":["../../src/planning/plan-lifecycle.ts"],"names":[],"mappings":"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"}
@@ -298,7 +298,12 @@ export function createPlanObject(params) {
298
298
  scope: params.scope,
299
299
  status: params.initialStatus ?? 'draft',
300
300
  decisions: params.decisions ?? [],
301
- tasks: (params.tasks ?? []).map((t, i) => (Object.assign({ id: `task-${i + 1}`, title: t.title, description: t.description, status: `pending` }, t.phase !== undefined && { phase: t.phase }, t.milestone !== undefined && { milestone: t.milestone }, t.parentTaskId !== undefined && { parentTaskId: t.parentTaskId }, { updatedAt: now }))),
301
+ tasks: (params.tasks ?? []).map((t, i) => Object.assign({
302
+ id: `task-${i + 1}`,
303
+ title: t.title,
304
+ description: t.description,
305
+ status: `pending`,
306
+ }, t.phase !== undefined && { phase: t.phase }, t.milestone !== undefined && { milestone: t.milestone }, t.parentTaskId !== undefined && { parentTaskId: t.parentTaskId }, { updatedAt: now })),
302
307
  ...(params.approach !== undefined && { approach: params.approach }),
303
308
  ...(params.context !== undefined && { context: params.context }),
304
309
  ...(params.success_criteria !== undefined && { success_criteria: params.success_criteria }),
@@ -1 +1 @@
1
- {"version":3,"file":"plan-lifecycle.js","sourceRoot":"","sources":["../../src/planning/plan-lifecycle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan-lifecycle.js","sourceRoot":"","sources":["../../src/planning/plan-lifecycle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAoB9F;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAqC;IACrE,aAAa,EAAE,CAAC,OAAO,CAAC;IACxB,KAAK,EAAE,CAAC,UAAU,CAAC;IACnB,QAAQ,EAAE,CAAC,WAAW,CAAC;IACvB,SAAS,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;IACxC,UAAU,EAAE,CAAC,aAAa,EAAE,WAAW,CAAC;IACxC,WAAW,EAAE,CAAC,WAAW,CAAC;IAC1B,SAAS,EAAE,CAAC,UAAU,CAAC;IACvB,QAAQ,EAAE,EAAE;CACb,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,eAAe;IACf,WAAW;IACX,YAAY;IACZ,aAAa;CACd,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAgB,EAAE,EAAc;IAChE,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAkB;IACrD,OAAO,qBAAqB,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,MAAkB;IAC7C,OAAO,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe,CAC7B,aAAyB,EACzB,YAAwB;IAExB,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,YAAY,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,oBAAoB,CAAC,aAAa,CAAC,CAAC;QAClD,MAAM,IAAI,KAAK,CACb,wBAAwB,aAAa,QAAQ,YAAY,KAAK;YAC5D,2BAA2B,aAAa,MAAM,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAC/F,CAAC;IACJ,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;AACzD,CAAC;AAMD;;;GAGG;AACH,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,IAAI,CAAC;IAC7B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IAC5B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IAC5B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IAC5B,IAAI,KAAK,IAAI,EAAE;QAAE,OAAO,GAAG,CAAC;IAC5B,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAgB;IAC9C,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,IAAI;YACP,OAAO,EAAE,CAAC;QACZ,KAAK,GAAG;YACN,OAAO,EAAE,CAAC;QACZ,KAAK,GAAG;YACN,OAAO,EAAE,CAAC;QACZ,KAAK,GAAG;YACN,OAAO,EAAE,CAAC;QACZ,KAAK,GAAG;YACN,OAAO,EAAE,CAAC;QACZ,KAAK,GAAG;YACN,OAAO,CAAC,CAAC;IACb,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IACvC,KAAK,CAAY;IACjB,KAAK,CAAS;IACd,QAAQ,CAAY;IACpB,IAAI,CAAY;IAEzB,YAAY,KAAgB,EAAE,KAAa,EAAE,QAAmB,EAAE,IAAe;QAC/E,MAAM,UAAU,GAAG,IAAI;aACpB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC;aAClE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;aAChD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,KAAK,CACH,cAAc,KAAK,KAAK,KAAK,6CAA6C,QAAQ,iBAAiB;YACjG,0DAA0D,UAAU,EAAE,CACzE,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,oEAAoE;AAEpE;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAe,EAAE,YAAoB,CAAC;IACnE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACrD,MAAM,eAAe,GAAG,IAAI,GAAG,EAAkB,CAAC;IAClD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,MAAM,GAAW,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACpD,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC7B,IAAI,SAAS,KAAK,CAAC;gBAAE,MAAM,GAAG,CAAC,CAAC;iBAC3B,IAAI,SAAS,KAAK,CAAC;gBAAE,MAAM,GAAG,CAAC,CAAC;QACvC,CAAC;QACD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;QAC9B,IAAI,MAAM,GAAG,CAAC,EAAE,CAAC;YACf,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;QACzF,CAAC;aAAM,CAAC;YACN,kBAAkB,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QACrF,CAAC;IACH,CAAC;IACD,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,kBAAkB,EAAE,CAAC;QACnD,MAAM,GAAG,GAAG,qBAAqB,CAAC,QAAQ,CAAC,CAAC;QAC5C,UAAU,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IACjE,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,eAAe,EAAE,CAAC;QAChD,MAAM,GAAG,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAC1C,OAAO,IAAI,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;IAC9D,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,oEAAoE;AAEpE;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CACrC,KAA0D;IAE1D,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAErD,MAAM,GAAG,GAAG,CAAC,MAAc,EAAW,EAAE;QACtC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC;QACrC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QACtC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACpB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACjC,IAAI,IAAI,EAAE,SAAS,EAAE,CAAC;YACpB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,GAAG,CAAC,GAAG,CAAC;oBAAE,OAAO,IAAI,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC,CAAC;IAEF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AA2BD;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAU,EAAE,OAAuB;IAChE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAChC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QACnC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACnC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC3C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QACjD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;QACrC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;QACvC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,EAAE,CAAC;QACvC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QACzC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC/C,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5D,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACpD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/C,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACjD,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBACd,EAAE,EAAE,QAAQ,QAAQ,GAAG,CAAC,GAAG,CAAC,EAAE;gBAC9B,KAAK,EAAE,CAAC,CAAC,KAAK;gBACd,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,MAAM,EAAE,SAAuB;gBAC/B,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;gBAChD,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC5D,GAAG,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;gBACrE,SAAS,EAAE,GAAG;aACf,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QAChB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;IACvB,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;GAGG;AACH;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAc,EAAE,MAAkB;IACtE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,MAAM,KAAK,aAAa,IAAI,CAAC,IAAI,CAAC,SAAS;QAAE,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;IACtE,IAAI,MAAM,KAAK,WAAW,IAAI,MAAM,KAAK,SAAS,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC1E,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;QACvB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,UAAU,GAAG,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC;QACjD,CAAC;IACH,CAAC;IACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACrB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAmBhC;IACC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,OAAO;QACL,EAAE,EAAE,QAAQ,GAAG,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;QAC3D,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,aAAa,IAAI,OAAO;QACvC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,EAAE;QACjC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACvC,MAAM,CAAC,MAAM,CACX;YACE,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE;YACnB,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,MAAM,EAAE,SAAuB;SAChC,EACD,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,EAC3C,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,EACvD,CAAC,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,EAChE,EAAE,SAAS,EAAE,GAAG,EAAE,CACnB,CACF;QACD,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;QACnE,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC;QAChE,GAAG,CAAC,MAAM,CAAC,gBAAgB,KAAK,SAAS,IAAI,EAAE,gBAAgB,EAAE,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC3F,GAAG,CAAC,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;QACzE,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;QACvD,GAAG,CAAC,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC;QAC5E,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;QAC/E,MAAM,EAAE,EAAE;QACV,SAAS,EAAE,GAAG;QACd,SAAS,EAAE,GAAG;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,IAAU,EACV,KAQE;IAEF,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAChC,EAAE,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE;QACnB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,WAAW,EAAE,CAAC,CAAC,WAAW;QAC1B,MAAM,EAAE,SAAuB;QAC/B,SAAS,EAAE,CAAC,CAAC,SAAS;QACtB,GAAG,CAAC,CAAC,CAAC,kBAAkB,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,kBAAkB,EAAE,CAAC;QACzE,GAAG,CAAC,CAAC,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAChD,GAAG,CAAC,CAAC,CAAC,SAAS,KAAK,SAAS,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC;QAC5D,GAAG,CAAC,CAAC,CAAC,YAAY,KAAK,SAAS,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAC;QACrE,SAAS,EAAE,GAAG;KACf,CAAC,CAAC,CAAC;IACJ,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;oBACnB,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,EAAE,8BAA8B,GAAG,GAAG,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;YACzD,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,CAAC,EAAE,qCAAqC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QAC7F,CAAC;IACH,CAAC;IACD,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AACvB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soleri/core",
3
- "version": "9.4.0",
3
+ "version": "9.5.0",
4
4
  "description": "Shared engine for Soleri agents — vault, brain, planner, LLM utilities, and facade infrastructure.",
5
5
  "keywords": [
6
6
  "agent",
@@ -10,6 +10,7 @@ import {
10
10
  cosineSimilarity,
11
11
  jaccardSimilarity,
12
12
  } from '../text/similarity.js';
13
+ import { rowToEntry } from '../vault/vault-entries.js';
13
14
  import type {
14
15
  ScoringWeights,
15
16
  ScoreBreakdown,
@@ -58,7 +59,7 @@ export class Brain {
58
59
  constructor(vault: Vault, vaultManager?: VaultManager) {
59
60
  this.vault = vault;
60
61
  this.vaultManager = vaultManager;
61
- this.rebuildVocabulary();
62
+ this.loadVocabularyFromDb();
62
63
  this.recomputeWeights();
63
64
  }
64
65
 
@@ -98,9 +99,15 @@ export class Brain {
98
99
  const queryDomain = options?.domain;
99
100
  const now = Math.floor(Date.now() / 1000);
100
101
 
102
+ // Compute queryVec once for all entries (was previously recomputed per entry in scoreEntry)
103
+ const queryVec =
104
+ this.vocabulary.size > 0 && queryTokens.length > 0
105
+ ? calculateTfIdf(queryTokens, this.vocabulary)
106
+ : null;
107
+
101
108
  const ranked = rawResults.map((result) => {
102
109
  const entry = result.entry;
103
- const breakdown = this.scoreEntry(entry, queryTokens, queryTags, queryDomain, now);
110
+ const breakdown = this.scoreEntry(entry, queryTokens, queryTags, queryDomain, now, queryVec);
104
111
  return { entry, score: breakdown.total, breakdown };
105
112
  });
106
113
 
@@ -142,14 +149,17 @@ export class Brain {
142
149
  /**
143
150
  * Two-pass retrieval — Pass 2: Load.
144
151
  * Returns full entries for specific IDs (from a previous scan).
152
+ * Uses a single WHERE id IN (...) query instead of per-ID lookups.
145
153
  */
146
154
  loadEntries(ids: string[]): IntelligenceEntry[] {
147
- const results: IntelligenceEntry[] = [];
148
- for (const id of ids) {
149
- const entry = this.vault.get(id);
150
- if (entry) results.push(entry);
151
- }
152
- return results;
155
+ if (ids.length === 0) return [];
156
+ const provider = this.vault.getProvider();
157
+ const placeholders = ids.map(() => '?').join(',');
158
+ const rows = provider.all<Record<string, unknown>>(
159
+ `SELECT * FROM entries WHERE id IN (${placeholders})`,
160
+ ids,
161
+ );
162
+ return rows.map(rowToEntry);
153
163
  }
154
164
 
155
165
  /** Rough token estimate for an entry (chars / 4). */
@@ -345,22 +355,57 @@ export class Brain {
345
355
  }
346
356
 
347
357
  rebuildVocabulary(): void {
358
+ const BATCH_SIZE = 100;
359
+ const termDocFreq = new Map<string, number>();
360
+ let docCount = 0;
361
+
362
+ // Helper to process a batch of entries into the term-doc-frequency map
363
+ const processBatch = (entries: IntelligenceEntry[]): void => {
364
+ for (const entry of entries) {
365
+ const text = [
366
+ entry.title,
367
+ entry.description,
368
+ entry.context ?? '',
369
+ entry.tags.join(' '),
370
+ ].join(' ');
371
+ const tokens = new Set(tokenize(text));
372
+ for (const token of tokens) {
373
+ termDocFreq.set(token, (termDocFreq.get(token) ?? 0) + 1);
374
+ }
375
+ }
376
+ docCount += entries.length;
377
+ };
378
+
379
+ // Helper to iterate a single vault in batches
380
+ const iterateVault = (vault: Vault, seen: Set<string> | null): void => {
381
+ let offset = 0;
382
+ while (true) {
383
+ const batch = vault.list({ limit: BATCH_SIZE, offset });
384
+ if (batch.length === 0) break;
385
+ if (seen) {
386
+ const unique = batch.filter((e) => {
387
+ if (seen.has(e.id)) return false;
388
+ seen.add(e.id);
389
+ return true;
390
+ });
391
+ processBatch(unique);
392
+ } else {
393
+ processBatch(batch);
394
+ }
395
+ if (batch.length < BATCH_SIZE) break;
396
+ offset += BATCH_SIZE;
397
+ }
398
+ };
399
+
348
400
  // Collect entries from all connected sources when VaultManager is available
349
- let entries: IntelligenceEntry[];
350
401
  if (this.vaultManager) {
351
402
  const seen = new Set<string>();
352
- entries = [];
353
403
  // Gather entries from all tier vaults and connected sources via manager
354
404
  for (const tierInfo of this.vaultManager.listTiers()) {
355
405
  if (!tierInfo.connected) continue;
356
406
  try {
357
407
  const tierVault = this.vaultManager.getTier(tierInfo.tier);
358
- for (const e of tierVault.list({ limit: 100000 })) {
359
- if (!seen.has(e.id)) {
360
- seen.add(e.id);
361
- entries.push(e);
362
- }
363
- }
408
+ iterateVault(tierVault, seen);
364
409
  } catch {
365
410
  /* tier not connected */
366
411
  }
@@ -369,44 +414,28 @@ export class Brain {
369
414
  const cv = this.vaultManager.getConnected(name);
370
415
  if (!cv) continue;
371
416
  try {
372
- for (const e of cv.vault.list({ limit: 100000 })) {
373
- if (!seen.has(e.id)) {
374
- seen.add(e.id);
375
- entries.push(e);
376
- }
377
- }
417
+ iterateVault(cv.vault, seen);
378
418
  } catch {
379
419
  /* source not accessible */
380
420
  }
381
421
  }
382
422
  } else {
383
- entries = this.vault.list({ limit: 100000 });
423
+ iterateVault(this.vault, null);
384
424
  }
385
- const docCount = entries.length;
425
+
386
426
  if (docCount === 0) {
387
427
  this.vocabulary.clear();
388
- this.persistVocabulary();
428
+ this.persistVocabularyFull();
389
429
  return;
390
430
  }
391
431
 
392
- const termDocFreq = new Map<string, number>();
393
- for (const entry of entries) {
394
- const text = [entry.title, entry.description, entry.context ?? '', entry.tags.join(' ')].join(
395
- ' ',
396
- );
397
- const tokens = new Set(tokenize(text));
398
- for (const token of tokens) {
399
- termDocFreq.set(token, (termDocFreq.get(token) ?? 0) + 1);
400
- }
401
- }
402
-
403
432
  this.vocabulary.clear();
404
433
  for (const [term, df] of termDocFreq) {
405
434
  const idf = Math.log((docCount + 1) / (df + 1)) + 1;
406
435
  this.vocabulary.set(term, idf);
407
436
  }
408
437
 
409
- this.persistVocabulary();
438
+ this.persistVocabularyFull();
410
439
  }
411
440
 
412
441
  getStats(): BrainStats {
@@ -469,11 +498,12 @@ export class Brain {
469
498
  queryTags: string[],
470
499
  queryDomain: string | undefined,
471
500
  now: number,
501
+ queryVec: Map<string, number> | null = null,
472
502
  ): ScoreBreakdown {
473
503
  const w = this.weights;
474
504
 
475
505
  let semantic = 0;
476
- if (this.vocabulary.size > 0 && queryTokens.length > 0) {
506
+ if (queryVec && queryVec.size > 0) {
477
507
  const entryText = [
478
508
  entry.title,
479
509
  entry.description,
@@ -481,7 +511,6 @@ export class Brain {
481
511
  entry.tags.join(' '),
482
512
  ].join(' ');
483
513
  const entryTokens = tokenize(entryText);
484
- const queryVec = calculateTfIdf(queryTokens, this.vocabulary);
485
514
  const entryVec = calculateTfIdf(entryTokens, this.vocabulary);
486
515
  semantic = cosineSimilarity(queryVec, entryVec);
487
516
  }
@@ -572,27 +601,72 @@ export class Brain {
572
601
  const tokens = new Set(tokenize(text));
573
602
  const totalDocs = this.vault.stats().totalEntries;
574
603
 
604
+ const changedTerms = new Map<string, number>();
575
605
  for (const token of tokens) {
576
606
  const currentDocCount = this.vocabulary.has(token)
577
607
  ? Math.round(totalDocs / Math.exp(this.vocabulary.get(token)! - 1)) + 1
578
608
  : 1;
579
609
  const newIdf = Math.log((totalDocs + 1) / (currentDocCount + 1)) + 1;
580
610
  this.vocabulary.set(token, newIdf);
611
+ changedTerms.set(token, newIdf);
612
+ }
613
+
614
+ this.persistVocabularyPartial(changedTerms);
615
+ }
616
+
617
+ private persistVocabularyPartial(terms: Map<string, number>): void {
618
+ if (terms.size === 0) return;
619
+ const db = this.vault.getDb();
620
+ const upsert = db.prepare(
621
+ 'INSERT OR REPLACE INTO brain_vocabulary (term, idf, doc_count, updated_at) VALUES (?, ?, 1, unixepoch())',
622
+ );
623
+ const tx = db.transaction(() => {
624
+ for (const [term, idf] of terms) {
625
+ upsert.run(term, idf);
626
+ }
627
+ });
628
+ tx();
629
+ }
630
+
631
+ /**
632
+ * Fast startup path: load vocabulary from the brain_vocabulary table.
633
+ * If the table is empty (first boot or after corruption), trigger a full rebuild.
634
+ */
635
+ private loadVocabularyFromDb(): void {
636
+ const db = this.vault.getDb();
637
+ const rows = db.prepare('SELECT term, idf FROM brain_vocabulary').all() as Array<{
638
+ term: string;
639
+ idf: number;
640
+ }>;
641
+
642
+ if (rows.length === 0) {
643
+ this.rebuildVocabulary();
644
+ return;
581
645
  }
582
646
 
583
- this.persistVocabulary();
647
+ this.vocabulary.clear();
648
+ for (const row of rows) {
649
+ this.vocabulary.set(row.term, row.idf);
650
+ }
584
651
  }
585
652
 
586
- private persistVocabulary(): void {
653
+ /**
654
+ * Full persist: DELETE all rows then re-INSERT. Used by rebuildVocabulary() which
655
+ * replaces the entire vocabulary and needs to remove stale terms.
656
+ */
657
+ private persistVocabularyFull(): void {
587
658
  const db = this.vault.getDb();
588
- db.prepare('DELETE FROM brain_vocabulary').run();
589
- if (this.vocabulary.size === 0) return;
590
- const insert = db.prepare(
591
- 'INSERT INTO brain_vocabulary (term, idf, doc_count) VALUES (?, ?, ?)',
659
+ if (this.vocabulary.size === 0) {
660
+ db.prepare('DELETE FROM brain_vocabulary').run();
661
+ return;
662
+ }
663
+ const upsert = db.prepare(
664
+ 'INSERT OR REPLACE INTO brain_vocabulary (term, idf, doc_count, updated_at) VALUES (?, ?, 1, unixepoch())',
592
665
  );
593
666
  const tx = db.transaction(() => {
667
+ db.prepare('DELETE FROM brain_vocabulary').run();
594
668
  for (const [term, idf] of this.vocabulary) {
595
- insert.run(term, idf, 1);
669
+ upsert.run(term, idf);
596
670
  }
597
671
  });
598
672
  tx();
@@ -499,7 +499,7 @@ export class BrainIntelligence {
499
499
  // ─── Strength Scoring ─────────────────────────────────────────────
500
500
 
501
501
  computeStrengths(): PatternStrength[] {
502
- // Gather feedback data grouped by entry_id
502
+ // Gather feedback data grouped by entry_id, JOIN with entries to avoid N+1 vault.get() calls
503
503
  const feedbackRows = this.provider.all<{
504
504
  entry_id: string;
505
505
  total: number;
@@ -508,16 +508,21 @@ export class BrainIntelligence {
508
508
  modified: number;
509
509
  failed: number;
510
510
  last_used: string;
511
+ entry_title: string | null;
512
+ entry_domain: string | null;
511
513
  }>(
512
- `SELECT entry_id,
514
+ `SELECT bf.entry_id,
513
515
  COUNT(*) as total,
514
- SUM(CASE WHEN action = 'accepted' THEN 1 ELSE 0 END) as accepted,
515
- SUM(CASE WHEN action = 'dismissed' THEN 1 ELSE 0 END) as dismissed,
516
- SUM(CASE WHEN action = 'modified' THEN 1 ELSE 0 END) as modified,
517
- SUM(CASE WHEN action = 'failed' THEN 1 ELSE 0 END) as failed,
518
- MAX(created_at) as last_used
519
- FROM brain_feedback
520
- GROUP BY entry_id`,
516
+ SUM(CASE WHEN bf.action = 'accepted' THEN 1 ELSE 0 END) as accepted,
517
+ SUM(CASE WHEN bf.action = 'dismissed' THEN 1 ELSE 0 END) as dismissed,
518
+ SUM(CASE WHEN bf.action = 'modified' THEN 1 ELSE 0 END) as modified,
519
+ SUM(CASE WHEN bf.action = 'failed' THEN 1 ELSE 0 END) as failed,
520
+ MAX(bf.created_at) as last_used,
521
+ e.title as entry_title,
522
+ e.domain as entry_domain
523
+ FROM brain_feedback bf
524
+ LEFT JOIN entries e ON e.id = bf.entry_id
525
+ GROUP BY bf.entry_id`,
521
526
  );
522
527
 
523
528
  // Count unique session domains as spread proxy
@@ -530,10 +535,9 @@ export class BrainIntelligence {
530
535
  const strengths: PatternStrength[] = [];
531
536
 
532
537
  for (const row of feedbackRows) {
533
- // Look up vault entry for domain info
534
- const entry = this.vault.get(row.entry_id);
535
- const domain = entry?.domain ?? 'unknown';
536
- const pattern = entry?.title ?? row.entry_id;
538
+ // Use JOINed entry data no per-row vault.get() needed
539
+ const domain = row.entry_domain ?? 'unknown';
540
+ const pattern = row.entry_title ?? row.entry_id;
537
541
 
538
542
  // Usage score: min(25, (count / USAGE_MAX) * 25)
539
543
  const usageScore = Math.min(25, (row.total / USAGE_MAX) * 25);
@@ -571,29 +575,33 @@ export class BrainIntelligence {
571
575
  };
572
576
 
573
577
  strengths.push(ps);
574
-
575
- // Persist
576
- this.provider.run(
577
- `INSERT OR REPLACE INTO brain_strengths
578
- (pattern, domain, strength, usage_score, spread_score, success_score, recency_score,
579
- usage_count, unique_contexts, success_rate, last_used, updated_at)
580
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'))`,
581
- [
582
- ps.pattern,
583
- ps.domain,
584
- ps.strength,
585
- ps.usageScore,
586
- ps.spreadScore,
587
- ps.successScore,
588
- ps.recencyScore,
589
- ps.usageCount,
590
- ps.uniqueContexts,
591
- ps.successRate,
592
- ps.lastUsed,
593
- ],
594
- );
595
578
  }
596
579
 
580
+ // Persist all strengths in a single transaction to avoid N fsync calls
581
+ this.provider.transaction(() => {
582
+ for (const ps of strengths) {
583
+ this.provider.run(
584
+ `INSERT OR REPLACE INTO brain_strengths
585
+ (pattern, domain, strength, usage_score, spread_score, success_score, recency_score,
586
+ usage_count, unique_contexts, success_rate, last_used, updated_at)
587
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, datetime('now'))`,
588
+ [
589
+ ps.pattern,
590
+ ps.domain,
591
+ ps.strength,
592
+ ps.usageScore,
593
+ ps.spreadScore,
594
+ ps.successScore,
595
+ ps.recencyScore,
596
+ ps.usageCount,
597
+ ps.uniqueContexts,
598
+ ps.successRate,
599
+ ps.lastUsed,
600
+ ],
601
+ );
602
+ }
603
+ });
604
+
597
605
  return strengths;
598
606
  }
599
607
 
@@ -292,7 +292,7 @@ async function callAnthropic(params: AnthropicCallParams): Promise<AnthropicResp
292
292
  'anthropic-version': API_VERSION,
293
293
  },
294
294
  body: JSON.stringify(body),
295
- signal: params.signal,
295
+ signal: params.signal ?? AbortSignal.timeout(120_000),
296
296
  });
297
297
 
298
298
  if (!response.ok) {
@@ -88,6 +88,10 @@ export class NotificationEngine {
88
88
  setTimeout(() => this.poll(), 10_000);
89
89
 
90
90
  this.timer = setInterval(() => this.poll(), this.intervalMs);
91
+ // Don't prevent process exit for background notification polling
92
+ if (this.timer && typeof this.timer === 'object' && 'unref' in this.timer) {
93
+ (this.timer as NodeJS.Timeout).unref();
94
+ }
91
95
  }
92
96
 
93
97
  /**
@@ -162,6 +162,7 @@ export class IntentRouter {
162
162
  private vault: Vault;
163
163
  private provider: PersistenceProvider;
164
164
  private currentMode: OperationalMode = 'GENERAL-MODE';
165
+ private modesCache: ModeConfig[] | null = null;
165
166
 
166
167
  constructor(vault: Vault) {
167
168
  this.vault = vault;
@@ -322,6 +323,7 @@ export class IntentRouter {
322
323
 
323
324
  const previousMode = this.currentMode;
324
325
  this.currentMode = resolvedMode;
326
+ this.modesCache = null; // Invalidate cache on mode change
325
327
  const behaviorRules = JSON.parse(row.behavior_rules) as string[];
326
328
 
327
329
  return { previousMode, currentMode: resolvedMode, behaviorRules };
@@ -333,18 +335,16 @@ export class IntentRouter {
333
335
 
334
336
  getBehaviorRules(mode?: OperationalMode): string[] {
335
337
  const target = mode ?? this.currentMode;
336
- const row = this.provider.get<{ behavior_rules: string }>(
337
- 'SELECT behavior_rules FROM agent_modes WHERE mode = ?',
338
- [target],
339
- );
340
-
341
- if (!row) return [];
342
- return JSON.parse(row.behavior_rules) as string[];
338
+ const modes = this.getModes();
339
+ const found = modes.find((m) => m.mode === target);
340
+ return found ? found.behaviorRules : [];
343
341
  }
344
342
 
345
343
  getModes(): ModeConfig[] {
344
+ if (this.modesCache) return this.modesCache;
346
345
  const rows = this.provider.all<ModeRow>('SELECT * FROM agent_modes ORDER BY mode');
347
- return rows.map(rowToModeConfig);
346
+ this.modesCache = rows.map(rowToModeConfig);
347
+ return this.modesCache;
348
348
  }
349
349
 
350
350
  registerMode(config: ModeConfig): void {
@@ -359,6 +359,7 @@ export class IntentRouter {
359
359
  JSON.stringify(config.keywords),
360
360
  ],
361
361
  );
362
+ this.modesCache = null;
362
363
  }
363
364
 
364
365
  updateModeRules(mode: OperationalMode, rules: string[]): void {
@@ -369,6 +370,7 @@ export class IntentRouter {
369
370
  if (result.changes === 0) {
370
371
  throw new Error(`Unknown mode: ${mode}`);
371
372
  }
373
+ this.modesCache = null;
372
374
  }
373
375
 
374
376
  // ─── Routing Feedback ─────────────────────────────────────────────