audrey 0.21.0 → 1.0.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 (346) hide show
  1. package/CHANGELOG.md +238 -0
  2. package/LICENSE +21 -21
  3. package/README.md +281 -33
  4. package/SECURITY.md +30 -0
  5. package/benchmarks/adapter-kit.mjs +20 -0
  6. package/benchmarks/adapter-self-test.mjs +166 -0
  7. package/benchmarks/adapters/example-allow.mjs +28 -0
  8. package/benchmarks/adapters/mem0-platform.mjs +267 -0
  9. package/benchmarks/adapters/registry.json +51 -0
  10. package/benchmarks/adapters/zep-cloud.mjs +280 -0
  11. package/benchmarks/baselines.js +169 -0
  12. package/benchmarks/build-leaderboard.mjs +170 -0
  13. package/benchmarks/cases.js +537 -0
  14. package/benchmarks/create-conformance-card.mjs +139 -0
  15. package/benchmarks/create-submission-bundle.mjs +176 -0
  16. package/benchmarks/dry-run-external-adapters.mjs +165 -0
  17. package/benchmarks/guardbench.js +1035 -0
  18. package/benchmarks/output/adapter-self-test/guardbench-adapter-self-test.json +50 -0
  19. package/benchmarks/output/external/guardbench-external-dry-run.json +69 -0
  20. package/benchmarks/output/external/guardbench-external-evidence.json +56 -0
  21. package/benchmarks/output/guardbench-conformance-card.json +63 -0
  22. package/benchmarks/output/guardbench-manifest.json +414 -0
  23. package/benchmarks/output/guardbench-raw.json +1171 -0
  24. package/benchmarks/output/guardbench-summary.json +1981 -0
  25. package/benchmarks/output/leaderboard/guardbench-leaderboard.json +93 -0
  26. package/benchmarks/output/leaderboard/guardbench-leaderboard.md +7 -0
  27. package/benchmarks/output/submission-bundle/guardbench-conformance-card.json +63 -0
  28. package/benchmarks/output/submission-bundle/guardbench-manifest.json +414 -0
  29. package/benchmarks/output/submission-bundle/guardbench-raw.json +1171 -0
  30. package/benchmarks/output/submission-bundle/guardbench-summary.json +1981 -0
  31. package/benchmarks/output/submission-bundle/schemas/guardbench-adapter-registry.schema.json +69 -0
  32. package/benchmarks/output/submission-bundle/schemas/guardbench-adapter-self-test.schema.json +156 -0
  33. package/benchmarks/output/submission-bundle/schemas/guardbench-conformance-card.schema.json +184 -0
  34. package/benchmarks/output/submission-bundle/schemas/guardbench-external-dry-run.schema.json +74 -0
  35. package/benchmarks/output/submission-bundle/schemas/guardbench-external-evidence.schema.json +108 -0
  36. package/benchmarks/output/submission-bundle/schemas/guardbench-external-run.schema.json +160 -0
  37. package/benchmarks/output/submission-bundle/schemas/guardbench-leaderboard.schema.json +179 -0
  38. package/benchmarks/output/submission-bundle/schemas/guardbench-manifest.schema.json +213 -0
  39. package/benchmarks/output/submission-bundle/schemas/guardbench-publication-verification.schema.json +47 -0
  40. package/benchmarks/output/submission-bundle/schemas/guardbench-raw.schema.json +164 -0
  41. package/benchmarks/output/submission-bundle/schemas/guardbench-submission-manifest.schema.json +151 -0
  42. package/benchmarks/output/submission-bundle/schemas/guardbench-summary.schema.json +228 -0
  43. package/benchmarks/output/submission-bundle/submission-manifest.json +131 -0
  44. package/benchmarks/output/submission-bundle/validation-report.json +31 -0
  45. package/benchmarks/output/summary.json +2354 -0
  46. package/benchmarks/perf-snapshot.js +304 -0
  47. package/benchmarks/perf.bench.js +161 -0
  48. package/benchmarks/public-paths.mjs +78 -0
  49. package/benchmarks/reference-results.js +70 -0
  50. package/benchmarks/report.js +259 -0
  51. package/benchmarks/run-external-guardbench.mjs +281 -0
  52. package/benchmarks/run.js +682 -0
  53. package/benchmarks/schemas/guardbench-adapter-registry.schema.json +69 -0
  54. package/benchmarks/schemas/guardbench-adapter-self-test.schema.json +156 -0
  55. package/benchmarks/schemas/guardbench-conformance-card.schema.json +184 -0
  56. package/benchmarks/schemas/guardbench-external-dry-run.schema.json +74 -0
  57. package/benchmarks/schemas/guardbench-external-evidence.schema.json +108 -0
  58. package/benchmarks/schemas/guardbench-external-run.schema.json +160 -0
  59. package/benchmarks/schemas/guardbench-leaderboard.schema.json +179 -0
  60. package/benchmarks/schemas/guardbench-manifest.schema.json +213 -0
  61. package/benchmarks/schemas/guardbench-publication-verification.schema.json +47 -0
  62. package/benchmarks/schemas/guardbench-raw.schema.json +164 -0
  63. package/benchmarks/schemas/guardbench-submission-manifest.schema.json +151 -0
  64. package/benchmarks/schemas/guardbench-summary.schema.json +228 -0
  65. package/benchmarks/snapshots/perf-0.22.2.json +123 -0
  66. package/benchmarks/snapshots/perf-0.23.0.json +123 -0
  67. package/benchmarks/validate-adapter-module.mjs +104 -0
  68. package/benchmarks/validate-adapter-registry.mjs +134 -0
  69. package/benchmarks/validate-adapter-self-test.mjs +96 -0
  70. package/benchmarks/validate-guardbench-artifacts.mjs +343 -0
  71. package/benchmarks/verify-external-evidence.mjs +296 -0
  72. package/benchmarks/verify-publication-artifacts.mjs +286 -0
  73. package/benchmarks/verify-submission-bundle.mjs +167 -0
  74. package/dist/mcp-server/config.d.ts +5 -4
  75. package/dist/mcp-server/config.d.ts.map +1 -1
  76. package/dist/mcp-server/config.js +6 -8
  77. package/dist/mcp-server/config.js.map +1 -1
  78. package/dist/mcp-server/index.d.ts +281 -23
  79. package/dist/mcp-server/index.d.ts.map +1 -1
  80. package/dist/mcp-server/index.js +1186 -82
  81. package/dist/mcp-server/index.js.map +1 -1
  82. package/dist/src/action-key.d.ts +9 -0
  83. package/dist/src/action-key.d.ts.map +1 -0
  84. package/dist/src/action-key.js +49 -0
  85. package/dist/src/action-key.js.map +1 -0
  86. package/dist/src/adaptive.d.ts.map +1 -1
  87. package/dist/src/adaptive.js +8 -6
  88. package/dist/src/adaptive.js.map +1 -1
  89. package/dist/src/affect.d.ts +4 -1
  90. package/dist/src/affect.d.ts.map +1 -1
  91. package/dist/src/affect.js +14 -12
  92. package/dist/src/affect.js.map +1 -1
  93. package/dist/src/audrey.d.ts +57 -4
  94. package/dist/src/audrey.d.ts.map +1 -1
  95. package/dist/src/audrey.js +512 -65
  96. package/dist/src/audrey.js.map +1 -1
  97. package/dist/src/capsule.d.ts +2 -1
  98. package/dist/src/capsule.d.ts.map +1 -1
  99. package/dist/src/capsule.js +18 -8
  100. package/dist/src/capsule.js.map +1 -1
  101. package/dist/src/causal.d.ts.map +1 -1
  102. package/dist/src/causal.js +23 -5
  103. package/dist/src/causal.js.map +1 -1
  104. package/dist/src/confidence.d.ts.map +1 -1
  105. package/dist/src/confidence.js +3 -0
  106. package/dist/src/confidence.js.map +1 -1
  107. package/dist/src/consolidate.d.ts +1 -0
  108. package/dist/src/consolidate.d.ts.map +1 -1
  109. package/dist/src/consolidate.js +70 -54
  110. package/dist/src/consolidate.js.map +1 -1
  111. package/dist/src/controller.d.ts +94 -0
  112. package/dist/src/controller.d.ts.map +1 -0
  113. package/dist/src/controller.js +350 -0
  114. package/dist/src/controller.js.map +1 -0
  115. package/dist/src/db.d.ts.map +1 -1
  116. package/dist/src/db.js +181 -169
  117. package/dist/src/db.js.map +1 -1
  118. package/dist/src/decay.d.ts.map +1 -1
  119. package/dist/src/decay.js +62 -55
  120. package/dist/src/decay.js.map +1 -1
  121. package/dist/src/embedding.d.ts +2 -1
  122. package/dist/src/embedding.d.ts.map +1 -1
  123. package/dist/src/embedding.js +60 -22
  124. package/dist/src/embedding.js.map +1 -1
  125. package/dist/src/encode.d.ts +9 -2
  126. package/dist/src/encode.d.ts.map +1 -1
  127. package/dist/src/encode.js +25 -12
  128. package/dist/src/encode.js.map +1 -1
  129. package/dist/src/export.d.ts.map +1 -1
  130. package/dist/src/export.js +5 -3
  131. package/dist/src/export.js.map +1 -1
  132. package/dist/src/feedback.d.ts +35 -0
  133. package/dist/src/feedback.d.ts.map +1 -0
  134. package/dist/src/feedback.js +129 -0
  135. package/dist/src/feedback.js.map +1 -0
  136. package/dist/src/forget.d.ts.map +1 -1
  137. package/dist/src/forget.js +68 -60
  138. package/dist/src/forget.js.map +1 -1
  139. package/dist/src/fts.js +1 -1
  140. package/dist/src/fts.js.map +1 -1
  141. package/dist/src/hybrid-recall.d.ts +2 -1
  142. package/dist/src/hybrid-recall.d.ts.map +1 -1
  143. package/dist/src/hybrid-recall.js +41 -32
  144. package/dist/src/hybrid-recall.js.map +1 -1
  145. package/dist/src/impact.d.ts +47 -0
  146. package/dist/src/impact.d.ts.map +1 -0
  147. package/dist/src/impact.js +146 -0
  148. package/dist/src/impact.js.map +1 -0
  149. package/dist/src/import.d.ts +177 -1
  150. package/dist/src/import.d.ts.map +1 -1
  151. package/dist/src/import.js +235 -46
  152. package/dist/src/import.js.map +1 -1
  153. package/dist/src/index.d.ts +5 -1
  154. package/dist/src/index.d.ts.map +1 -1
  155. package/dist/src/index.js +3 -1
  156. package/dist/src/index.js.map +1 -1
  157. package/dist/src/interference.d.ts +5 -2
  158. package/dist/src/interference.d.ts.map +1 -1
  159. package/dist/src/interference.js +39 -32
  160. package/dist/src/interference.js.map +1 -1
  161. package/dist/src/introspect.js +18 -18
  162. package/dist/src/llm.d.ts.map +1 -1
  163. package/dist/src/llm.js +1 -0
  164. package/dist/src/llm.js.map +1 -1
  165. package/dist/src/migrate.d.ts.map +1 -1
  166. package/dist/src/migrate.js +21 -9
  167. package/dist/src/migrate.js.map +1 -1
  168. package/dist/src/preflight.d.ts +2 -1
  169. package/dist/src/preflight.d.ts.map +1 -1
  170. package/dist/src/preflight.js +66 -5
  171. package/dist/src/preflight.js.map +1 -1
  172. package/dist/src/profile.d.ts +23 -0
  173. package/dist/src/profile.d.ts.map +1 -0
  174. package/dist/src/profile.js +51 -0
  175. package/dist/src/profile.js.map +1 -0
  176. package/dist/src/promote.d.ts.map +1 -1
  177. package/dist/src/promote.js +8 -9
  178. package/dist/src/promote.js.map +1 -1
  179. package/dist/src/prompts.d.ts.map +1 -1
  180. package/dist/src/prompts.js +165 -136
  181. package/dist/src/prompts.js.map +1 -1
  182. package/dist/src/recall.d.ts +9 -6
  183. package/dist/src/recall.d.ts.map +1 -1
  184. package/dist/src/recall.js +204 -62
  185. package/dist/src/recall.js.map +1 -1
  186. package/dist/src/redact.d.ts +7 -1
  187. package/dist/src/redact.d.ts.map +1 -1
  188. package/dist/src/redact.js +94 -11
  189. package/dist/src/redact.js.map +1 -1
  190. package/dist/src/reflexes.d.ts +1 -0
  191. package/dist/src/reflexes.d.ts.map +1 -1
  192. package/dist/src/reflexes.js +3 -0
  193. package/dist/src/reflexes.js.map +1 -1
  194. package/dist/src/rollback.d.ts.map +1 -1
  195. package/dist/src/rollback.js +13 -8
  196. package/dist/src/rollback.js.map +1 -1
  197. package/dist/src/routes.d.ts +1 -0
  198. package/dist/src/routes.d.ts.map +1 -1
  199. package/dist/src/routes.js +251 -6
  200. package/dist/src/routes.js.map +1 -1
  201. package/dist/src/rules-compiler.d.ts.map +1 -1
  202. package/dist/src/rules-compiler.js +36 -6
  203. package/dist/src/rules-compiler.js.map +1 -1
  204. package/dist/src/server.d.ts +2 -1
  205. package/dist/src/server.d.ts.map +1 -1
  206. package/dist/src/server.js +42 -4
  207. package/dist/src/server.js.map +1 -1
  208. package/dist/src/tool-trace.d.ts.map +1 -1
  209. package/dist/src/tool-trace.js +42 -29
  210. package/dist/src/tool-trace.js.map +1 -1
  211. package/dist/src/types.d.ts +28 -1
  212. package/dist/src/types.d.ts.map +1 -1
  213. package/dist/src/ulid.d.ts.map +1 -1
  214. package/dist/src/ulid.js +52 -2
  215. package/dist/src/ulid.js.map +1 -1
  216. package/dist/src/utils.d.ts.map +1 -1
  217. package/dist/src/utils.js +8 -1
  218. package/dist/src/utils.js.map +1 -1
  219. package/dist/src/validate.d.ts +2 -0
  220. package/dist/src/validate.d.ts.map +1 -1
  221. package/dist/src/validate.js +77 -46
  222. package/dist/src/validate.js.map +1 -1
  223. package/docs/AUDREY_PAPER_OUTLINE.md +175 -0
  224. package/docs/MEMORY_BENCHMARKING.md +59 -0
  225. package/docs/PRODUCTION_BACKLOG.md +304 -0
  226. package/docs/paper/00-master.md +48 -0
  227. package/docs/paper/01-introduction.md +27 -0
  228. package/docs/paper/02-related-work.md +47 -0
  229. package/docs/paper/03-problem-definition.md +108 -0
  230. package/docs/paper/04-design.md +164 -0
  231. package/docs/paper/05-guardbench-spec.md +412 -0
  232. package/docs/paper/06-implementation.md +113 -0
  233. package/docs/paper/07-evaluation.md +168 -0
  234. package/docs/paper/08-discussion-limitations.md +61 -0
  235. package/docs/paper/09-conclusion.md +11 -0
  236. package/docs/paper/SUBMISSION_README.md +162 -0
  237. package/docs/paper/appendix-a-demo-transcript.md +114 -0
  238. package/docs/paper/arxiv-compile-report.schema.json +116 -0
  239. package/docs/paper/arxiv-source.schema.json +61 -0
  240. package/docs/paper/audrey-paper-v1.md +1106 -0
  241. package/docs/paper/browser-launch-plan.json +209 -0
  242. package/docs/paper/browser-launch-plan.schema.json +100 -0
  243. package/docs/paper/browser-launch-results.json +86 -0
  244. package/docs/paper/browser-launch-results.schema.json +66 -0
  245. package/docs/paper/claim-register.json +138 -0
  246. package/docs/paper/claim-register.schema.json +81 -0
  247. package/docs/paper/evidence-ledger.md +103 -0
  248. package/docs/paper/output/arxiv/README-arxiv.txt +8 -0
  249. package/docs/paper/output/arxiv/arxiv-manifest.json +41 -0
  250. package/docs/paper/output/arxiv/main.tex +949 -0
  251. package/docs/paper/output/arxiv/references.bib +222 -0
  252. package/docs/paper/output/arxiv-compile-report.json +24 -0
  253. package/docs/paper/output/submission-bundle/LICENSE +21 -0
  254. package/docs/paper/output/submission-bundle/README.md +533 -0
  255. package/docs/paper/output/submission-bundle/benchmarks/output/adapter-self-test/guardbench-adapter-self-test.json +50 -0
  256. package/docs/paper/output/submission-bundle/benchmarks/output/external/guardbench-external-dry-run.json +69 -0
  257. package/docs/paper/output/submission-bundle/benchmarks/output/external/guardbench-external-evidence.json +56 -0
  258. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-conformance-card.json +63 -0
  259. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-manifest.json +414 -0
  260. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-raw.json +1171 -0
  261. package/docs/paper/output/submission-bundle/benchmarks/output/guardbench-summary.json +1981 -0
  262. package/docs/paper/output/submission-bundle/benchmarks/output/leaderboard/guardbench-leaderboard.json +93 -0
  263. package/docs/paper/output/submission-bundle/benchmarks/output/leaderboard/guardbench-leaderboard.md +7 -0
  264. package/docs/paper/output/submission-bundle/benchmarks/output/submission-bundle/submission-manifest.json +131 -0
  265. package/docs/paper/output/submission-bundle/benchmarks/output/submission-bundle/validation-report.json +31 -0
  266. package/docs/paper/output/submission-bundle/benchmarks/output/summary.json +2354 -0
  267. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-adapter-registry.schema.json +69 -0
  268. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-adapter-self-test.schema.json +156 -0
  269. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-conformance-card.schema.json +184 -0
  270. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-external-dry-run.schema.json +74 -0
  271. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-external-evidence.schema.json +108 -0
  272. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-external-run.schema.json +160 -0
  273. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-leaderboard.schema.json +179 -0
  274. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-manifest.schema.json +213 -0
  275. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-publication-verification.schema.json +47 -0
  276. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-raw.schema.json +164 -0
  277. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-submission-manifest.schema.json +151 -0
  278. package/docs/paper/output/submission-bundle/benchmarks/schemas/guardbench-summary.schema.json +228 -0
  279. package/docs/paper/output/submission-bundle/docs/AUDREY_PAPER_OUTLINE.md +175 -0
  280. package/docs/paper/output/submission-bundle/docs/paper/00-master.md +48 -0
  281. package/docs/paper/output/submission-bundle/docs/paper/01-introduction.md +27 -0
  282. package/docs/paper/output/submission-bundle/docs/paper/02-related-work.md +47 -0
  283. package/docs/paper/output/submission-bundle/docs/paper/03-problem-definition.md +108 -0
  284. package/docs/paper/output/submission-bundle/docs/paper/04-design.md +164 -0
  285. package/docs/paper/output/submission-bundle/docs/paper/05-guardbench-spec.md +412 -0
  286. package/docs/paper/output/submission-bundle/docs/paper/06-implementation.md +113 -0
  287. package/docs/paper/output/submission-bundle/docs/paper/07-evaluation.md +168 -0
  288. package/docs/paper/output/submission-bundle/docs/paper/08-discussion-limitations.md +61 -0
  289. package/docs/paper/output/submission-bundle/docs/paper/09-conclusion.md +11 -0
  290. package/docs/paper/output/submission-bundle/docs/paper/SUBMISSION_README.md +162 -0
  291. package/docs/paper/output/submission-bundle/docs/paper/appendix-a-demo-transcript.md +114 -0
  292. package/docs/paper/output/submission-bundle/docs/paper/arxiv-compile-report.schema.json +116 -0
  293. package/docs/paper/output/submission-bundle/docs/paper/arxiv-source.schema.json +61 -0
  294. package/docs/paper/output/submission-bundle/docs/paper/audrey-paper-v1.md +1106 -0
  295. package/docs/paper/output/submission-bundle/docs/paper/browser-launch-plan.json +209 -0
  296. package/docs/paper/output/submission-bundle/docs/paper/browser-launch-plan.schema.json +100 -0
  297. package/docs/paper/output/submission-bundle/docs/paper/browser-launch-results.json +86 -0
  298. package/docs/paper/output/submission-bundle/docs/paper/browser-launch-results.schema.json +66 -0
  299. package/docs/paper/output/submission-bundle/docs/paper/claim-register.json +138 -0
  300. package/docs/paper/output/submission-bundle/docs/paper/claim-register.schema.json +81 -0
  301. package/docs/paper/output/submission-bundle/docs/paper/evidence-ledger.md +103 -0
  302. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/README-arxiv.txt +8 -0
  303. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/arxiv-manifest.json +41 -0
  304. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/main.tex +949 -0
  305. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv/references.bib +222 -0
  306. package/docs/paper/output/submission-bundle/docs/paper/output/arxiv-compile-report.json +24 -0
  307. package/docs/paper/output/submission-bundle/docs/paper/paper-submission-bundle.schema.json +70 -0
  308. package/docs/paper/output/submission-bundle/docs/paper/publication-pack.json +81 -0
  309. package/docs/paper/output/submission-bundle/docs/paper/publication-pack.schema.json +60 -0
  310. package/docs/paper/output/submission-bundle/docs/paper/references.bib +222 -0
  311. package/docs/paper/output/submission-bundle/package.json +212 -0
  312. package/docs/paper/output/submission-bundle/paper-submission-manifest.json +379 -0
  313. package/docs/paper/paper-submission-bundle.schema.json +70 -0
  314. package/docs/paper/publication-pack.json +81 -0
  315. package/docs/paper/publication-pack.schema.json +60 -0
  316. package/docs/paper/references.bib +222 -0
  317. package/package.json +103 -26
  318. package/scripts/audit-release-completion.mjs +362 -0
  319. package/scripts/create-arxiv-source.mjs +362 -0
  320. package/scripts/create-paper-submission-bundle.mjs +210 -0
  321. package/scripts/finalize-release.mjs +526 -0
  322. package/scripts/prepare-release-cut.mjs +269 -0
  323. package/scripts/publish-release-bundle.mjs +209 -0
  324. package/scripts/publish-release-github-api.mjs +429 -0
  325. package/scripts/run-vitest.mjs +34 -0
  326. package/scripts/smoke-cli.js +72 -0
  327. package/scripts/sync-paper-artifacts.mjs +109 -0
  328. package/scripts/verify-arxiv-compile.mjs +440 -0
  329. package/scripts/verify-arxiv-source.mjs +194 -0
  330. package/scripts/verify-browser-launch-plan.mjs +237 -0
  331. package/scripts/verify-browser-launch-results.mjs +285 -0
  332. package/scripts/verify-paper-artifacts.mjs +338 -0
  333. package/scripts/verify-paper-claims.mjs +226 -0
  334. package/scripts/verify-paper-submission-bundle.mjs +207 -0
  335. package/scripts/verify-publication-pack.mjs +196 -0
  336. package/scripts/verify-python-package.py +201 -0
  337. package/scripts/verify-release-readiness.mjs +741 -0
  338. package/docs/assets/benchmarks/local-benchmark.svg +0 -45
  339. package/docs/assets/benchmarks/operations-benchmark.svg +0 -45
  340. package/docs/assets/benchmarks/published-memory-standards.svg +0 -50
  341. package/docs/audrey-for-dummies.md +0 -670
  342. package/docs/benchmarking.md +0 -151
  343. package/docs/future-of-llm-memory.md +0 -452
  344. package/docs/mcp-hosts.md +0 -206
  345. package/docs/ollama-local-agents.md +0 -128
  346. package/docs/production-readiness.md +0 -128
