abmind 0.0.1 → 0.1.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.
Files changed (533) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/LICENSE +190 -0
  3. package/README.md +191 -0
  4. package/dist/cli/abmind-backfill.d.ts +3 -0
  5. package/dist/cli/abmind-backfill.d.ts.map +1 -0
  6. package/dist/cli/abmind-backfill.js +64 -0
  7. package/dist/cli/abmind-backfill.js.map +1 -0
  8. package/dist/cli/abmind-backup.d.ts +5 -0
  9. package/dist/cli/abmind-backup.d.ts.map +1 -0
  10. package/dist/cli/abmind-backup.js +44 -0
  11. package/dist/cli/abmind-backup.js.map +1 -0
  12. package/dist/cli/abmind-bundle.d.ts +7 -0
  13. package/dist/cli/abmind-bundle.d.ts.map +1 -0
  14. package/dist/cli/abmind-bundle.js +17 -0
  15. package/dist/cli/abmind-bundle.js.map +1 -0
  16. package/dist/cli/abmind-edit.d.ts +10 -0
  17. package/dist/cli/abmind-edit.d.ts.map +1 -0
  18. package/dist/cli/abmind-edit.js +160 -0
  19. package/dist/cli/abmind-edit.js.map +1 -0
  20. package/dist/cli/abmind-embed.d.ts +3 -0
  21. package/dist/cli/abmind-embed.d.ts.map +1 -0
  22. package/dist/cli/abmind-embed.js +83 -0
  23. package/dist/cli/abmind-embed.js.map +1 -0
  24. package/dist/cli/abmind-expand.d.ts +6 -0
  25. package/dist/cli/abmind-expand.d.ts.map +1 -0
  26. package/dist/cli/abmind-expand.js +100 -0
  27. package/dist/cli/abmind-expand.js.map +1 -0
  28. package/dist/cli/abmind-hook-doctor.d.ts +8 -0
  29. package/dist/cli/abmind-hook-doctor.d.ts.map +1 -0
  30. package/dist/cli/abmind-hook-doctor.js +73 -0
  31. package/dist/cli/abmind-hook-doctor.js.map +1 -0
  32. package/dist/cli/abmind-hook-recall.d.ts +16 -0
  33. package/dist/cli/abmind-hook-recall.d.ts.map +1 -0
  34. package/dist/cli/abmind-hook-recall.js +123 -0
  35. package/dist/cli/abmind-hook-recall.js.map +1 -0
  36. package/dist/cli/abmind-hook-store.d.ts +17 -0
  37. package/dist/cli/abmind-hook-store.d.ts.map +1 -0
  38. package/dist/cli/abmind-hook-store.js +115 -0
  39. package/dist/cli/abmind-hook-store.js.map +1 -0
  40. package/dist/cli/abmind-hook-wakeup.d.ts +12 -0
  41. package/dist/cli/abmind-hook-wakeup.d.ts.map +1 -0
  42. package/dist/cli/abmind-hook-wakeup.js +143 -0
  43. package/dist/cli/abmind-hook-wakeup.js.map +1 -0
  44. package/dist/cli/abmind-ingest.d.ts +7 -0
  45. package/dist/cli/abmind-ingest.d.ts.map +1 -0
  46. package/dist/cli/abmind-ingest.js +96 -0
  47. package/dist/cli/abmind-ingest.js.map +1 -0
  48. package/dist/cli/abmind-install.d.ts +10 -0
  49. package/dist/cli/abmind-install.d.ts.map +1 -0
  50. package/dist/cli/abmind-install.js +240 -0
  51. package/dist/cli/abmind-install.js.map +1 -0
  52. package/dist/cli/abmind-mcp.d.ts +3 -0
  53. package/dist/cli/abmind-mcp.d.ts.map +1 -0
  54. package/dist/cli/abmind-mcp.js +26 -0
  55. package/dist/cli/abmind-mcp.js.map +1 -0
  56. package/dist/cli/abmind-memory-stats.d.ts +3 -0
  57. package/dist/cli/abmind-memory-stats.d.ts.map +1 -0
  58. package/dist/cli/abmind-memory-stats.js +45 -0
  59. package/dist/cli/abmind-memory-stats.js.map +1 -0
  60. package/dist/cli/abmind-migrate-openclaw.d.ts +12 -0
  61. package/dist/cli/abmind-migrate-openclaw.d.ts.map +1 -0
  62. package/dist/cli/abmind-migrate-openclaw.js +247 -0
  63. package/dist/cli/abmind-migrate-openclaw.js.map +1 -0
  64. package/dist/cli/abmind-recall.d.ts +8 -0
  65. package/dist/cli/abmind-recall.d.ts.map +1 -0
  66. package/dist/cli/abmind-recall.js +94 -0
  67. package/dist/cli/abmind-recall.js.map +1 -0
  68. package/dist/cli/abmind-reset.d.ts +11 -0
  69. package/dist/cli/abmind-reset.d.ts.map +1 -0
  70. package/dist/cli/abmind-reset.js +143 -0
  71. package/dist/cli/abmind-reset.js.map +1 -0
  72. package/dist/cli/abmind-restore.d.ts +5 -0
  73. package/dist/cli/abmind-restore.d.ts.map +1 -0
  74. package/dist/cli/abmind-restore.js +64 -0
  75. package/dist/cli/abmind-restore.js.map +1 -0
  76. package/dist/cli/abmind-retro-extract.d.ts +15 -0
  77. package/dist/cli/abmind-retro-extract.d.ts.map +1 -0
  78. package/dist/cli/abmind-retro-extract.js +113 -0
  79. package/dist/cli/abmind-retro-extract.js.map +1 -0
  80. package/dist/cli/abmind-rollback.d.ts +8 -0
  81. package/dist/cli/abmind-rollback.d.ts.map +1 -0
  82. package/dist/cli/abmind-rollback.js +76 -0
  83. package/dist/cli/abmind-rollback.js.map +1 -0
  84. package/dist/cli/abmind-secrets.d.ts +12 -0
  85. package/dist/cli/abmind-secrets.d.ts.map +1 -0
  86. package/dist/cli/abmind-secrets.js +83 -0
  87. package/dist/cli/abmind-secrets.js.map +1 -0
  88. package/dist/cli/abmind-sleep-apply.d.ts +3 -0
  89. package/dist/cli/abmind-sleep-apply.d.ts.map +1 -0
  90. package/dist/cli/abmind-sleep-apply.js +50 -0
  91. package/dist/cli/abmind-sleep-apply.js.map +1 -0
  92. package/dist/cli/abmind-sleep-report.d.ts +3 -0
  93. package/dist/cli/abmind-sleep-report.d.ts.map +1 -0
  94. package/dist/cli/abmind-sleep-report.js +40 -0
  95. package/dist/cli/abmind-sleep-report.js.map +1 -0
  96. package/dist/cli/abmind-sleep-state.d.ts +3 -0
  97. package/dist/cli/abmind-sleep-state.d.ts.map +1 -0
  98. package/dist/cli/abmind-sleep-state.js +33 -0
  99. package/dist/cli/abmind-sleep-state.js.map +1 -0
  100. package/dist/cli/abmind-sleep.d.ts +14 -0
  101. package/dist/cli/abmind-sleep.d.ts.map +1 -0
  102. package/dist/cli/abmind-sleep.js +186 -0
  103. package/dist/cli/abmind-sleep.js.map +1 -0
  104. package/dist/cli/abmind-status-runtime.d.ts +9 -0
  105. package/dist/cli/abmind-status-runtime.d.ts.map +1 -0
  106. package/dist/cli/abmind-status-runtime.js +132 -0
  107. package/dist/cli/abmind-status-runtime.js.map +1 -0
  108. package/dist/cli/abmind-status.d.ts +3 -0
  109. package/dist/cli/abmind-status.d.ts.map +1 -0
  110. package/dist/cli/abmind-status.js +45 -0
  111. package/dist/cli/abmind-status.js.map +1 -0
  112. package/dist/cli/abmind-store.d.ts +54 -0
  113. package/dist/cli/abmind-store.d.ts.map +1 -0
  114. package/dist/cli/abmind-store.js +251 -0
  115. package/dist/cli/abmind-store.js.map +1 -0
  116. package/dist/cli/abmind-update.d.ts +11 -0
  117. package/dist/cli/abmind-update.d.ts.map +1 -0
  118. package/dist/cli/abmind-update.js +160 -0
  119. package/dist/cli/abmind-update.js.map +1 -0
  120. package/dist/cli/abmind-wakeup.d.ts +3 -0
  121. package/dist/cli/abmind-wakeup.d.ts.map +1 -0
  122. package/dist/cli/abmind-wakeup.js +36 -0
  123. package/dist/cli/abmind-wakeup.js.map +1 -0
  124. package/dist/cli/abmind.d.ts +10 -0
  125. package/dist/cli/abmind.d.ts.map +1 -0
  126. package/dist/cli/abmind.js +100 -0
  127. package/dist/cli/abmind.js.map +1 -0
  128. package/dist/src/abm-v2-vocab.d.ts +10 -0
  129. package/dist/src/abm-v2-vocab.d.ts.map +1 -0
  130. package/dist/src/abm-v2-vocab.js +66 -0
  131. package/dist/src/abm-v2-vocab.js.map +1 -0
  132. package/dist/src/adapters/openclaw.d.ts +66 -0
  133. package/dist/src/adapters/openclaw.d.ts.map +1 -0
  134. package/dist/src/adapters/openclaw.js +97 -0
  135. package/dist/src/adapters/openclaw.js.map +1 -0
  136. package/dist/src/backend-factory.d.ts +9 -0
  137. package/dist/src/backend-factory.d.ts.map +1 -0
  138. package/dist/src/backend-factory.js +23 -0
  139. package/dist/src/backend-factory.js.map +1 -0
  140. package/dist/src/backup.d.ts +19 -0
  141. package/dist/src/backup.d.ts.map +1 -0
  142. package/dist/src/backup.js +191 -0
  143. package/dist/src/backup.js.map +1 -0
  144. package/dist/src/brain-patterns.d.ts +20 -0
  145. package/dist/src/brain-patterns.d.ts.map +1 -0
  146. package/dist/src/brain-patterns.js +72 -0
  147. package/dist/src/brain-patterns.js.map +1 -0
  148. package/dist/src/cli-entry.d.ts +10 -0
  149. package/dist/src/cli-entry.d.ts.map +1 -0
  150. package/dist/src/cli-entry.js +29 -0
  151. package/dist/src/cli-entry.js.map +1 -0
  152. package/dist/src/cli-flags.d.ts +29 -0
  153. package/dist/src/cli-flags.d.ts.map +1 -0
  154. package/dist/src/cli-flags.js +72 -0
  155. package/dist/src/cli-flags.js.map +1 -0
  156. package/dist/src/cli-runner-raw.d.ts +21 -0
  157. package/dist/src/cli-runner-raw.d.ts.map +1 -0
  158. package/dist/src/cli-runner-raw.js +41 -0
  159. package/dist/src/cli-runner-raw.js.map +1 -0
  160. package/dist/src/cli-runner.d.ts +26 -0
  161. package/dist/src/cli-runner.d.ts.map +1 -0
  162. package/dist/src/cli-runner.js +51 -0
  163. package/dist/src/cli-runner.js.map +1 -0
  164. package/dist/src/consolidation-search.d.ts +17 -0
  165. package/dist/src/consolidation-search.d.ts.map +1 -0
  166. package/dist/src/consolidation-search.js +83 -0
  167. package/dist/src/consolidation-search.js.map +1 -0
  168. package/dist/src/context-engine.d.ts +89 -0
  169. package/dist/src/context-engine.d.ts.map +1 -0
  170. package/dist/src/context-engine.js +216 -0
  171. package/dist/src/context-engine.js.map +1 -0
  172. package/dist/src/context-tier-renderer.d.ts +79 -0
  173. package/dist/src/context-tier-renderer.d.ts.map +1 -0
  174. package/dist/src/context-tier-renderer.js +223 -0
  175. package/dist/src/context-tier-renderer.js.map +1 -0
  176. package/dist/src/contradiction-checker.d.ts +16 -0
  177. package/dist/src/contradiction-checker.d.ts.map +1 -0
  178. package/dist/src/contradiction-checker.js +40 -0
  179. package/dist/src/contradiction-checker.js.map +1 -0
  180. package/dist/src/crypto.d.ts +15 -0
  181. package/dist/src/crypto.d.ts.map +1 -0
  182. package/dist/src/crypto.js +86 -0
  183. package/dist/src/crypto.js.map +1 -0
  184. package/dist/src/deploy-lib/cleanup.d.ts +38 -0
  185. package/dist/src/deploy-lib/cleanup.d.ts.map +1 -0
  186. package/dist/src/deploy-lib/cleanup.js +71 -0
  187. package/dist/src/deploy-lib/cleanup.js.map +1 -0
  188. package/dist/src/deploy-lib/index.d.ts +20 -0
  189. package/dist/src/deploy-lib/index.d.ts.map +1 -0
  190. package/dist/src/deploy-lib/index.js +20 -0
  191. package/dist/src/deploy-lib/index.js.map +1 -0
  192. package/dist/src/deploy-lib/lock.d.ts +37 -0
  193. package/dist/src/deploy-lib/lock.d.ts.map +1 -0
  194. package/dist/src/deploy-lib/lock.js +107 -0
  195. package/dist/src/deploy-lib/lock.js.map +1 -0
  196. package/dist/src/deploy-lib/manifest.d.ts +42 -0
  197. package/dist/src/deploy-lib/manifest.d.ts.map +1 -0
  198. package/dist/src/deploy-lib/manifest.js +38 -0
  199. package/dist/src/deploy-lib/manifest.js.map +1 -0
  200. package/dist/src/deploy-lib/paths.d.ts +29 -0
  201. package/dist/src/deploy-lib/paths.d.ts.map +1 -0
  202. package/dist/src/deploy-lib/paths.js +40 -0
  203. package/dist/src/deploy-lib/paths.js.map +1 -0
  204. package/dist/src/deploy-lib/releases.d.ts +52 -0
  205. package/dist/src/deploy-lib/releases.d.ts.map +1 -0
  206. package/dist/src/deploy-lib/releases.js +119 -0
  207. package/dist/src/deploy-lib/releases.js.map +1 -0
  208. package/dist/src/deploy-lib/safe-copy.d.ts +16 -0
  209. package/dist/src/deploy-lib/safe-copy.d.ts.map +1 -0
  210. package/dist/src/deploy-lib/safe-copy.js +32 -0
  211. package/dist/src/deploy-lib/safe-copy.js.map +1 -0
  212. package/dist/src/embedding-health.d.ts +12 -0
  213. package/dist/src/embedding-health.d.ts.map +1 -0
  214. package/dist/src/embedding-health.js +18 -0
  215. package/dist/src/embedding-health.js.map +1 -0
  216. package/dist/src/embedding-provider.d.ts +48 -0
  217. package/dist/src/embedding-provider.d.ts.map +1 -0
  218. package/dist/src/embedding-provider.js +145 -0
  219. package/dist/src/embedding-provider.js.map +1 -0
  220. package/dist/src/embedding-quantize.d.ts +11 -0
  221. package/dist/src/embedding-quantize.d.ts.map +1 -0
  222. package/dist/src/embedding-quantize.js +38 -0
  223. package/dist/src/embedding-quantize.js.map +1 -0
  224. package/dist/src/emotion-arc.d.ts +17 -0
  225. package/dist/src/emotion-arc.d.ts.map +1 -0
  226. package/dist/src/emotion-arc.js +62 -0
  227. package/dist/src/emotion-arc.js.map +1 -0
  228. package/dist/src/emotion-tagger.d.ts +8 -0
  229. package/dist/src/emotion-tagger.d.ts.map +1 -0
  230. package/dist/src/emotion-tagger.js +45 -0
  231. package/dist/src/emotion-tagger.js.map +1 -0
  232. package/dist/src/emotion-utils.d.ts +13 -0
  233. package/dist/src/emotion-utils.d.ts.map +1 -0
  234. package/dist/src/emotion-utils.js +76 -0
  235. package/dist/src/emotion-utils.js.map +1 -0
  236. package/dist/src/entity-graph.d.ts +33 -0
  237. package/dist/src/entity-graph.d.ts.map +1 -0
  238. package/dist/src/entity-graph.js +42 -0
  239. package/dist/src/entity-graph.js.map +1 -0
  240. package/dist/src/env-schema.d.ts +46 -0
  241. package/dist/src/env-schema.d.ts.map +1 -0
  242. package/dist/src/env-schema.js +93 -0
  243. package/dist/src/env-schema.js.map +1 -0
  244. package/dist/src/hook-helpers.d.ts +16 -0
  245. package/dist/src/hook-helpers.d.ts.map +1 -0
  246. package/dist/src/hook-helpers.js +64 -0
  247. package/dist/src/hook-helpers.js.map +1 -0
  248. package/dist/src/imemory-system.d.ts +138 -0
  249. package/dist/src/imemory-system.d.ts.map +1 -0
  250. package/dist/src/imemory-system.js +40 -0
  251. package/dist/src/imemory-system.js.map +1 -0
  252. package/dist/src/importance-flagger.d.ts +8 -0
  253. package/dist/src/importance-flagger.d.ts.map +1 -0
  254. package/dist/src/importance-flagger.js +24 -0
  255. package/dist/src/importance-flagger.js.map +1 -0
  256. package/dist/src/index.d.ts +79 -0
  257. package/dist/src/index.d.ts.map +1 -0
  258. package/dist/src/index.js +79 -0
  259. package/dist/src/index.js.map +1 -0
  260. package/dist/src/ingest-pipeline.d.ts +32 -0
  261. package/dist/src/ingest-pipeline.d.ts.map +1 -0
  262. package/dist/src/ingest-pipeline.js +58 -0
  263. package/dist/src/ingest-pipeline.js.map +1 -0
  264. package/dist/src/injection-scanner.d.ts +16 -0
  265. package/dist/src/injection-scanner.d.ts.map +1 -0
  266. package/dist/src/injection-scanner.js +182 -0
  267. package/dist/src/injection-scanner.js.map +1 -0
  268. package/dist/src/local-time.d.ts +12 -0
  269. package/dist/src/local-time.d.ts.map +1 -0
  270. package/dist/src/local-time.js +23 -0
  271. package/dist/src/local-time.js.map +1 -0
  272. package/dist/src/maintenance-service.d.ts +46 -0
  273. package/dist/src/maintenance-service.d.ts.map +1 -0
  274. package/dist/src/maintenance-service.js +280 -0
  275. package/dist/src/maintenance-service.js.map +1 -0
  276. package/dist/src/mcp-server.d.ts +6 -0
  277. package/dist/src/mcp-server.d.ts.map +1 -0
  278. package/dist/src/mcp-server.js +50 -0
  279. package/dist/src/mcp-server.js.map +1 -0
  280. package/dist/src/media-sanitizer.d.ts +11 -0
  281. package/dist/src/media-sanitizer.d.ts.map +1 -0
  282. package/dist/src/media-sanitizer.js +56 -0
  283. package/dist/src/media-sanitizer.js.map +1 -0
  284. package/dist/src/mem-config-env.d.ts +18 -0
  285. package/dist/src/mem-config-env.d.ts.map +1 -0
  286. package/dist/src/mem-config-env.js +43 -0
  287. package/dist/src/mem-config-env.js.map +1 -0
  288. package/dist/src/mem-env.d.ts +5 -0
  289. package/dist/src/mem-env.d.ts.map +1 -0
  290. package/dist/src/mem-env.js +19 -0
  291. package/dist/src/mem-env.js.map +1 -0
  292. package/dist/src/mem-logger.d.ts +20 -0
  293. package/dist/src/mem-logger.d.ts.map +1 -0
  294. package/dist/src/mem-logger.js +24 -0
  295. package/dist/src/mem-logger.js.map +1 -0
  296. package/dist/src/mem-paths.d.ts +20 -0
  297. package/dist/src/mem-paths.d.ts.map +1 -0
  298. package/dist/src/mem-paths.js +43 -0
  299. package/dist/src/mem-paths.js.map +1 -0
  300. package/dist/src/mem-types.d.ts +157 -0
  301. package/dist/src/mem-types.d.ts.map +1 -0
  302. package/dist/src/mem-types.js +2 -0
  303. package/dist/src/mem-types.js.map +1 -0
  304. package/dist/src/memory-backend.d.ts +65 -0
  305. package/dist/src/memory-backend.d.ts.map +1 -0
  306. package/dist/src/memory-backend.js +43 -0
  307. package/dist/src/memory-backend.js.map +1 -0
  308. package/dist/src/memory-compressor.d.ts +17 -0
  309. package/dist/src/memory-compressor.d.ts.map +1 -0
  310. package/dist/src/memory-compressor.js +147 -0
  311. package/dist/src/memory-compressor.js.map +1 -0
  312. package/dist/src/memory-config.d.ts +30 -0
  313. package/dist/src/memory-config.d.ts.map +1 -0
  314. package/dist/src/memory-config.js +62 -0
  315. package/dist/src/memory-config.js.map +1 -0
  316. package/dist/src/memory-db.d.ts +7 -0
  317. package/dist/src/memory-db.d.ts.map +1 -0
  318. package/dist/src/memory-db.js +173 -0
  319. package/dist/src/memory-db.js.map +1 -0
  320. package/dist/src/memory-editor.d.ts +32 -0
  321. package/dist/src/memory-editor.d.ts.map +1 -0
  322. package/dist/src/memory-editor.js +339 -0
  323. package/dist/src/memory-editor.js.map +1 -0
  324. package/dist/src/memory-index.d.ts +91 -0
  325. package/dist/src/memory-index.d.ts.map +1 -0
  326. package/dist/src/memory-index.js +310 -0
  327. package/dist/src/memory-index.js.map +1 -0
  328. package/dist/src/memory-ipc-client.d.ts +22 -0
  329. package/dist/src/memory-ipc-client.d.ts.map +1 -0
  330. package/dist/src/memory-ipc-client.js +75 -0
  331. package/dist/src/memory-ipc-client.js.map +1 -0
  332. package/dist/src/memory-ipc-server.d.ts +17 -0
  333. package/dist/src/memory-ipc-server.d.ts.map +1 -0
  334. package/dist/src/memory-ipc-server.js +86 -0
  335. package/dist/src/memory-ipc-server.js.map +1 -0
  336. package/dist/src/memory-manager.d.ts +155 -0
  337. package/dist/src/memory-manager.d.ts.map +1 -0
  338. package/dist/src/memory-manager.js +463 -0
  339. package/dist/src/memory-manager.js.map +1 -0
  340. package/dist/src/memory-renderer.d.ts +15 -0
  341. package/dist/src/memory-renderer.d.ts.map +1 -0
  342. package/dist/src/memory-renderer.js +126 -0
  343. package/dist/src/memory-renderer.js.map +1 -0
  344. package/dist/src/message-store.d.ts +42 -0
  345. package/dist/src/message-store.d.ts.map +1 -0
  346. package/dist/src/message-store.js +145 -0
  347. package/dist/src/message-store.js.map +1 -0
  348. package/dist/src/mmr.d.ts +17 -0
  349. package/dist/src/mmr.d.ts.map +1 -0
  350. package/dist/src/mmr.js +48 -0
  351. package/dist/src/mmr.js.map +1 -0
  352. package/dist/src/ollama-embed.d.ts +46 -0
  353. package/dist/src/ollama-embed.d.ts.map +1 -0
  354. package/dist/src/ollama-embed.js +139 -0
  355. package/dist/src/ollama-embed.js.map +1 -0
  356. package/dist/src/openclaw-plugin/engine.d.ts +87 -0
  357. package/dist/src/openclaw-plugin/engine.d.ts.map +1 -0
  358. package/dist/src/openclaw-plugin/engine.js +121 -0
  359. package/dist/src/openclaw-plugin/engine.js.map +1 -0
  360. package/dist/src/openclaw-plugin/hooks.d.ts +41 -0
  361. package/dist/src/openclaw-plugin/hooks.d.ts.map +1 -0
  362. package/dist/src/openclaw-plugin/hooks.js +155 -0
  363. package/dist/src/openclaw-plugin/hooks.js.map +1 -0
  364. package/dist/src/openclaw-plugin/index.d.ts +20 -0
  365. package/dist/src/openclaw-plugin/index.d.ts.map +1 -0
  366. package/dist/src/openclaw-plugin/index.js +151 -0
  367. package/dist/src/openclaw-plugin/index.js.map +1 -0
  368. package/dist/src/openclaw-plugin/message-adapter.d.ts +13 -0
  369. package/dist/src/openclaw-plugin/message-adapter.d.ts.map +1 -0
  370. package/dist/src/openclaw-plugin/message-adapter.js +49 -0
  371. package/dist/src/openclaw-plugin/message-adapter.js.map +1 -0
  372. package/dist/src/openclaw-plugin/prompt-builder.d.ts +17 -0
  373. package/dist/src/openclaw-plugin/prompt-builder.d.ts.map +1 -0
  374. package/dist/src/openclaw-plugin/prompt-builder.js +22 -0
  375. package/dist/src/openclaw-plugin/prompt-builder.js.map +1 -0
  376. package/dist/src/openclaw-plugin/public-artifacts.d.ts +20 -0
  377. package/dist/src/openclaw-plugin/public-artifacts.d.ts.map +1 -0
  378. package/dist/src/openclaw-plugin/public-artifacts.js +59 -0
  379. package/dist/src/openclaw-plugin/public-artifacts.js.map +1 -0
  380. package/dist/src/openclaw-plugin/runtime-adapter.d.ts +26 -0
  381. package/dist/src/openclaw-plugin/runtime-adapter.d.ts.map +1 -0
  382. package/dist/src/openclaw-plugin/runtime-adapter.js +161 -0
  383. package/dist/src/openclaw-plugin/runtime-adapter.js.map +1 -0
  384. package/dist/src/openclaw-plugin/session-mapper.d.ts +11 -0
  385. package/dist/src/openclaw-plugin/session-mapper.d.ts.map +1 -0
  386. package/dist/src/openclaw-plugin/session-mapper.js +17 -0
  387. package/dist/src/openclaw-plugin/session-mapper.js.map +1 -0
  388. package/dist/src/openclaw-plugin/tools.d.ts +32 -0
  389. package/dist/src/openclaw-plugin/tools.d.ts.map +1 -0
  390. package/dist/src/openclaw-plugin/tools.js +131 -0
  391. package/dist/src/openclaw-plugin/tools.js.map +1 -0
  392. package/dist/src/openclaw-plugin/types.d.ts +35 -0
  393. package/dist/src/openclaw-plugin/types.d.ts.map +1 -0
  394. package/dist/src/openclaw-plugin/types.js +2 -0
  395. package/dist/src/openclaw-plugin/types.js.map +1 -0
  396. package/dist/src/query-tokenizer.d.ts +33 -0
  397. package/dist/src/query-tokenizer.d.ts.map +1 -0
  398. package/dist/src/query-tokenizer.js +84 -0
  399. package/dist/src/query-tokenizer.js.map +1 -0
  400. package/dist/src/recall-benchmark.d.ts +13 -0
  401. package/dist/src/recall-benchmark.d.ts.map +1 -0
  402. package/dist/src/recall-benchmark.js +256 -0
  403. package/dist/src/recall-benchmark.js.map +1 -0
  404. package/dist/src/recall-engine.d.ts +81 -0
  405. package/dist/src/recall-engine.d.ts.map +1 -0
  406. package/dist/src/recall-engine.js +387 -0
  407. package/dist/src/recall-engine.js.map +1 -0
  408. package/dist/src/redact-secrets.d.ts +20 -0
  409. package/dist/src/redact-secrets.d.ts.map +1 -0
  410. package/dist/src/redact-secrets.js +42 -0
  411. package/dist/src/redact-secrets.js.map +1 -0
  412. package/dist/src/runtime-store.d.ts +47 -0
  413. package/dist/src/runtime-store.d.ts.map +1 -0
  414. package/dist/src/runtime-store.js +78 -0
  415. package/dist/src/runtime-store.js.map +1 -0
  416. package/dist/src/session-context.d.ts +10 -0
  417. package/dist/src/session-context.d.ts.map +1 -0
  418. package/dist/src/session-context.js +83 -0
  419. package/dist/src/session-context.js.map +1 -0
  420. package/dist/src/session-memory.d.ts +8 -0
  421. package/dist/src/session-memory.d.ts.map +1 -0
  422. package/dist/src/session-memory.js +45 -0
  423. package/dist/src/session-memory.js.map +1 -0
  424. package/dist/src/signature-generator.d.ts +15 -0
  425. package/dist/src/signature-generator.d.ts.map +1 -0
  426. package/dist/src/signature-generator.js +78 -0
  427. package/dist/src/signature-generator.js.map +1 -0
  428. package/dist/src/sleep/basic.d.ts +48 -0
  429. package/dist/src/sleep/basic.d.ts.map +1 -0
  430. package/dist/src/sleep/basic.js +147 -0
  431. package/dist/src/sleep/basic.js.map +1 -0
  432. package/dist/src/sleep/levels.d.ts +20 -0
  433. package/dist/src/sleep/levels.d.ts.map +1 -0
  434. package/dist/src/sleep/levels.js +11 -0
  435. package/dist/src/sleep/levels.js.map +1 -0
  436. package/dist/src/sleep/native.d.ts +41 -0
  437. package/dist/src/sleep/native.d.ts.map +1 -0
  438. package/dist/src/sleep/native.js +112 -0
  439. package/dist/src/sleep/native.js.map +1 -0
  440. package/dist/src/sleep/orchestrator.d.ts +64 -0
  441. package/dist/src/sleep/orchestrator.d.ts.map +1 -0
  442. package/dist/src/sleep/orchestrator.js +960 -0
  443. package/dist/src/sleep/orchestrator.js.map +1 -0
  444. package/dist/src/sleep/runtime.d.ts +15 -0
  445. package/dist/src/sleep/runtime.d.ts.map +1 -0
  446. package/dist/src/sleep/runtime.js +2 -0
  447. package/dist/src/sleep/runtime.js.map +1 -0
  448. package/dist/src/sleep/sleep-daily-summary.d.ts +64 -0
  449. package/dist/src/sleep/sleep-daily-summary.d.ts.map +1 -0
  450. package/dist/src/sleep/sleep-daily-summary.js +273 -0
  451. package/dist/src/sleep/sleep-daily-summary.js.map +1 -0
  452. package/dist/src/sleep/sleep-extract-daily.d.ts +12 -0
  453. package/dist/src/sleep/sleep-extract-daily.d.ts.map +1 -0
  454. package/dist/src/sleep/sleep-extract-daily.js +55 -0
  455. package/dist/src/sleep/sleep-extract-daily.js.map +1 -0
  456. package/dist/src/sleep/sleep-prompt-loader.d.ts +27 -0
  457. package/dist/src/sleep/sleep-prompt-loader.d.ts.map +1 -0
  458. package/dist/src/sleep/sleep-prompt-loader.js +116 -0
  459. package/dist/src/sleep/sleep-prompt-loader.js.map +1 -0
  460. package/dist/src/sleep/test-harness.d.ts +67 -0
  461. package/dist/src/sleep/test-harness.d.ts.map +1 -0
  462. package/dist/src/sleep/test-harness.js +121 -0
  463. package/dist/src/sleep/test-harness.js.map +1 -0
  464. package/dist/src/sleep/trigger.d.ts +3 -0
  465. package/dist/src/sleep/trigger.d.ts.map +1 -0
  466. package/dist/src/sleep/trigger.js +66 -0
  467. package/dist/src/sleep/trigger.js.map +1 -0
  468. package/dist/src/sleep-data-access.d.ts +54 -0
  469. package/dist/src/sleep-data-access.d.ts.map +1 -0
  470. package/dist/src/sleep-data-access.js +176 -0
  471. package/dist/src/sleep-data-access.js.map +1 -0
  472. package/dist/src/sleep-pipeline.d.ts +9 -0
  473. package/dist/src/sleep-pipeline.d.ts.map +1 -0
  474. package/dist/src/sleep-pipeline.js +8 -0
  475. package/dist/src/sleep-pipeline.js.map +1 -0
  476. package/dist/src/sleep-state-gatherer.d.ts +74 -0
  477. package/dist/src/sleep-state-gatherer.d.ts.map +1 -0
  478. package/dist/src/sleep-state-gatherer.js +275 -0
  479. package/dist/src/sleep-state-gatherer.js.map +1 -0
  480. package/dist/src/sqlite-backend.d.ts +23 -0
  481. package/dist/src/sqlite-backend.d.ts.map +1 -0
  482. package/dist/src/sqlite-backend.js +48 -0
  483. package/dist/src/sqlite-backend.js.map +1 -0
  484. package/dist/src/test-helpers.d.ts +3 -0
  485. package/dist/src/test-helpers.d.ts.map +1 -0
  486. package/dist/src/test-helpers.js +5 -0
  487. package/dist/src/test-helpers.js.map +1 -0
  488. package/dist/src/tier-llm-refinement.d.ts +35 -0
  489. package/dist/src/tier-llm-refinement.d.ts.map +1 -0
  490. package/dist/src/tier-llm-refinement.js +131 -0
  491. package/dist/src/tier-llm-refinement.js.map +1 -0
  492. package/dist/src/timeline-builder.d.ts +45 -0
  493. package/dist/src/timeline-builder.d.ts.map +1 -0
  494. package/dist/src/timeline-builder.js +147 -0
  495. package/dist/src/timeline-builder.js.map +1 -0
  496. package/dist/src/trigram-search.d.ts +28 -0
  497. package/dist/src/trigram-search.d.ts.map +1 -0
  498. package/dist/src/trigram-search.js +192 -0
  499. package/dist/src/trigram-search.js.map +1 -0
  500. package/dist/src/turn-classifier.d.ts +29 -0
  501. package/dist/src/turn-classifier.d.ts.map +1 -0
  502. package/dist/src/turn-classifier.js +186 -0
  503. package/dist/src/turn-classifier.js.map +1 -0
  504. package/dist/src/user-utils.d.ts +6 -0
  505. package/dist/src/user-utils.d.ts.map +1 -0
  506. package/dist/src/user-utils.js +27 -0
  507. package/dist/src/user-utils.js.map +1 -0
  508. package/dist/src/wake-up-builder.d.ts +12 -0
  509. package/dist/src/wake-up-builder.d.ts.map +1 -0
  510. package/dist/src/wake-up-builder.js +45 -0
  511. package/dist/src/wake-up-builder.js.map +1 -0
  512. package/dist/src/wake-up-renderer.d.ts +29 -0
  513. package/dist/src/wake-up-renderer.d.ts.map +1 -0
  514. package/dist/src/wake-up-renderer.js +182 -0
  515. package/dist/src/wake-up-renderer.js.map +1 -0
  516. package/openclaw.plugin.json +72 -0
  517. package/package.json +92 -5
  518. package/prompts/sleep/01-gc-noise.md +28 -0
  519. package/prompts/sleep/02-daily-summary.md +3 -0
  520. package/prompts/sleep/03-extract-from-daily.md +3 -0
  521. package/prompts/sleep/04-retrospective.md +30 -0
  522. package/prompts/sleep/06-feedback.md +17 -0
  523. package/prompts/sleep/07-topic-assignment.md +23 -0
  524. package/prompts/sleep/08-core-promotion.md +26 -0
  525. package/prompts/sleep/09-merge.md +19 -0
  526. package/prompts/sleep/10-translation.md +17 -0
  527. package/prompts/sleep/11-skill-review.md +12 -0
  528. package/prompts/sleep/12-core-knowledge.md +14 -0
  529. package/prompts/sleep/13-consolidation.md +11 -0
  530. package/prompts/sleep/14-emotion-context.md +17 -0
  531. package/prompts/sleep/15-contradiction-and-graph.md +48 -0
  532. package/prompts/sleep/16-rem-synthesis.md +31 -0
  533. package/prompts/sleep/basic.md +12 -0
