@theokit/sdk-memory 0.1.0 → 0.2.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 (127) hide show
  1. package/CHANGELOG.md +22 -1
  2. package/dist/index.cjs +297 -207
  3. package/dist/index.cjs.map +1 -1
  4. package/dist/index.d.cts +34 -33
  5. package/dist/index.d.ts +34 -33
  6. package/dist/index.d.ts.map +1 -1
  7. package/dist/index.js +300 -211
  8. package/dist/index.js.map +1 -1
  9. package/dist/internal/active-memory/active-memory-cache.d.ts.map +1 -0
  10. package/dist/internal/{active-memory-types.d.ts → active-memory/active-memory-types.d.ts} +1 -1
  11. package/dist/internal/active-memory/active-memory-types.d.ts.map +1 -0
  12. package/dist/internal/{active-memory.d.ts → active-memory/active-memory.d.ts} +2 -2
  13. package/dist/internal/active-memory/active-memory.d.ts.map +1 -0
  14. package/dist/internal/active-memory/composite-scorer.d.ts.map +1 -0
  15. package/dist/internal/active-memory/query-analyzer.d.ts.map +1 -0
  16. package/dist/internal/adapter-catalog.d.ts +6 -6
  17. package/dist/internal/categorized-memory.d.ts +56 -0
  18. package/dist/internal/categorized-memory.d.ts.map +1 -0
  19. package/dist/internal/dreaming/dreaming-diary.d.ts.map +1 -0
  20. package/dist/internal/{dreaming-phases.d.ts → dreaming/dreaming-phases.d.ts} +2 -2
  21. package/dist/internal/dreaming/dreaming-phases.d.ts.map +1 -0
  22. package/dist/internal/{dreaming-run.d.ts → dreaming/dreaming-run.d.ts} +1 -1
  23. package/dist/internal/dreaming/dreaming-run.d.ts.map +1 -0
  24. package/dist/internal/embedding/batch-encoder.d.ts.map +1 -0
  25. package/dist/internal/embedding/deepinfra-embedding.d.ts.map +1 -0
  26. package/dist/internal/embedding/embedding-adapter.d.ts.map +1 -0
  27. package/dist/internal/embedding/embedding-cache.d.ts.map +1 -0
  28. package/dist/internal/embedding/mistral-embedding.d.ts.map +1 -0
  29. package/dist/internal/embedding/ollama-embedding.d.ts.map +1 -0
  30. package/dist/internal/embedding/openai-compatible.d.ts.map +1 -0
  31. package/dist/internal/embedding/openai-embedding.d.ts.map +1 -0
  32. package/dist/internal/embedding/openrouter-embedding.d.ts.map +1 -0
  33. package/dist/internal/embedding/voyage-embedding.d.ts.map +1 -0
  34. package/dist/internal/index/index-db.d.ts.map +1 -0
  35. package/dist/internal/{index-manager-contract.d.ts → index/index-manager-contract.d.ts} +1 -1
  36. package/dist/internal/index/index-manager-contract.d.ts.map +1 -0
  37. package/dist/internal/index/index-manager-dispatch.d.ts.map +1 -0
  38. package/dist/internal/{index-manager.d.ts → index/index-manager.d.ts} +1 -1
  39. package/dist/internal/index/index-manager.d.ts.map +1 -0
  40. package/dist/internal/index/index-schema.d.ts.map +1 -0
  41. package/dist/internal/{lance-index.d.ts → index/lance-index.d.ts} +1 -1
  42. package/dist/internal/index/lance-index.d.ts.map +1 -0
  43. package/dist/internal/index/lance-memory-adapter.d.ts.map +1 -0
  44. package/dist/internal/index/memory-index.d.ts.map +1 -0
  45. package/dist/internal/index/migrate-sqlite-to-lance.d.ts.map +1 -0
  46. package/dist/internal/{migration.d.ts → index/migration.d.ts} +1 -1
  47. package/dist/internal/index/migration.d.ts.map +1 -0
  48. package/dist/internal/index/sqlite-vec-loader.d.ts.map +1 -0
  49. package/dist/internal/{vec-index.d.ts → index/vec-index.d.ts} +1 -1
  50. package/dist/internal/index/vec-index.d.ts.map +1 -0
  51. package/dist/internal/memory-types.d.ts +5 -0
  52. package/dist/internal/memory-types.d.ts.map +1 -1
  53. package/dist/internal/store/chunk-markdown.d.ts.map +1 -0
  54. package/dist/internal/{markdown-store.d.ts → store/markdown-store.d.ts} +1 -1
  55. package/dist/internal/store/markdown-store.d.ts.map +1 -0
  56. package/dist/internal/store/reader.d.ts.map +1 -0
  57. package/dist/internal/store/session-loader.d.ts.map +1 -0
  58. package/dist/internal/store/session-summary-writer.d.ts.map +1 -0
  59. package/dist/internal/store/transcript-store.d.ts.map +1 -0
  60. package/dist/internal/store/wiki-loader.d.ts.map +1 -0
  61. package/dist/internal/tools.d.ts +1 -1
  62. package/dist/internal/tools.d.ts.map +1 -1
  63. package/package.json +9 -9
  64. package/dist/internal/active-memory-cache.d.ts.map +0 -1
  65. package/dist/internal/active-memory-types.d.ts.map +0 -1
  66. package/dist/internal/active-memory.d.ts.map +0 -1
  67. package/dist/internal/batch-encoder.d.ts.map +0 -1
  68. package/dist/internal/chunk-markdown.d.ts.map +0 -1
  69. package/dist/internal/composite-scorer.d.ts.map +0 -1
  70. package/dist/internal/deepinfra-embedding.d.ts.map +0 -1
  71. package/dist/internal/dreaming-diary.d.ts.map +0 -1
  72. package/dist/internal/dreaming-phases.d.ts.map +0 -1
  73. package/dist/internal/dreaming-run.d.ts.map +0 -1
  74. package/dist/internal/embedding-adapter.d.ts.map +0 -1
  75. package/dist/internal/embedding-cache.d.ts.map +0 -1
  76. package/dist/internal/index-db.d.ts.map +0 -1
  77. package/dist/internal/index-manager-contract.d.ts.map +0 -1
  78. package/dist/internal/index-manager-dispatch.d.ts.map +0 -1
  79. package/dist/internal/index-manager.d.ts.map +0 -1
  80. package/dist/internal/index-schema.d.ts.map +0 -1
  81. package/dist/internal/lance-index.d.ts.map +0 -1
  82. package/dist/internal/lance-memory-adapter.d.ts.map +0 -1
  83. package/dist/internal/markdown-store.d.ts.map +0 -1
  84. package/dist/internal/memory-index.d.ts.map +0 -1
  85. package/dist/internal/migrate-sqlite-to-lance.d.ts.map +0 -1
  86. package/dist/internal/migration.d.ts.map +0 -1
  87. package/dist/internal/mistral-embedding.d.ts.map +0 -1
  88. package/dist/internal/ollama-embedding.d.ts.map +0 -1
  89. package/dist/internal/openai-compatible.d.ts.map +0 -1
  90. package/dist/internal/openai-embedding.d.ts.map +0 -1
  91. package/dist/internal/openrouter-embedding.d.ts.map +0 -1
  92. package/dist/internal/query-analyzer.d.ts.map +0 -1
  93. package/dist/internal/reader.d.ts.map +0 -1
  94. package/dist/internal/session-loader.d.ts.map +0 -1
  95. package/dist/internal/session-summary-writer.d.ts.map +0 -1
  96. package/dist/internal/sqlite-vec-loader.d.ts.map +0 -1
  97. package/dist/internal/transcript-store.d.ts.map +0 -1
  98. package/dist/internal/vec-index.d.ts.map +0 -1
  99. package/dist/internal/voyage-embedding.d.ts.map +0 -1
  100. package/dist/internal/wiki-loader.d.ts.map +0 -1
  101. /package/dist/internal/{active-memory-cache.d.ts → active-memory/active-memory-cache.d.ts} +0 -0
  102. /package/dist/internal/{composite-scorer.d.ts → active-memory/composite-scorer.d.ts} +0 -0
  103. /package/dist/internal/{query-analyzer.d.ts → active-memory/query-analyzer.d.ts} +0 -0
  104. /package/dist/internal/{dreaming-diary.d.ts → dreaming/dreaming-diary.d.ts} +0 -0
  105. /package/dist/internal/{batch-encoder.d.ts → embedding/batch-encoder.d.ts} +0 -0
  106. /package/dist/internal/{deepinfra-embedding.d.ts → embedding/deepinfra-embedding.d.ts} +0 -0
  107. /package/dist/internal/{embedding-adapter.d.ts → embedding/embedding-adapter.d.ts} +0 -0
  108. /package/dist/internal/{embedding-cache.d.ts → embedding/embedding-cache.d.ts} +0 -0
  109. /package/dist/internal/{mistral-embedding.d.ts → embedding/mistral-embedding.d.ts} +0 -0
  110. /package/dist/internal/{ollama-embedding.d.ts → embedding/ollama-embedding.d.ts} +0 -0
  111. /package/dist/internal/{openai-compatible.d.ts → embedding/openai-compatible.d.ts} +0 -0
  112. /package/dist/internal/{openai-embedding.d.ts → embedding/openai-embedding.d.ts} +0 -0
  113. /package/dist/internal/{openrouter-embedding.d.ts → embedding/openrouter-embedding.d.ts} +0 -0
  114. /package/dist/internal/{voyage-embedding.d.ts → embedding/voyage-embedding.d.ts} +0 -0
  115. /package/dist/internal/{index-db.d.ts → index/index-db.d.ts} +0 -0
  116. /package/dist/internal/{index-manager-dispatch.d.ts → index/index-manager-dispatch.d.ts} +0 -0
  117. /package/dist/internal/{index-schema.d.ts → index/index-schema.d.ts} +0 -0
  118. /package/dist/internal/{lance-memory-adapter.d.ts → index/lance-memory-adapter.d.ts} +0 -0
  119. /package/dist/internal/{memory-index.d.ts → index/memory-index.d.ts} +0 -0
  120. /package/dist/internal/{migrate-sqlite-to-lance.d.ts → index/migrate-sqlite-to-lance.d.ts} +0 -0
  121. /package/dist/internal/{sqlite-vec-loader.d.ts → index/sqlite-vec-loader.d.ts} +0 -0
  122. /package/dist/internal/{chunk-markdown.d.ts → store/chunk-markdown.d.ts} +0 -0
  123. /package/dist/internal/{reader.d.ts → store/reader.d.ts} +0 -0
  124. /package/dist/internal/{session-loader.d.ts → store/session-loader.d.ts} +0 -0
  125. /package/dist/internal/{session-summary-writer.d.ts → store/session-summary-writer.d.ts} +0 -0
  126. /package/dist/internal/{transcript-store.d.ts → store/transcript-store.d.ts} +0 -0
  127. /package/dist/internal/{wiki-loader.d.ts → store/wiki-loader.d.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,7 +1,22 @@
1
1
  # Changelog — @theokit/sdk-memory
2
2
 
3
+ ## 0.2.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 809418a: M4-3 — typed categorized memory store (plan `m4-categorized-memory`).
8
+
9
+ - `createCategorizedMemory({ root, categories })` — a typed, category-partitioned markdown memory store. `add(category, text)` validates `category` against the closed `categories` taxonomy (fail-loud `ConfigurationError(code: "unknown_category")` before any I/O), redacts secrets, and appends a bullet to `<root>/<category>.md` (frontmatter header + `## Facts`) atomically and serialized per category file (`withCwdMutex` — no lost update under concurrent adds). `list(category?)` returns `CategorizedFact[]` for one category or all; never throws (a missing file → no facts). Construction validates the taxonomy is non-empty, unique, sanitizable, and sanitized-unique.
10
+ - `MemoryFact` gains an optional `category?: string` (backward-compatible — flat-store facts omit it).
11
+
12
+ Composes the shipped `safePathJoin`/`sanitizeIdentifier` (`@theokit/sdk/path-safety`), `redactSecrets`, and `replaceFileAtomic`/`withCwdMutex` (`@theokit/sdk/internal/persistence`). Zero new dependencies — explicitly NOT adding `zod` (the closed `categories` set is the runtime-checked schema).
13
+
3
14
  ## [Unreleased]
4
15
 
16
+ ### Changed
17
+
18
+ - Reorganized the flat 43-file `src/internal/` god folder into 5 sub-concern folders (arch-review M5): `embedding/` (10), `index/` (12), `active-memory/` (5), `dreaming/` (3), `store/` (7); 6 cross-cutting files (`adapter-catalog`, `adapter-http-error`, `circuit-breaker`, `memory-scope`, `memory-types`, `tools`) remain at the `internal/` root. Pure file moves + import-path updates — no behavior/API change (the package barrel `index.ts` re-exports identically); all 324 tests GREEN, `madge --circular` clean.
19
+
5
20
  ### Security (drift sync — iter 112/114/115, 2026-06-09)
6
21
 
7
22
  Three security/perf hardenings shipped in `@theokit/sdk`'s
@@ -28,7 +43,7 @@ they have now been synced. Consumers routing through
28
43
  - **T5.2 — Lance SQL escape hardening (iter 115)** —
29
44
  `lance-index.ts`'s `escapeSqlValue` now rejects NUL bytes,
30
45
  C0 control chars, and DEL via `ConfigurationError({code:
31
- 'sql_injection_blocked'})`, and escapes backslashes (`\` →
46
+ 'sql_injection_blocked'})`, and escapes backslashes (`\` →
32
47
  `\\`) in addition to single quotes. Pre-sync, only `'` → `''`
33
48
  was applied — `\'` could escape the closing quote on engines
34
49
  that interpret backslash-escapes.
@@ -41,6 +56,7 @@ for v1.x back-compat; consumers installing this package get the
41
56
  canonical surface that sdk-core's Stage 4 routing delegates to.
42
57
 
43
58
  **Closed clusters:**
59
+
44
60
  - Dreaming (iter 54+59+60): `dreaming-phases.ts`, `dreaming-diary.ts`,
45
61
  `dreaming-run.ts` + `active-memory-types.ts` (iter 48)
46
62
  - Sessions (iter 61+62): `session-summary-writer.ts`, `session-loader.ts`
@@ -62,6 +78,7 @@ canonical surface that sdk-core's Stage 4 routing delegates to.
62
78
  `active-memory.ts`
63
79
 
64
80
  **Optional peers** (sdk-memory dynamically loads when present):
81
+
65
82
  - `better-sqlite3` (iter 65)
66
83
  - `sqlite-vec` (iter 66)
67
84
  - `@lancedb/lancedb` (iter 68)
@@ -71,6 +88,7 @@ canonical surface that sdk-core's Stage 4 routing delegates to.
71
88
  (verified by the Stage 3 drift detector, iter 93).
72
89
 
73
90
  ### Added (Phase 1 Stage 3 prep — iter 33-35, 2026-06-08)
91
+
74
92
  - `createInMemoryMarkdownProvider.recordSessionSummary` ships REAL
75
93
  filesystem-backed impl (was no-op). Writes
76
94
  `${cwd}/.theokit/memory/sessions/${sanitizeRunId(runId)}.md` via
@@ -89,6 +107,7 @@ canonical surface that sdk-core's Stage 4 routing delegates to.
89
107
  conversations. Returns JSON `{ok, count, results: [{id, snippet}]}`.
90
108
 
91
109
  ### Changed (Phase 1 physical Stage 1 — iter 19, 2026-06-08)
110
+
92
111
  - `createInMemoryMarkdownProvider` now implements the new optional
93
112
  `sync(handle)` port method (no-op for the in-process impl — facts
94
113
  are written synchronously to the Map at handler-call time; nothing
@@ -99,6 +118,7 @@ canonical surface that sdk-core's Stage 4 routing delegates to.
99
118
  ## [0.1.0] — 2026-06-08
100
119
 
101
120
  ### Added
121
+
102
122
  - Initial release. Consumes the `MemoryProvider` port from `@theokit/sdk@>=1.7.0`
103
123
  (SDK 2.0 Phase 1 / T1.6).
104
124
  - `createInMemoryMarkdownProvider()` — first concrete impl. In-process
@@ -106,6 +126,7 @@ canonical surface that sdk-core's Stage 4 routing delegates to.
106
126
  `systemPromptAdditions` for recalled facts; full lifecycle compliance.
107
127
 
108
128
  ### Notes
129
+
109
130
  - LanceDB / embeddings / circuit-breaker / dreaming-sweep deferred to future
110
131
  versions. This release ships the package foundation + a working impl so
111
132
  the SDK 2.0 cohort can publish (Phase 7).