@@ -0,0 +1,222 @@
1
+ % Primary URL: https://arxiv.org/abs/2504.19413
2
+ @misc{chhikara2025mem0,
3
+ title = {Mem0: Building Production-Ready AI Agents with Scalable Long-Term Memory},
4
+ author = {Chhikara, Prateek and Khant, Dev and Aryan, Saket and Singh, Taranjeet and Yadav, Deshraj},
5
+ year = {2025},
6
+ eprint = {2504.19413},
7
+ archivePrefix = {arXiv},
8
+ primaryClass = {cs.CL},
9
+ url = {https://arxiv.org/abs/2504.19413}
10
+ }
11
+
12
+ % Primary URL: https://arxiv.org/abs/2310.08560
13
+ @misc{packer2024memgpt,
14
+ title = {MemGPT: Towards LLMs as Operating Systems},
15
+ author = {Packer, Charles and Wooders, Sarah and Lin, Kevin and Fang, Vivian and Patil, Shishir G. and Stoica, Ion and Gonzalez, Joseph E.},
16
+ year = {2024},
17
+ eprint = {2310.08560},
18
+ archivePrefix = {arXiv},
19
+ primaryClass = {cs.AI},
20
+ url = {https://arxiv.org/abs/2310.08560}
21
+ }
22
+
23
+ % Primary URL: https://arxiv.org/abs/2410.10813
24
+ @misc{wu2025longmemeval,
25
+ title = {LongMemEval: Benchmarking Chat Assistants on Long-Term Interactive Memory},
26
+ author = {Wu, Di and Wang, Hongwei and Yu, Wenhao and Zhang, Yuwei and Chang, Kai-Wei and Yu, Dong},
27
+ year = {2025},
28
+ eprint = {2410.10813},
29
+ archivePrefix = {arXiv},
30
+ primaryClass = {cs.CL},
31
+ url = {https://arxiv.org/abs/2410.10813}
32
+ }
33
+
34
+ % Primary URL: https://arxiv.org/abs/2402.17753
35
+ @misc{maharana2024locomo,
36
+ title = {Evaluating Very Long-Term Conversational Memory of LLM Agents},
37
+ author = {Maharana, Adyasha and Lee, Dong-Ho and Tulyakov, Sergey and Bansal, Mohit and Barbieri, Francesco and Fang, Yuwei},
38
+ year = {2024},
39
+ eprint = {2402.17753},
40
+ archivePrefix = {arXiv},
41
+ primaryClass = {cs.CL},
42
+ url = {https://arxiv.org/abs/2402.17753}
43
+ }
44
+
45
+ % Primary URL: https://arxiv.org/abs/2210.07316
46
+ @misc{muennighoff2023mteb,
47
+ title = {MTEB: Massive Text Embedding Benchmark},
48
+ author = {Muennighoff, Niklas and Tazi, Nouamane and Magne, Loic and Reimers, Nils},
49
+ year = {2023},
50
+ eprint = {2210.07316},
51
+ archivePrefix = {arXiv},
52
+ primaryClass = {cs.CL},
53
+ url = {https://arxiv.org/abs/2210.07316}
54
+ }
55
+
56
+ % Primary URL: https://arxiv.org/abs/2510.17281
57
+ @misc{ai2026memorybench,
58
+ title = {MemoryBench: A Benchmark for Memory and Continual Learning in LLM Systems},
59
+ author = {Ai, Qingyao and Tang, Yichen and Wang, Changyue and Long, Jianming and Su, Weihang and Liu, Yiqun},
60
+ year = {2026},
61
+ eprint = {2510.17281},
62
+ archivePrefix = {arXiv},
63
+ primaryClass = {cs.LG},
64
+ url = {https://arxiv.org/abs/2510.17281}
65
+ }
66
+
67
+ % Primary URL: https://arxiv.org/abs/2501.13956
68
+ @misc{rasmussen2025zep,
69
+ title = {Zep: A Temporal Knowledge Graph Architecture for Agent Memory},
70
+ author = {Rasmussen, Preston and Paliychuk, Pavlo and Beauvais, Travis and Ryan, Jack and Chalef, Daniel},
71
+ year = {2025},
72
+ eprint = {2501.13956},
73
+ archivePrefix = {arXiv},
74
+ primaryClass = {cs.CL},
75
+ url = {https://arxiv.org/abs/2501.13956}
76
+ }
77
+
78
+ % Primary URL: https://github.com/getzep/graphiti
79
+ @misc{zep2026graphiti,
80
+ title = {Graphiti: Build Real-Time Knowledge Graphs for AI Agents},
81
+ author = {{Zep}},
82
+ year = {2026},
83
+ howpublished = {GitHub repository},
84
+ url = {https://github.com/getzep/graphiti},
85
+ note = {Accessed 2026-05-08}
86
+ }
87
+
88
+ % Primary URL: https://arxiv.org/abs/2507.03724
89
+ @misc{li2025memos,
90
+ title = {MemOS: A Memory OS for AI System},
91
+ author = {Li, Zhiyu and Xi, Chenyang and Li, Chunyu and Chen, Ding and Chen, Boyu and Song, Shichao and Niu, Simin and Wang, Hanyu and Yang, Jiawei and Tang, Chen and Yu, Qingchen and Zhao, Jihao and Wang, Yezhaohui and Liu, Peng and Lin, Zehao and Wang, Pengyuan and Huo, Jiahao and Chen, Tianyi and Chen, Kai and Li, Kehang and Tao, Zhen and Lai, Huayi and Wu, Hao and Tang, Bo and Wang, Zhengren and Fan, Zhaoxin and Zhang, Ningyu and Zhang, Linfeng and Yan, Junchi and Yang, Mingchuan and Xu, Tong and Xu, Wei and Chen, Huajun and Wang, Haofen and Yang, Hongkang and Zhang, Wentao and Xu, Zhi-Qin John and Chen, Siheng and Xiong, Feiyu},
92
+ year = {2025},
93
+ eprint = {2507.03724},
94
+ archivePrefix = {arXiv},
95
+ primaryClass = {cs.CL},
96
+ url = {https://arxiv.org/abs/2507.03724}
97
+ }
98
+
99
+ % Primary URL: https://langchain-ai.github.io/langmem/
100
+ @misc{langchain2026langmem,
101
+ title = {LangMem Documentation},
102
+ author = {{LangChain}},
103
+ year = {2026},
104
+ howpublished = {Official documentation},
105
+ url = {https://langchain-ai.github.io/langmem/},
106
+ note = {Accessed 2026-05-08}
107
+ }
108
+
109
+ % Primary URL: https://github.com/langchain-ai/langmem
110
+ @misc{langchain2026langmemrepo,
111
+ title = {LangMem},
112
+ author = {{LangChain}},
113
+ year = {2026},
114
+ howpublished = {GitHub repository},
115
+ url = {https://github.com/langchain-ai/langmem},
116
+ note = {Accessed 2026-05-08}
117
+ }
118
+
119
+ % Primary URL: https://supermemory.ai/docs
120
+ @misc{supermemory2026docs,
121
+ title = {supermemory Documentation: Memory API for the AI Era},
122
+ author = {{Supermemory}},
123
+ year = {2026},
124
+ howpublished = {Official documentation},
125
+ url = {https://supermemory.ai/docs},
126
+ note = {Accessed 2026-05-08}
127
+ }
128
+
129
+ % Primary URL: https://github.com/supermemoryai/supermemory
130
+ @misc{supermemory2026repo,
131
+ title = {Supermemory: Memory Engine and App},
132
+ author = {{Supermemory}},
133
+ year = {2026},
134
+ howpublished = {GitHub repository},
135
+ url = {https://github.com/supermemoryai/supermemory},
136
+ note = {Accessed 2026-05-08}
137
+ }
138
+
139
+ % Primary URL: https://arxiv.org/abs/2505.24478
140
+ @misc{markovic2025cognee,
141
+ title = {Optimizing the Interface Between Knowledge Graphs and LLMs for Complex Reasoning},
142
+ author = {Markovic, Vasilije and Obradovic, Lazar and Hajdu, Laszlo and Pavlovic, Jovan},
143
+ year = {2025},
144
+ eprint = {2505.24478},
145
+ archivePrefix = {arXiv},
146
+ primaryClass = {cs.AI},
147
+ url = {https://arxiv.org/abs/2505.24478}
148
+ }
149
+
150
+ % Primary URL: https://github.com/topoteretes/cognee
151
+ @misc{cognee2026repo,
152
+ title = {Cognee: Knowledge Engine for AI Agent Memory},
153
+ author = {{Cognee}},
154
+ year = {2026},
155
+ howpublished = {GitHub repository},
156
+ url = {https://github.com/topoteretes/cognee},
157
+ note = {Accessed 2026-05-08}
158
+ }
159
+
160
+ % Primary URL: https://modelcontextprotocol.io/specification/2025-11-25/schema
161
+ @misc{mcp2025schema,
162
+ title = {Model Context Protocol Schema Reference, Protocol Revision 2025-11-25},
163
+ author = {{Model Context Protocol}},
164
+ year = {2025},
165
+ howpublished = {Official specification},
166
+ url = {https://modelcontextprotocol.io/specification/2025-11-25/schema},
167
+ note = {Accessed 2026-05-08}
168
+ }
169
+
170
+ % Primary URL: https://arxiv.org/abs/2510.15994
171
+ @misc{zhang2026mcpsecuritybench,
172
+ title = {MCP Security Bench (MSB): Benchmarking Attacks Against Model Context Protocol in LLM Agents},
173
+ author = {Zhang, Dongsen and Li, Zekun and Luo, Xu and Liu, Xuannan and Li, Peipei and Xu, Wenjun},
174
+ year = {2026},
175
+ eprint = {2510.15994},
176
+ archivePrefix = {arXiv},
177
+ primaryClass = {cs.CR},
178
+ url = {https://arxiv.org/abs/2510.15994}
179
+ }
180
+
181
+ % Primary URL: https://arxiv.org/abs/2512.06556
182
+ @misc{jamshidi2025toolpoisoning,
183
+ title = {Securing the Model Context Protocol: Defending LLMs Against Tool Poisoning and Adversarial Attacks},
184
+ author = {Jamshidi, Saeid and Nafi, Kawser Wazed and Dakhel, Arghavan Moradi and Shahabi, Negar and Khomh, Foutse and Ezzati-Jivan, Naser},
185
+ year = {2025},
186
+ eprint = {2512.06556},
187
+ archivePrefix = {arXiv},
188
+ primaryClass = {cs.CR},
189
+ url = {https://arxiv.org/abs/2512.06556}
190
+ }
191
+
192
+ % Primary URL: https://blog.modelcontextprotocol.io/posts/2026-03-16-tool-annotations/
193
+ @misc{mcp2026toolannotations,
194
+ title = {Tool Annotations as Risk Vocabulary: What Hints Can and Can't Do},
195
+ author = {Hungerford, Ola and Morrow, Sam and Chang, Luca},
196
+ year = {2026},
197
+ month = {March},
198
+ howpublished = {Model Context Protocol Blog},
199
+ url = {https://blog.modelcontextprotocol.io/posts/2026-03-16-tool-annotations/},
200
+ note = {Accessed 2026-05-08}
201
+ }
202
+
203
+ % Primary URL: https://code.claude.com/docs/en/hooks
204
+ @misc{anthropic2026claudecodehooks,
205
+ title = {Claude Code Hooks Reference},
206
+ author = {{Anthropic}},
207
+ year = {2026},
208
+ howpublished = {Official documentation},
209
+ url = {https://code.claude.com/docs/en/hooks},
210
+ note = {Accessed 2026-05-08}
211
+ }
212
+
213
+ % Primary URL: https://mem0.ai/blog/mem0-the-token-efficient-memory-algorithm
214
+ @misc{mem02026tokenefficient,
215
+ title = {Introducing The Token-Efficient Memory Algorithm},
216
+ author = {Yadav, Deshraj},
217
+ year = {2026},
218
+ month = {April},
219
+ howpublished = {Mem0 Blog},
220
+ url = {https://mem0.ai/blog/mem0-the-token-efficient-memory-algorithm},
221
+ note = {Accessed 2026-05-08}
222
+ }
@@ -0,0 +1,24 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "suite": "Audrey arXiv compile check",
4
+ "generatedAt": "2026-05-13T23:33:57.318Z",
5
+ "source": {
6
+ "sourceDir": "docs/paper/output/arxiv",
7
+ "manifest": "docs/paper/output/arxiv/arxiv-manifest.json",
8
+ "manifestSha256": "386121a5f6234f56a370c5c54bde4ff12fc462921e7e5770d6968a4710271df8",
9
+ "mainTex": "docs/paper/output/arxiv/main.tex",
10
+ "mainTexSha256": "b0122e625380ad9a6aff78e2acbd5984b558c054962f8774f77fee70e6588d06",
11
+ "referencesBib": "docs/paper/output/arxiv/references.bib",
12
+ "referencesBibSha256": "c0bfcaf7bfe37d6933c812e46352be8a95397eaa430a0f5bc94037600a53f654"
13
+ },
14
+ "outputDir": "docs/paper/output/arxiv-compile",
15
+ "status": "toolchain-missing",
16
+ "compiler": null,
17
+ "outputPdf": null,
18
+ "outputPdfSha256": null,
19
+ "logFile": null,
20
+ "blockers": [
21
+ "Install tectonic, latexmk, or pdflatex+bibtex before final arXiv compile proof"
22
+ ],
23
+ "failures": []
24
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://audrey-memory.org/schemas/audrey-paper-submission-bundle.schema.json",
4
+ "title": "Audrey Paper Submission Bundle",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": [
8
+ "schemaVersion",
9
+ "suite",
10
+ "generatedAt",
11
+ "sourceRoot",
12
+ "outDir",
13
+ "claimVerification",
14
+ "publicationPackVerification",
15
+ "guardBenchSnapshot",
16
+ "files"
17
+ ],
18
+ "properties": {
19
+ "schemaVersion": { "const": "1.0.0" },
20
+ "suite": { "const": "Audrey paper submission bundle" },
21
+ "generatedAt": { "type": "string", "minLength": 1 },
22
+ "sourceRoot": { "type": "string", "minLength": 1 },
23
+ "outDir": { "type": "string", "minLength": 1 },
24
+ "claimVerification": { "$ref": "#/$defs/check" },
25
+ "publicationPackVerification": { "$ref": "#/$defs/check" },
26
+ "guardBenchSnapshot": {
27
+ "type": "object",
28
+ "additionalProperties": false,
29
+ "required": ["passed", "scenarios", "redactionLeaks", "artifactLeaks", "latencyP50Ms", "latencyP95Ms"],
30
+ "properties": {
31
+ "passed": { "type": "integer", "minimum": 0 },
32
+ "scenarios": { "type": "integer", "minimum": 0 },
33
+ "redactionLeaks": { "type": "integer", "minimum": 0 },
34
+ "artifactLeaks": { "type": "integer", "minimum": 0 },
35
+ "latencyP50Ms": { "type": "number", "minimum": 0 },
36
+ "latencyP95Ms": { "type": "number", "minimum": 0 }
37
+ }
38
+ },
39
+ "files": {
40
+ "type": "array",
41
+ "minItems": 1,
42
+ "items": { "$ref": "#/$defs/fileRecord" }
43
+ }
44
+ },
45
+ "$defs": {
46
+ "check": {
47
+ "type": "object",
48
+ "additionalProperties": false,
49
+ "required": ["ok", "count"],
50
+ "properties": {
51
+ "ok": { "type": "boolean" },
52
+ "count": { "type": "integer", "minimum": 0 }
53
+ }
54
+ },
55
+ "fileRecord": {
56
+ "type": "object",
57
+ "additionalProperties": false,
58
+ "required": ["path", "source", "bytes", "sha256"],
59
+ "properties": {
60
+ "path": { "type": "string", "minLength": 1 },
61
+ "source": { "type": "string", "minLength": 1 },
62
+ "bytes": { "type": "integer", "minimum": 0 },
63
+ "sha256": {
64
+ "type": "string",
65
+ "pattern": "^[a-f0-9]{64}$"
66
+ }
67
+ }
68
+ }
69
+ }
70
+ }
@@ -0,0 +1,81 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "suite": "Audrey publication pack",
4
+ "claimRegister": "docs/paper/claim-register.json",
5
+ "entries": [
6
+ {
7
+ "id": "arxiv-title",
8
+ "platform": "arxiv",
9
+ "kind": "title",
10
+ "claimIds": ["C01", "C03"],
11
+ "maxChars": 180,
12
+ "text": "Audrey: Local-First Pre-Action Memory Control for AI Agents"
13
+ },
14
+ {
15
+ "id": "arxiv-abstract",
16
+ "platform": "arxiv",
17
+ "kind": "abstract",
18
+ "claimIds": ["C01", "C02", "C03", "C04"],
19
+ "maxChars": 1920,
20
+ "text": "AI agents increasingly rely on long-running tool use, but most memory systems are evaluated as retrieval layers rather than as pre-action control systems. Audrey is a local-first memory runtime that records episodes, procedures, contradictions, tool traces, validation outcomes, and salience, then checks relevant memory before an agent touches tools. The paper introduces GuardBench, a Stage-A benchmark specification for memory-before-action behavior, and reports a local comparative run across Audrey Guard, no-memory, recent-window, vector-only, and FTS-only adapters. In the current repository artifacts, Audrey Guard passes 10/10 local GuardBench scenarios with zero seeded raw-secret leaks in published artifacts. The paper does not report external-system GuardBench scores; Mem0 and Zep adapters exist, but live credentialed outputs remain pending strict evidence verification. The release includes schema-bound manifests, raw outputs, conformance cards, submission bundles, leaderboard artifacts, an external evidence verifier, and a claim register that blocks unsupported public claims."
21
+ },
22
+ {
23
+ "id": "hacker-news-title",
24
+ "platform": "hacker-news",
25
+ "kind": "title",
26
+ "claimIds": ["C01", "C03"],
27
+ "maxChars": 80,
28
+ "text": "Show HN: Audrey, a local-first memory firewall for AI agents"
29
+ },
30
+ {
31
+ "id": "hacker-news-comment",
32
+ "platform": "hacker-news",
33
+ "kind": "body",
34
+ "claimIds": ["C01", "C02", "C03", "C04"],
35
+ "maxChars": 1800,
36
+ "text": "Audrey is my local-first memory runtime for agents. The core idea is memory-before-action: before an agent runs a command, edits files, or touches tools, Audrey recalls relevant failures, rules, procedures, contradictions, and validation history, then returns allow/warn/block with evidence. The research paper introduces GuardBench, a Stage-A benchmark spec for this pre-action control problem. Current local artifacts show Audrey Guard passing 10/10 local scenarios with zero seeded raw-secret leaks in published artifacts. I am deliberately not claiming external-system scores yet: Mem0 and Zep adapters are implemented, but live credentialed runs are still pending strict evidence verification. The repo includes schemas, raw outputs, conformance cards, a submission bundle, a leaderboard builder, an external evidence verifier, and a claim register that blocks public overclaims."
37
+ },
38
+ {
39
+ "id": "reddit-title",
40
+ "platform": "reddit",
41
+ "kind": "title",
42
+ "claimIds": ["C01", "C03"],
43
+ "maxChars": 300,
44
+ "text": "Audrey: a local-first memory firewall for agents, with a GuardBench paper and auditable benchmark artifacts"
45
+ },
46
+ {
47
+ "id": "reddit-body",
48
+ "platform": "reddit",
49
+ "kind": "body",
50
+ "claimIds": ["C01", "C02", "C03", "C04"],
51
+ "maxChars": 4000,
52
+ "text": "I have been building Audrey as a local-first memory layer for agents, but the framing has shifted from simple recall to pre-action control. Instead of only asking whether memory can retrieve facts, Audrey asks whether memory changes the next tool action before it happens. It records tool failures, rules, procedures, contradictions, validations, and salience, then returns allow/warn/block decisions with evidence. The paper introduces GuardBench as a reproducibility contract for this memory-before-action behavior. The current Stage-A result is intentionally narrow: local Audrey Guard passes 10/10 local GuardBench scenarios with zero seeded raw-secret leaks in published artifacts. External Mem0/Zep scores are not claimed yet; those adapters exist, but live credentialed outputs are pending strict evidence verification. The repo now includes the benchmark manifest, raw outputs, schemas, conformance card, submission bundle, leaderboard builder, external evidence verifier, and claim register so the public claims can be audited."
53
+ },
54
+ {
55
+ "id": "x-post-1",
56
+ "platform": "x",
57
+ "kind": "post",
58
+ "claimIds": ["C01", "C02"],
59
+ "maxChars": 280,
60
+ "requiresArtifactUrl": true,
61
+ "reservedUrlChars": 24,
62
+ "text": "Audrey is a local-first memory firewall for AI agents: recall failures, rules, contradictions, and validations before tools run. Stage-A GuardBench: local Audrey Guard passes 10/10. External Mem0/Zep scores remain pending."
63
+ },
64
+ {
65
+ "id": "x-post-2",
66
+ "platform": "x",
67
+ "kind": "post",
68
+ "claimIds": ["C03", "C04"],
69
+ "maxChars": 280,
70
+ "text": "The Audrey paper ships with auditable benchmark artifacts: schemas, raw outputs, conformance cards, submission bundle, leaderboard, external evidence verifier, and a claim register that blocks unsupported public claims."
71
+ },
72
+ {
73
+ "id": "linkedin-post",
74
+ "platform": "linkedin",
75
+ "kind": "post",
76
+ "claimIds": ["C01", "C02", "C03", "C04"],
77
+ "maxChars": 3000,
78
+ "text": "I am preparing Audrey as a local-first memory runtime for AI agents, centered on pre-action memory control. Most agent memory work is evaluated as retrieval: can the system find the right fact? Audrey focuses on a different operational question: can memory change the next tool action before the tool runs? Audrey records episodes, procedures, contradictions, tool traces, validation outcomes, and salience, then returns allow/warn/block decisions with evidence. The accompanying paper introduces GuardBench, a Stage-A benchmark specification for memory-before-action behavior. Current local artifacts show Audrey Guard passing 10/10 local GuardBench scenarios with zero seeded raw-secret leaks in published artifacts. I am intentionally not reporting external-system scores yet: Mem0 and Zep adapters are implemented, but live credentialed runs remain pending strict evidence verification. The release includes machine-readable schemas, raw outputs, conformance cards, submission bundles, leaderboard artifacts, an external evidence verifier, and a public claim register so the claims can be audited before publication."
79
+ }
80
+ ]
81
+ }
@@ -0,0 +1,60 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://audrey-memory.org/schemas/audrey-publication-pack.schema.json",
4
+ "title": "Audrey Publication Pack",
5
+ "type": "object",
6
+ "additionalProperties": false,
7
+ "required": ["schemaVersion", "suite", "claimRegister", "entries"],
8
+ "properties": {
9
+ "schemaVersion": { "const": "1.0.0" },
10
+ "suite": { "const": "Audrey publication pack" },
11
+ "claimRegister": { "type": "string", "minLength": 1 },
12
+ "entries": {
13
+ "type": "array",
14
+ "minItems": 1,
15
+ "items": { "$ref": "#/$defs/entry" }
16
+ }
17
+ },
18
+ "$defs": {
19
+ "entry": {
20
+ "type": "object",
21
+ "additionalProperties": false,
22
+ "required": ["id", "platform", "kind", "claimIds", "maxChars", "text"],
23
+ "properties": {
24
+ "id": {
25
+ "type": "string",
26
+ "pattern": "^[a-z0-9][a-z0-9-]*$"
27
+ },
28
+ "platform": {
29
+ "enum": ["arxiv", "hacker-news", "linkedin", "reddit", "x"]
30
+ },
31
+ "kind": {
32
+ "enum": ["abstract", "body", "post", "title"]
33
+ },
34
+ "claimIds": {
35
+ "type": "array",
36
+ "minItems": 1,
37
+ "items": {
38
+ "type": "string",
39
+ "pattern": "^C[0-9]{2}$"
40
+ }
41
+ },
42
+ "maxChars": {
43
+ "type": "integer",
44
+ "minimum": 1
45
+ },
46
+ "requiresArtifactUrl": {
47
+ "type": "boolean"
48
+ },
49
+ "reservedUrlChars": {
50
+ "type": "integer",
51
+ "minimum": 0
52
+ },
53
+ "text": {
54
+ "type": "string",
55
+ "minLength": 1
56
+ }
57
+ }
58
+ }
59
+ }
60
+ }