@@ -0,0 +1,49 @@
1
+ /**
2
+ * message-adapter.ts — Translate between OpenClaw AgentMessage and abmind MessageRecord.
3
+ */
4
+ /**
5
+ * Convert an OpenClaw AgentMessage to abmind MessageRecord.
6
+ */
7
+ export function toMessage(agentMessage, chatId) {
8
+ const role = agentMessage.role === "toolResult" ? "tool" : (agentMessage.role ?? "user");
9
+ let content;
10
+ if (typeof agentMessage.content === "string") {
11
+ content = agentMessage.content;
12
+ }
13
+ else if (Array.isArray(agentMessage.content)) {
14
+ // Extract text from content blocks
15
+ content = agentMessage.content
16
+ .map((block) => {
17
+ if (typeof block === "string")
18
+ return block;
19
+ if (block?.type === "text")
20
+ return block.text ?? "";
21
+ if (block?.type === "toolCall")
22
+ return `[tool_call: ${block.name ?? "?"}]`;
23
+ return "";
24
+ })
25
+ .filter(Boolean)
26
+ .join("\n");
27
+ }
28
+ else {
29
+ content = String(agentMessage.content ?? "");
30
+ }
31
+ return {
32
+ role,
33
+ content,
34
+ userId: "openclaw",
35
+ sessionId: chatId,
36
+ timestamp: Date.now(),
37
+ };
38
+ }
39
+ /**
40
+ * Map abmind role to OpenClaw AgentMessage role.
41
+ */
42
+ export function toAssistantRole(role) {
43
+ if (role === "tool")
44
+ return "toolResult";
45
+ if (role === "assistant")
46
+ return "assistant";
47
+ return "user";
48
+ }
49
+ //# sourceMappingURL=message-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-adapter.js","sourceRoot":"","sources":["../../../src/openclaw-plugin/message-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,UAAU,SAAS,CAAC,YAAiB,EAAE,MAAc;IACzD,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,IAAI,MAAM,CAAC,CAAC;IACzF,IAAI,OAAe,CAAC;IAEpB,IAAI,OAAO,YAAY,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC7C,OAAO,GAAG,YAAY,CAAC,OAAO,CAAC;IACjC,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/C,mCAAmC;QACnC,OAAO,GAAG,YAAY,CAAC,OAAO;aAC3B,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE;YAClB,IAAI,OAAO,KAAK,KAAK,QAAQ;gBAAE,OAAO,KAAK,CAAC;YAC5C,IAAI,KAAK,EAAE,IAAI,KAAK,MAAM;gBAAE,OAAO,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;YACpD,IAAI,KAAK,EAAE,IAAI,KAAK,UAAU;gBAAE,OAAO,eAAe,KAAK,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC;YAC3E,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;aACD,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,OAAO;QACL,IAAI;QACJ,OAAO;QACP,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE,MAAM;QACjB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,IAAI,IAAI,KAAK,MAAM;QAAE,OAAO,YAAY,CAAC;IACzC,IAAI,IAAI,KAAK,WAAW;QAAE,OAAO,WAAW,CAAC;IAC7C,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * prompt-builder.ts — contributes static prompt lines to the agent's system
3
+ * prompt when abmind is the registered memory plugin.
4
+ *
5
+ * Called by OpenClaw on every turn via MemoryPluginCapability.promptBuilder.
6
+ * Return value: an array of prompt lines (joined by the host into the
7
+ * broader memory section of the system prompt).
8
+ *
9
+ * Note: runtime capabilities (search, store) are surfaced to the agent via
10
+ * the tool surface (see tools.ts) — this builder only writes descriptive
11
+ * guidance, not tool schemas.
12
+ */
13
+ export declare function buildPromptSection(_params: {
14
+ availableTools?: Set<string>;
15
+ citationsMode?: unknown;
16
+ }): string[];
17
+ //# sourceMappingURL=prompt-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-builder.d.ts","sourceRoot":"","sources":["../../../src/openclaw-plugin/prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAAE,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,EAAE,CAO/G"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * prompt-builder.ts — contributes static prompt lines to the agent's system
3
+ * prompt when abmind is the registered memory plugin.
4
+ *
5
+ * Called by OpenClaw on every turn via MemoryPluginCapability.promptBuilder.
6
+ * Return value: an array of prompt lines (joined by the host into the
7
+ * broader memory section of the system prompt).
8
+ *
9
+ * Note: runtime capabilities (search, store) are surfaced to the agent via
10
+ * the tool surface (see tools.ts) — this builder only writes descriptive
11
+ * guidance, not tool schemas.
12
+ */
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ export function buildPromptSection(_params) {
15
+ return [
16
+ "You have persistent long-term memory via abmind (SQLite + FTS5 + trigram + optional embeddings).",
17
+ "Use abmind_recall to search past conversations, decisions, preferences, and facts before responding to anything that references prior context.",
18
+ "Memories are classification-aware: SECRET items never surface; CONFIDENTIAL items only on direct request.",
19
+ "When you store a memory, include a short, factual summary in English — not a transcript. Note WHY for decisions.",
20
+ ];
21
+ }
22
+ //# sourceMappingURL=prompt-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../../src/openclaw-plugin/prompt-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,8DAA8D;AAC9D,MAAM,UAAU,kBAAkB,CAAC,OAAkE;IACnG,OAAO;QACL,kGAAkG;QAClG,gJAAgJ;QAChJ,2GAA2G;QAC3G,kHAAkH;KACnH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * public-artifacts.ts — enumerate abmind's human-readable output files for
3
+ * OpenClaw's MemoryPluginCapability.publicArtifacts.listArtifacts.
4
+ *
5
+ * abmind writes prose files under $ABMIND_HOME/memory/:
6
+ * daily/*.md — nightly daily summaries
7
+ * consolidation/*.md — weekly / quarterly consolidations
8
+ * sleep/*.md — sleep audit logs
9
+ *
10
+ * OpenClaw's UI / CLI can surface these to users as "memory artifacts"
11
+ * alongside any native ones it knows about.
12
+ */
13
+ /**
14
+ * List all abmind public artifacts (daily + consolidation + sleep markdown
15
+ * files). Returned as a flat array; caller can group or filter.
16
+ *
17
+ * OpenClaw's MemoryPluginPublicArtifact shape is `any` at our boundary.
18
+ */
19
+ export declare function buildListArtifacts(pluginId: string): (cfg?: any) => Promise<any[]>;
20
+ //# sourceMappingURL=public-artifacts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-artifacts.d.ts","sourceRoot":"","sources":["../../../src/openclaw-plugin/public-artifacts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAqCH;;;;;GAKG;AAEH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,EAAE,CAAC,CAalF"}
@@ -0,0 +1,59 @@
1
+ /**
2
+ * public-artifacts.ts — enumerate abmind's human-readable output files for
3
+ * OpenClaw's MemoryPluginCapability.publicArtifacts.listArtifacts.
4
+ *
5
+ * abmind writes prose files under $ABMIND_HOME/memory/:
6
+ * daily/*.md — nightly daily summaries
7
+ * consolidation/*.md — weekly / quarterly consolidations
8
+ * sleep/*.md — sleep audit logs
9
+ *
10
+ * OpenClaw's UI / CLI can surface these to users as "memory artifacts"
11
+ * alongside any native ones it knows about.
12
+ */
13
+ import { readdirSync, statSync } from "node:fs";
14
+ import { join } from "node:path";
15
+ import { getRuntime } from "../runtime-store.js";
16
+ function listMarkdownFiles(root, category) {
17
+ const dir = join(root, category);
18
+ try {
19
+ const entries = readdirSync(dir).filter((e) => e.endsWith(".md"));
20
+ return entries.map((name) => {
21
+ const full = join(dir, name);
22
+ const stat = statSync(full);
23
+ return {
24
+ path: full,
25
+ relPath: `${category}/${name}`,
26
+ category,
27
+ sizeBytes: stat.size,
28
+ modifiedMs: stat.mtimeMs,
29
+ };
30
+ });
31
+ }
32
+ catch {
33
+ // Directory missing / unreadable — return empty, not an error. Fresh
34
+ // installs won't have any artifacts yet.
35
+ return [];
36
+ }
37
+ }
38
+ /**
39
+ * List all abmind public artifacts (daily + consolidation + sleep markdown
40
+ * files). Returned as a flat array; caller can group or filter.
41
+ *
42
+ * OpenClaw's MemoryPluginPublicArtifact shape is `any` at our boundary.
43
+ */
44
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
+ export function buildListArtifacts(pluginId) {
46
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
47
+ return async function listArtifacts(_cfg) {
48
+ const runtime = getRuntime(pluginId);
49
+ const root = runtime.memoryConfig.memoryDir;
50
+ const all = [
51
+ ...listMarkdownFiles(root, "daily"),
52
+ ...listMarkdownFiles(root, "consolidation"),
53
+ ...listMarkdownFiles(root, "sleep"),
54
+ ];
55
+ all.sort((a, b) => b.modifiedMs - a.modifiedMs);
56
+ return all;
57
+ };
58
+ }
59
+ //# sourceMappingURL=public-artifacts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-artifacts.js","sourceRoot":"","sources":["../../../src/openclaw-plugin/public-artifacts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAWjD,SAAS,iBAAiB,CAAC,IAAY,EAAE,QAAmC;IAC1E,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAClE,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAC7B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC5B,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,GAAG,QAAQ,IAAI,IAAI,EAAE;gBAC9B,QAAQ;gBACR,SAAS,EAAE,IAAI,CAAC,IAAI;gBACpB,UAAU,EAAE,IAAI,CAAC,OAAO;aACzB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,qEAAqE;QACrE,yCAAyC;QACzC,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,8DAA8D;AAC9D,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,8DAA8D;IAC9D,OAAO,KAAK,UAAU,aAAa,CAAC,IAAU;QAC5C,MAAM,OAAO,GAAG,UAAU,CAAsB,QAAQ,CAAC,CAAC;QAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC;QAC5C,MAAM,GAAG,GAAoB;YAC3B,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC;YACnC,GAAG,iBAAiB,CAAC,IAAI,EAAE,eAAe,CAAC;YAC3C,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC;SACpC,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;QAChD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * runtime-adapter.ts — bridges abmind's MemoryManager + recallSearch onto
3
+ * OpenClaw's MemoryPluginRuntime / MemorySearchManager surface.
4
+ *
5
+ * Boundaries: all OpenClaw SDK types are `any` (option b.1). Shape drift is
6
+ * caught by the integration smoke test against a real openclaw dev install,
7
+ * not at compile time.
8
+ *
9
+ * Path convention: abmind is SQLite-backed, so "files" are synthesized from
10
+ * memory rows on demand. Search results return relPaths in the form
11
+ * "abmind://memory/<id>"
12
+ * and readFile detects the scheme and routes to DB synthesis. No filesystem
13
+ * interop — any plain `fs.readFile` path on a synthetic relPath fails loudly.
14
+ */
15
+ /** Build the canonical relPath for a memory row. */
16
+ export declare function abmindUri(memoryId: number): string;
17
+ /** Parse an abmind:// URI back to the memory id. Returns null if the scheme doesn't match. */
18
+ export declare function parseAbmindUri(uri: string): {
19
+ memoryId: number;
20
+ } | null;
21
+ /**
22
+ * Build a MemoryPluginRuntime for this plugin. Single-instance: every agent
23
+ * shares one MemorySearchManager backed by the plugin's AbmindPluginRuntime.
24
+ */
25
+ export declare function createMemoryPluginRuntime(pluginId: string): any;
26
+ //# sourceMappingURL=runtime-adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-adapter.d.ts","sourceRoot":"","sources":["../../../src/openclaw-plugin/runtime-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAMvE;AA4HD;;;GAGG;AAEH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,GAAG,CAgB/D"}
@@ -0,0 +1,161 @@
1
+ /**
2
+ * runtime-adapter.ts — bridges abmind's MemoryManager + recallSearch onto
3
+ * OpenClaw's MemoryPluginRuntime / MemorySearchManager surface.
4
+ *
5
+ * Boundaries: all OpenClaw SDK types are `any` (option b.1). Shape drift is
6
+ * caught by the integration smoke test against a real openclaw dev install,
7
+ * not at compile time.
8
+ *
9
+ * Path convention: abmind is SQLite-backed, so "files" are synthesized from
10
+ * memory rows on demand. Search results return relPaths in the form
11
+ * "abmind://memory/<id>"
12
+ * and readFile detects the scheme and routes to DB synthesis. No filesystem
13
+ * interop — any plain `fs.readFile` path on a synthetic relPath fails loudly.
14
+ */
15
+ import { getRuntime } from "../runtime-store.js";
16
+ import { loadEmbedConfig } from "../ollama-embed.js";
17
+ // ── Synthetic URI helpers ─────────────────────────────────────────────────
18
+ const ABMIND_URI_SCHEME = "abmind://";
19
+ const ABMIND_MEMORY_PREFIX = `${ABMIND_URI_SCHEME}memory/`;
20
+ /** Build the canonical relPath for a memory row. */
21
+ export function abmindUri(memoryId) {
22
+ return `${ABMIND_MEMORY_PREFIX}${memoryId}`;
23
+ }
24
+ /** Parse an abmind:// URI back to the memory id. Returns null if the scheme doesn't match. */
25
+ export function parseAbmindUri(uri) {
26
+ if (typeof uri !== "string" || !uri.startsWith(ABMIND_MEMORY_PREFIX))
27
+ return null;
28
+ const idStr = uri.slice(ABMIND_MEMORY_PREFIX.length);
29
+ const memoryId = Number.parseInt(idStr, 10);
30
+ if (!Number.isFinite(memoryId) || memoryId <= 0)
31
+ return null;
32
+ return { memoryId };
33
+ }
34
+ // ── MemorySearchManager ────────────────────────────────────────────────────
35
+ /**
36
+ * Build a MemorySearchManager bound to a specific plugin runtime.
37
+ * Each agent in OpenClaw gets its own manager via
38
+ * MemoryPluginRuntime.getMemorySearchManager — but since our plugin is
39
+ * single-instance-per-process (one abmind DB per plugin registration),
40
+ * every agent shares the SAME manager. That's fine for our deployment
41
+ * model; revisit if OpenClaw ever needs per-agent isolation.
42
+ */
43
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
+ function createMemorySearchManager(pluginId) {
45
+ const runtime = getRuntime(pluginId);
46
+ return {
47
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
48
+ async search(query, opts) {
49
+ const limit = Math.min(Math.max(opts?.limit ?? 10, 1), 50);
50
+ const result = await runtime.memory.recallSearch({
51
+ translated: [query],
52
+ userId: opts?.userId ?? "default",
53
+ limit,
54
+ maxClassification: opts?.maxClassification ?? 2,
55
+ topic: opts?.topic,
56
+ });
57
+ return result.results.map((h) => ({
58
+ // OpenClaw MemorySearchResult shape — keep familiar fields, let the
59
+ // host runtime project whatever it needs. Type is `any`.
60
+ relPath: h.id !== undefined ? abmindUri(h.id) : undefined,
61
+ content: h.content,
62
+ score: h.score,
63
+ memoryId: h.id,
64
+ memoryType: h.memoryType,
65
+ topic: h.topic,
66
+ date: h.date,
67
+ source: h.source,
68
+ }));
69
+ },
70
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
71
+ async readFile(params) {
72
+ const parsed = parseAbmindUri(params.relPath);
73
+ if (!parsed) {
74
+ throw new Error(`abmind readFile: relPath "${params.relPath}" is not an abmind:// URI. ` +
75
+ `Only search-returned relPaths are readable; filesystem paths are not supported.`);
76
+ }
77
+ const row = runtime.db
78
+ .prepare("SELECT id, content_en, content_original, memory_type, topic, created_at FROM extracted_memories WHERE id = ?")
79
+ .get(parsed.memoryId);
80
+ if (!row) {
81
+ throw new Error(`abmind readFile: memory ${parsed.memoryId} not found`);
82
+ }
83
+ const body = row.content_en ?? row.content_original ?? "";
84
+ const dateStr = new Date(row.created_at).toISOString().slice(0, 10);
85
+ const header = `# Memory ${row.id}\n\n- Type: ${row.memory_type ?? "unknown"}\n- Topic: ${row.topic ?? "general"}\n- Date: ${dateStr}\n\n`;
86
+ const full = header + body;
87
+ // Apply line slicing if requested
88
+ if (params.from !== undefined || params.lines !== undefined) {
89
+ const all = full.split("\n");
90
+ const from = Math.max(params.from ?? 0, 0);
91
+ const count = params.lines ?? all.length - from;
92
+ return { text: all.slice(from, from + count).join("\n"), path: params.relPath };
93
+ }
94
+ return { text: full, path: params.relPath };
95
+ },
96
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
97
+ status() {
98
+ const embed = loadEmbedConfig();
99
+ return {
100
+ backend: "abmind-sqlite",
101
+ embeddingAvailable: embed.enabled,
102
+ embeddingModel: embed.enabled ? embed.model : null,
103
+ embeddingUrl: embed.enabled ? embed.url : null,
104
+ vectorAvailable: embed.enabled, // vector search = embedding search in abmind
105
+ };
106
+ },
107
+ async probeEmbeddingAvailability() {
108
+ const embed = loadEmbedConfig();
109
+ if (!embed.enabled)
110
+ return false;
111
+ try {
112
+ const res = await fetch(`${embed.url}/api/tags`, { method: "GET" });
113
+ return res.ok;
114
+ }
115
+ catch {
116
+ return false;
117
+ }
118
+ },
119
+ async probeVectorAvailability() {
120
+ // In abmind, vector availability == embedding availability (FTS5 alone
121
+ // doesn't count as vector). Delegate to the same probe.
122
+ const embed = loadEmbedConfig();
123
+ if (!embed.enabled)
124
+ return false;
125
+ try {
126
+ const res = await fetch(`${embed.url}/api/tags`, { method: "GET" });
127
+ return res.ok;
128
+ }
129
+ catch {
130
+ return false;
131
+ }
132
+ },
133
+ close() {
134
+ // abmind lifecycle is owned by the plugin registration, not individual
135
+ // MemorySearchManagers. Close is a no-op here; dispose() on the engine
136
+ // handles DB teardown.
137
+ },
138
+ };
139
+ }
140
+ // ── MemoryPluginRuntime ────────────────────────────────────────────────────
141
+ /**
142
+ * Build a MemoryPluginRuntime for this plugin. Single-instance: every agent
143
+ * shares one MemorySearchManager backed by the plugin's AbmindPluginRuntime.
144
+ */
145
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
146
+ export function createMemoryPluginRuntime(pluginId) {
147
+ return {
148
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
149
+ getMemorySearchManager(_params) {
150
+ return { manager: createMemorySearchManager(pluginId) };
151
+ },
152
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
153
+ resolveMemoryBackendConfig(_params) {
154
+ return { backend: "builtin" };
155
+ },
156
+ closeAllMemorySearchManagers() {
157
+ // Managers share the plugin's DB, which is closed via dispose(). No-op.
158
+ },
159
+ };
160
+ }
161
+ //# sourceMappingURL=runtime-adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-adapter.js","sourceRoot":"","sources":["../../../src/openclaw-plugin/runtime-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * session-mapper.ts — Map OpenClaw session keys to abmind chatIds.
3
+ * Format: "agent:<agentId>:<rest>" → chatId = rest
4
+ */
5
+ /**
6
+ * Extract chatId from OpenClaw session key.
7
+ * "agent:main:telegram:12345" → "telegram:12345"
8
+ * Falls back to full key if not in agent: format.
9
+ */
10
+ export declare function toChatId(sessionKey: string): string;
11
+ //# sourceMappingURL=session-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-mapper.d.ts","sourceRoot":"","sources":["../../../src/openclaw-plugin/session-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAMnD"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * session-mapper.ts — Map OpenClaw session keys to abmind chatIds.
3
+ * Format: "agent:<agentId>:<rest>" → chatId = rest
4
+ */
5
+ /**
6
+ * Extract chatId from OpenClaw session key.
7
+ * "agent:main:telegram:12345" → "telegram:12345"
8
+ * Falls back to full key if not in agent: format.
9
+ */
10
+ export function toChatId(sessionKey) {
11
+ const parts = sessionKey.split(":");
12
+ if (parts.length >= 3 && parts[0] === "agent") {
13
+ return parts.slice(2).join(":");
14
+ }
15
+ return sessionKey;
16
+ }
17
+ //# sourceMappingURL=session-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-mapper.js","sourceRoot":"","sources":["../../../src/openclaw-plugin/session-mapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,UAAkB;IACzC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC;QAC9C,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * OpenClaw agent tools for abmind.
3
+ *
4
+ * Registered via api.registerTool() in openclaw-plugin/index.ts.
5
+ *
6
+ * Type strategy: we type pi-agent-core boundaries as `any` (option b.1 from
7
+ * the #347 plan discussion). Rationale: pi-agent-core isn't a peer dep — we
8
+ * accept runtime-only validation of the AgentTool contract. OpenClaw's tool
9
+ * runner catches shape errors at registration time; integration tests catch
10
+ * them in CI. This keeps abmind's dep graph clean for standalone users.
11
+ *
12
+ * We DO peer-dep @sinclair/typebox because the schema builder is needed at
13
+ * runtime to construct the parameter schema in the shape pi-agent-core
14
+ * expects. Optional peer — not installed for standalone users who don't
15
+ * load this plugin.
16
+ */
17
+ import type { AbmindPluginRuntime } from "./types.js";
18
+ /**
19
+ * Create the abmind_recall tool bound to a plugin instance and session.
20
+ *
21
+ * @param pluginId Matches the id the runtime was registered under in runtime-store
22
+ * @param sessionKey OpenClaw session key (from ctx.sessionKey in the registerTool factory).
23
+ * When present, recall is scoped to that session's chatId.
24
+ * When absent, recall falls back to the runtime's default user.
25
+ *
26
+ * Return type is `any` intentionally — we don't peer-dep pi-agent-core, so the
27
+ * AgentTool type isn't in scope here. OpenClaw validates the shape at
28
+ * registration time; an integration test catches contract drift.
29
+ */
30
+ export declare function createAbmindRecallTool(pluginId: string, sessionKey: string | undefined, runtime?: AbmindPluginRuntime): any;
31
+ export declare function createAbmindStoreTool(pluginId: string, sessionKey: string | undefined, runtime?: AbmindPluginRuntime): any;
32
+ //# sourceMappingURL=tools.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../src/openclaw-plugin/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AA6DtD;;;;;;;;;;;GAWG;AAEH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,GAAG,CAsC3H;AAgBD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,GAAG,CAwB1H"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * OpenClaw agent tools for abmind.
3
+ *
4
+ * Registered via api.registerTool() in openclaw-plugin/index.ts.
5
+ *
6
+ * Type strategy: we type pi-agent-core boundaries as `any` (option b.1 from
7
+ * the #347 plan discussion). Rationale: pi-agent-core isn't a peer dep — we
8
+ * accept runtime-only validation of the AgentTool contract. OpenClaw's tool
9
+ * runner catches shape errors at registration time; integration tests catch
10
+ * them in CI. This keeps abmind's dep graph clean for standalone users.
11
+ *
12
+ * We DO peer-dep @sinclair/typebox because the schema builder is needed at
13
+ * runtime to construct the parameter schema in the shape pi-agent-core
14
+ * expects. Optional peer — not installed for standalone users who don't
15
+ * load this plugin.
16
+ */
17
+ import { Type } from "@sinclair/typebox";
18
+ import { getRuntime } from "../runtime-store.js";
19
+ import { toChatId } from "./session-mapper.js";
20
+ // ── Schema ────────────────────────────────────────────────────────────────
21
+ const AbmindRecallSchema = Type.Object({
22
+ query: Type.String({
23
+ description: "The search query. English keywords work best. For multilingual content, try both the original language and English translation.",
24
+ }),
25
+ limit: Type.Optional(Type.Number({
26
+ description: "Max results to return. Default 10, range 1-50.",
27
+ minimum: 1,
28
+ maximum: 50,
29
+ })),
30
+ topic: Type.Optional(Type.String({
31
+ description: "Optional topic filter (e.g. 'work', 'relationships', 'health').",
32
+ })),
33
+ emotion: Type.Optional(Type.String({
34
+ description: "Optional emotion filter — tag (joy, frust, convict) or group (positive, negative, high-energy).",
35
+ })),
36
+ });
37
+ /**
38
+ * Render a payload as an AgentToolResult. Matches lossless-claw's jsonResult
39
+ * convention: JSON-as-pretty-text in content[0].text, raw object in details.
40
+ */
41
+ function jsonResult(payload) {
42
+ return {
43
+ content: [{ type: "text", text: JSON.stringify(payload, null, 2) }],
44
+ details: payload,
45
+ };
46
+ }
47
+ // ── Tool factory ──────────────────────────────────────────────────────────
48
+ /**
49
+ * Create the abmind_recall tool bound to a plugin instance and session.
50
+ *
51
+ * @param pluginId Matches the id the runtime was registered under in runtime-store
52
+ * @param sessionKey OpenClaw session key (from ctx.sessionKey in the registerTool factory).
53
+ * When present, recall is scoped to that session's chatId.
54
+ * When absent, recall falls back to the runtime's default user.
55
+ *
56
+ * Return type is `any` intentionally — we don't peer-dep pi-agent-core, so the
57
+ * AgentTool type isn't in scope here. OpenClaw validates the shape at
58
+ * registration time; an integration test catches contract drift.
59
+ */
60
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
61
+ export function createAbmindRecallTool(pluginId, sessionKey, runtime) {
62
+ return {
63
+ name: "abmind_recall",
64
+ label: "Abmind Recall",
65
+ description: "Search long-term memory for past conversations, facts, decisions. Use when user references earlier sessions or asks you to remember something. Optional filters: topic, emotion.",
66
+ parameters: AbmindRecallSchema,
67
+ async execute(_toolCallId, params, _signal) {
68
+ const rt = runtime ?? getRuntime(pluginId);
69
+ if (rt.ready)
70
+ await rt.ready;
71
+ const chatId = sessionKey ? toChatId(sessionKey) : undefined;
72
+ const limit = Math.min(Math.max(params.limit ?? 10, 1), 50);
73
+ const result = await rt.memory.recallSearch({
74
+ translated: [params.query],
75
+ userId: chatId ?? "default",
76
+ limit,
77
+ maxClassification: 2, // hardcoded — tool callers never see SECRET (class 3)
78
+ topic: params.topic,
79
+ emotion: params.emotion,
80
+ });
81
+ const hits = result.results.map((h) => ({
82
+ id: h.id,
83
+ content: h.content,
84
+ date: h.date,
85
+ source: h.source,
86
+ score: h.score,
87
+ memoryType: h.memoryType,
88
+ topic: h.topic,
89
+ }));
90
+ return jsonResult({
91
+ count: hits.length,
92
+ hits,
93
+ });
94
+ },
95
+ };
96
+ }
97
+ // ── Store tool ────────────────────────────────────────────────────────────
98
+ const AbmindStoreSchema = Type.Object({
99
+ content: Type.String({ description: "Memory content (English). For credentials, store the exact string." }),
100
+ original: Type.Optional(Type.String({ description: "Original language content (if not English)" })),
101
+ type: Type.String({ description: "Memory type", enum: ["fact", "decision", "preference", "event", "lesson", "feedback", "story"] }),
102
+ topic: Type.Optional(Type.String({ description: "Topic tag (coding, personal, finance, health, work, etc.)" })),
103
+ classification: Type.Optional(Type.Integer({ description: "0=public, 1=internal, 2=confidential, 3=secret (credentials — store IMMEDIATELY with exact string)", minimum: 0, maximum: 3 })),
104
+ emotion: Type.Optional(Type.Integer({ description: "Emotion score -5 to +5 (0=neutral)", minimum: -5, maximum: 5 })),
105
+ });
106
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
107
+ export function createAbmindStoreTool(pluginId, sessionKey, runtime) {
108
+ return {
109
+ name: "abmind_store",
110
+ label: "Abmind Store",
111
+ description: "Store a memory. Use after learning facts, preferences, decisions. API keys/tokens/passwords → classification=3 with exact string, immediately.",
112
+ parameters: AbmindStoreSchema,
113
+ async execute(_toolCallId, params, _signal) {
114
+ const rt = runtime ?? getRuntime(pluginId);
115
+ if (rt.ready)
116
+ await rt.ready;
117
+ const userId = sessionKey ? toChatId(sessionKey) : "default";
118
+ const result = await rt.memory.editor.instantStore({
119
+ userId,
120
+ contentEn: params.content,
121
+ contentOriginal: params.original ?? params.content,
122
+ memoryType: params.type,
123
+ topic: params.topic ?? "general",
124
+ classification: params.classification ?? 1,
125
+ emotionScore: params.emotion ?? 0,
126
+ });
127
+ return jsonResult(result);
128
+ },
129
+ };
130
+ }
131
+ //# sourceMappingURL=tools.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../src/openclaw-plugin/tools.ts"],"names":[],"mappings":"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"}