ai-memory-layer 2.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 (245) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/LICENSE +21 -0
  3. package/README.md +765 -0
  4. package/bin/memory-server.mjs +157 -0
  5. package/dist/adapters/memory/embeddings.d.ts +4 -0
  6. package/dist/adapters/memory/embeddings.d.ts.map +1 -0
  7. package/dist/adapters/memory/embeddings.js +53 -0
  8. package/dist/adapters/memory/embeddings.js.map +1 -0
  9. package/dist/adapters/memory/index.d.ts +7 -0
  10. package/dist/adapters/memory/index.d.ts.map +1 -0
  11. package/dist/adapters/memory/index.js +650 -0
  12. package/dist/adapters/memory/index.js.map +1 -0
  13. package/dist/adapters/postgres/index.d.ts +38 -0
  14. package/dist/adapters/postgres/index.d.ts.map +1 -0
  15. package/dist/adapters/postgres/index.js +982 -0
  16. package/dist/adapters/postgres/index.js.map +1 -0
  17. package/dist/adapters/sqlite/embeddings.d.ts +5 -0
  18. package/dist/adapters/sqlite/embeddings.d.ts.map +1 -0
  19. package/dist/adapters/sqlite/embeddings.js +122 -0
  20. package/dist/adapters/sqlite/embeddings.js.map +1 -0
  21. package/dist/adapters/sqlite/index.d.ts +8 -0
  22. package/dist/adapters/sqlite/index.d.ts.map +1 -0
  23. package/dist/adapters/sqlite/index.js +839 -0
  24. package/dist/adapters/sqlite/index.js.map +1 -0
  25. package/dist/adapters/sqlite/mappers.d.ts +40 -0
  26. package/dist/adapters/sqlite/mappers.d.ts.map +1 -0
  27. package/dist/adapters/sqlite/mappers.js +95 -0
  28. package/dist/adapters/sqlite/mappers.js.map +1 -0
  29. package/dist/adapters/sqlite/schema.d.ts +4 -0
  30. package/dist/adapters/sqlite/schema.d.ts.map +1 -0
  31. package/dist/adapters/sqlite/schema.js +394 -0
  32. package/dist/adapters/sqlite/schema.js.map +1 -0
  33. package/dist/adapters/sync-to-async.d.ts +15 -0
  34. package/dist/adapters/sync-to-async.d.ts.map +1 -0
  35. package/dist/adapters/sync-to-async.js +95 -0
  36. package/dist/adapters/sync-to-async.js.map +1 -0
  37. package/dist/cli/inspect.d.ts +34 -0
  38. package/dist/cli/inspect.d.ts.map +1 -0
  39. package/dist/cli/inspect.js +190 -0
  40. package/dist/cli/inspect.js.map +1 -0
  41. package/dist/contracts/async-storage.d.ts +86 -0
  42. package/dist/contracts/async-storage.d.ts.map +1 -0
  43. package/dist/contracts/async-storage.js +2 -0
  44. package/dist/contracts/async-storage.js.map +1 -0
  45. package/dist/contracts/embedding.d.ts +22 -0
  46. package/dist/contracts/embedding.d.ts.map +1 -0
  47. package/dist/contracts/embedding.js +2 -0
  48. package/dist/contracts/embedding.js.map +1 -0
  49. package/dist/contracts/identity.d.ts +29 -0
  50. package/dist/contracts/identity.d.ts.map +1 -0
  51. package/dist/contracts/identity.js +34 -0
  52. package/dist/contracts/identity.js.map +1 -0
  53. package/dist/contracts/observability.d.ts +18 -0
  54. package/dist/contracts/observability.d.ts.map +1 -0
  55. package/dist/contracts/observability.js +7 -0
  56. package/dist/contracts/observability.js.map +1 -0
  57. package/dist/contracts/policy.d.ts +108 -0
  58. package/dist/contracts/policy.d.ts.map +1 -0
  59. package/dist/contracts/policy.js +107 -0
  60. package/dist/contracts/policy.js.map +1 -0
  61. package/dist/contracts/storage.d.ts +78 -0
  62. package/dist/contracts/storage.d.ts.map +1 -0
  63. package/dist/contracts/storage.js +2 -0
  64. package/dist/contracts/storage.js.map +1 -0
  65. package/dist/contracts/types.d.ts +381 -0
  66. package/dist/contracts/types.d.ts.map +1 -0
  67. package/dist/contracts/types.js +94 -0
  68. package/dist/contracts/types.js.map +1 -0
  69. package/dist/core/circuit-breaker.d.ts +11 -0
  70. package/dist/core/circuit-breaker.d.ts.map +1 -0
  71. package/dist/core/circuit-breaker.js +38 -0
  72. package/dist/core/circuit-breaker.js.map +1 -0
  73. package/dist/core/context.d.ts +56 -0
  74. package/dist/core/context.d.ts.map +1 -0
  75. package/dist/core/context.js +345 -0
  76. package/dist/core/context.js.map +1 -0
  77. package/dist/core/events.d.ts +8 -0
  78. package/dist/core/events.d.ts.map +1 -0
  79. package/dist/core/events.js +25 -0
  80. package/dist/core/events.js.map +1 -0
  81. package/dist/core/extractor.d.ts +37 -0
  82. package/dist/core/extractor.d.ts.map +1 -0
  83. package/dist/core/extractor.js +448 -0
  84. package/dist/core/extractor.js.map +1 -0
  85. package/dist/core/formatter.d.ts +25 -0
  86. package/dist/core/formatter.d.ts.map +1 -0
  87. package/dist/core/formatter.js +97 -0
  88. package/dist/core/formatter.js.map +1 -0
  89. package/dist/core/knowledge-lifecycle.d.ts +15 -0
  90. package/dist/core/knowledge-lifecycle.d.ts.map +1 -0
  91. package/dist/core/knowledge-lifecycle.js +103 -0
  92. package/dist/core/knowledge-lifecycle.js.map +1 -0
  93. package/dist/core/maintenance.d.ts +13 -0
  94. package/dist/core/maintenance.d.ts.map +1 -0
  95. package/dist/core/maintenance.js +102 -0
  96. package/dist/core/maintenance.js.map +1 -0
  97. package/dist/core/manager.d.ts +110 -0
  98. package/dist/core/manager.d.ts.map +1 -0
  99. package/dist/core/manager.js +640 -0
  100. package/dist/core/manager.js.map +1 -0
  101. package/dist/core/monitor.d.ts +73 -0
  102. package/dist/core/monitor.d.ts.map +1 -0
  103. package/dist/core/monitor.js +395 -0
  104. package/dist/core/monitor.js.map +1 -0
  105. package/dist/core/orchestrator.d.ts +64 -0
  106. package/dist/core/orchestrator.d.ts.map +1 -0
  107. package/dist/core/orchestrator.js +916 -0
  108. package/dist/core/orchestrator.js.map +1 -0
  109. package/dist/core/presets.d.ts +15 -0
  110. package/dist/core/presets.d.ts.map +1 -0
  111. package/dist/core/presets.js +99 -0
  112. package/dist/core/presets.js.map +1 -0
  113. package/dist/core/provider-managers.d.ts +47 -0
  114. package/dist/core/provider-managers.d.ts.map +1 -0
  115. package/dist/core/provider-managers.js +112 -0
  116. package/dist/core/provider-managers.js.map +1 -0
  117. package/dist/core/quick.d.ts +62 -0
  118. package/dist/core/quick.d.ts.map +1 -0
  119. package/dist/core/quick.js +300 -0
  120. package/dist/core/quick.js.map +1 -0
  121. package/dist/core/retrieval.d.ts +29 -0
  122. package/dist/core/retrieval.d.ts.map +1 -0
  123. package/dist/core/retrieval.js +150 -0
  124. package/dist/core/retrieval.js.map +1 -0
  125. package/dist/core/runtime.d.ts +67 -0
  126. package/dist/core/runtime.d.ts.map +1 -0
  127. package/dist/core/runtime.js +84 -0
  128. package/dist/core/runtime.js.map +1 -0
  129. package/dist/core/streaming.d.ts +37 -0
  130. package/dist/core/streaming.d.ts.map +1 -0
  131. package/dist/core/streaming.js +51 -0
  132. package/dist/core/streaming.js.map +1 -0
  133. package/dist/core/sync.d.ts +13 -0
  134. package/dist/core/sync.d.ts.map +1 -0
  135. package/dist/core/sync.js +46 -0
  136. package/dist/core/sync.js.map +1 -0
  137. package/dist/core/telemetry.d.ts +8 -0
  138. package/dist/core/telemetry.d.ts.map +1 -0
  139. package/dist/core/telemetry.js +14 -0
  140. package/dist/core/telemetry.js.map +1 -0
  141. package/dist/core/tokens.d.ts +8 -0
  142. package/dist/core/tokens.d.ts.map +1 -0
  143. package/dist/core/tokens.js +59 -0
  144. package/dist/core/tokens.js.map +1 -0
  145. package/dist/core/trust.d.ts +23 -0
  146. package/dist/core/trust.d.ts.map +1 -0
  147. package/dist/core/trust.js +164 -0
  148. package/dist/core/trust.js.map +1 -0
  149. package/dist/core/validation.d.ts +36 -0
  150. package/dist/core/validation.d.ts.map +1 -0
  151. package/dist/core/validation.js +185 -0
  152. package/dist/core/validation.js.map +1 -0
  153. package/dist/embeddings/local.d.ts +5 -0
  154. package/dist/embeddings/local.d.ts.map +1 -0
  155. package/dist/embeddings/local.js +128 -0
  156. package/dist/embeddings/local.js.map +1 -0
  157. package/dist/embeddings/openai.d.ts +26 -0
  158. package/dist/embeddings/openai.d.ts.map +1 -0
  159. package/dist/embeddings/openai.js +48 -0
  160. package/dist/embeddings/openai.js.map +1 -0
  161. package/dist/embeddings/resilience.d.ts +5 -0
  162. package/dist/embeddings/resilience.d.ts.map +1 -0
  163. package/dist/embeddings/resilience.js +53 -0
  164. package/dist/embeddings/resilience.js.map +1 -0
  165. package/dist/embeddings/voyage.d.ts +30 -0
  166. package/dist/embeddings/voyage.d.ts.map +1 -0
  167. package/dist/embeddings/voyage.js +53 -0
  168. package/dist/embeddings/voyage.js.map +1 -0
  169. package/dist/index.d.ts +72 -0
  170. package/dist/index.d.ts.map +1 -0
  171. package/dist/index.js +40 -0
  172. package/dist/index.js.map +1 -0
  173. package/dist/integrations/claude-agent.d.ts +21 -0
  174. package/dist/integrations/claude-agent.d.ts.map +1 -0
  175. package/dist/integrations/claude-agent.js +44 -0
  176. package/dist/integrations/claude-agent.js.map +1 -0
  177. package/dist/integrations/claude-tools.d.ts +18 -0
  178. package/dist/integrations/claude-tools.d.ts.map +1 -0
  179. package/dist/integrations/claude-tools.js +60 -0
  180. package/dist/integrations/claude-tools.js.map +1 -0
  181. package/dist/integrations/langchain.d.ts +24 -0
  182. package/dist/integrations/langchain.d.ts.map +1 -0
  183. package/dist/integrations/langchain.js +48 -0
  184. package/dist/integrations/langchain.js.map +1 -0
  185. package/dist/integrations/mcp.d.ts +23 -0
  186. package/dist/integrations/mcp.d.ts.map +1 -0
  187. package/dist/integrations/mcp.js +60 -0
  188. package/dist/integrations/mcp.js.map +1 -0
  189. package/dist/integrations/middleware.d.ts +15 -0
  190. package/dist/integrations/middleware.d.ts.map +1 -0
  191. package/dist/integrations/middleware.js +27 -0
  192. package/dist/integrations/middleware.js.map +1 -0
  193. package/dist/integrations/openai-tools.d.ts +21 -0
  194. package/dist/integrations/openai-tools.d.ts.map +1 -0
  195. package/dist/integrations/openai-tools.js +69 -0
  196. package/dist/integrations/openai-tools.js.map +1 -0
  197. package/dist/integrations/vercel-ai.d.ts +19 -0
  198. package/dist/integrations/vercel-ai.d.ts.map +1 -0
  199. package/dist/integrations/vercel-ai.js +41 -0
  200. package/dist/integrations/vercel-ai.js.map +1 -0
  201. package/dist/server/http-server.d.ts +61 -0
  202. package/dist/server/http-server.d.ts.map +1 -0
  203. package/dist/server/http-server.js +684 -0
  204. package/dist/server/http-server.js.map +1 -0
  205. package/dist/server/index.d.ts +5 -0
  206. package/dist/server/index.d.ts.map +1 -0
  207. package/dist/server/index.js +3 -0
  208. package/dist/server/index.js.map +1 -0
  209. package/dist/server/mcp-server.d.ts +61 -0
  210. package/dist/server/mcp-server.d.ts.map +1 -0
  211. package/dist/server/mcp-server.js +465 -0
  212. package/dist/server/mcp-server.js.map +1 -0
  213. package/dist/summarizers/claude.d.ts +11 -0
  214. package/dist/summarizers/claude.d.ts.map +1 -0
  215. package/dist/summarizers/claude.js +39 -0
  216. package/dist/summarizers/claude.js.map +1 -0
  217. package/dist/summarizers/client.d.ts +23 -0
  218. package/dist/summarizers/client.d.ts.map +1 -0
  219. package/dist/summarizers/client.js +24 -0
  220. package/dist/summarizers/client.js.map +1 -0
  221. package/dist/summarizers/extractive.d.ts +6 -0
  222. package/dist/summarizers/extractive.d.ts.map +1 -0
  223. package/dist/summarizers/extractive.js +204 -0
  224. package/dist/summarizers/extractive.js.map +1 -0
  225. package/dist/summarizers/extractor.d.ts +12 -0
  226. package/dist/summarizers/extractor.d.ts.map +1 -0
  227. package/dist/summarizers/extractor.js +75 -0
  228. package/dist/summarizers/extractor.js.map +1 -0
  229. package/dist/summarizers/openai.d.ts +11 -0
  230. package/dist/summarizers/openai.d.ts.map +1 -0
  231. package/dist/summarizers/openai.js +41 -0
  232. package/dist/summarizers/openai.js.map +1 -0
  233. package/dist/summarizers/prompts.d.ts +11 -0
  234. package/dist/summarizers/prompts.d.ts.map +1 -0
  235. package/dist/summarizers/prompts.js +104 -0
  236. package/dist/summarizers/prompts.js.map +1 -0
  237. package/docs/DEPLOYMENT.md +84 -0
  238. package/docs/INTEGRATIONS.md +64 -0
  239. package/docs/MEMORY_QUALITY_BASELINE.md +55 -0
  240. package/docs/MEMORY_QUALITY_RELEASE_GATE.md +63 -0
  241. package/docs/MEMORY_QUALITY_RUBRIC.md +249 -0
  242. package/docs/OPERATIONS.md +49 -0
  243. package/docs/SECURITY.md +25 -0
  244. package/openapi.yaml +843 -0
  245. package/package.json +157 -0
package/openapi.yaml ADDED
@@ -0,0 +1,843 @@
1
+ openapi: 3.1.0
2
+ info:
3
+ title: memory-layer HTTP API
4
+ version: 2.0.0
5
+ description: HTTP surface for the memory-layer standalone AI memory service.
6
+ servers:
7
+ - url: http://localhost:3100
8
+ tags:
9
+ - name: ingestion
10
+ - name: retrieval
11
+ - name: maintenance
12
+ - name: observability
13
+ components:
14
+ securitySchemes:
15
+ bearerAuth:
16
+ type: http
17
+ scheme: bearer
18
+ bearerFormat: API key
19
+ adminKey:
20
+ type: apiKey
21
+ in: header
22
+ name: x-admin-key
23
+ parameters:
24
+ Query:
25
+ name: query
26
+ in: query
27
+ schema:
28
+ type: string
29
+ ScopeTenant:
30
+ name: tenant_id
31
+ in: query
32
+ schema:
33
+ type: string
34
+ ScopeSystem:
35
+ name: system_id
36
+ in: query
37
+ schema:
38
+ type: string
39
+ ScopeWorkspace:
40
+ name: workspace_id
41
+ in: query
42
+ schema:
43
+ type: string
44
+ ScopeCollaboration:
45
+ name: collaboration_id
46
+ in: query
47
+ schema:
48
+ type: string
49
+ ScopeId:
50
+ name: scope_id
51
+ in: query
52
+ schema:
53
+ type: string
54
+ ScopeLevel:
55
+ name: scope_level
56
+ in: query
57
+ schema:
58
+ type: string
59
+ enum: [scope, workspace, system, tenant]
60
+ Since:
61
+ name: since
62
+ in: query
63
+ schema:
64
+ type: string
65
+ format: date-time
66
+ EventTypes:
67
+ name: event_types
68
+ in: query
69
+ schema:
70
+ type: string
71
+ schemas:
72
+ Error:
73
+ type: object
74
+ required: [error]
75
+ properties:
76
+ error:
77
+ type: string
78
+ MemoryEvent:
79
+ type: object
80
+ required: [type, scope, timestamp, durationMs, meta]
81
+ properties:
82
+ type:
83
+ type: string
84
+ scope:
85
+ $ref: '#/components/schemas/Scope'
86
+ timestamp:
87
+ type: integer
88
+ durationMs:
89
+ type: integer
90
+ meta:
91
+ type: object
92
+ additionalProperties: true
93
+ Scope:
94
+ type: object
95
+ required: [tenant_id, system_id, scope_id]
96
+ properties:
97
+ tenant_id:
98
+ type: string
99
+ system_id:
100
+ type: string
101
+ workspace_id:
102
+ type: string
103
+ collaboration_id:
104
+ type: string
105
+ scope_id:
106
+ type: string
107
+ TurnRequest:
108
+ type: object
109
+ required: [role, content]
110
+ properties:
111
+ role:
112
+ type: string
113
+ enum: [user, assistant, system]
114
+ content:
115
+ type: string
116
+ actor:
117
+ type: string
118
+ scope:
119
+ $ref: '#/components/schemas/Scope'
120
+ ExchangeRequest:
121
+ type: object
122
+ required: [userContent, assistantContent]
123
+ properties:
124
+ userContent:
125
+ type: string
126
+ assistantContent:
127
+ type: string
128
+ scope:
129
+ $ref: '#/components/schemas/Scope'
130
+ FactRequest:
131
+ type: object
132
+ required: [fact, factType]
133
+ properties:
134
+ fact:
135
+ type: string
136
+ factType:
137
+ type: string
138
+ enum: [preference, identity, project, constraint, procedure, entity, other]
139
+ confidence:
140
+ type: string
141
+ enum: [high, medium, low]
142
+ default: high
143
+ scope:
144
+ $ref: '#/components/schemas/Scope'
145
+ WorkRequest:
146
+ type: object
147
+ required: [title]
148
+ properties:
149
+ title:
150
+ type: string
151
+ kind:
152
+ type: string
153
+ enum: [objective, unresolved_work, constraint]
154
+ default: objective
155
+ status:
156
+ type: string
157
+ enum: [open, in_progress, blocked, done]
158
+ default: open
159
+ detail:
160
+ type: string
161
+ scope:
162
+ $ref: '#/components/schemas/Scope'
163
+ CompactRequest:
164
+ type: object
165
+ properties:
166
+ scope:
167
+ $ref: '#/components/schemas/Scope'
168
+ ContextResponse:
169
+ type: object
170
+ properties:
171
+ currentObjective:
172
+ type: string
173
+ nullable: true
174
+ activeTurnCount:
175
+ type: integer
176
+ workingMemory:
177
+ type: object
178
+ nullable: true
179
+ properties:
180
+ summary:
181
+ type: string
182
+ key_entities:
183
+ type: array
184
+ items:
185
+ type: string
186
+ topic_tags:
187
+ type: array
188
+ items:
189
+ type: string
190
+ relevantKnowledge:
191
+ type: array
192
+ items:
193
+ type: object
194
+ properties:
195
+ id:
196
+ type: integer
197
+ fact:
198
+ type: string
199
+ fact_type:
200
+ type: string
201
+ confidence:
202
+ type: string
203
+ activeObjectives:
204
+ type: array
205
+ items:
206
+ type: object
207
+ properties:
208
+ title:
209
+ type: string
210
+ status:
211
+ type: string
212
+ unresolvedWork:
213
+ type: array
214
+ items:
215
+ type: object
216
+ tokenEstimate:
217
+ type: integer
218
+ SearchResponse:
219
+ type: object
220
+ properties:
221
+ turns:
222
+ type: array
223
+ items:
224
+ type: object
225
+ properties:
226
+ id:
227
+ type: integer
228
+ role:
229
+ type: string
230
+ content:
231
+ type: string
232
+ rank:
233
+ type: number
234
+ knowledge:
235
+ type: array
236
+ items:
237
+ type: object
238
+ properties:
239
+ id:
240
+ type: integer
241
+ fact:
242
+ type: string
243
+ fact_type:
244
+ type: string
245
+ rank:
246
+ type: number
247
+ HealthResponse:
248
+ type: object
249
+ properties:
250
+ activeTurnCount:
251
+ type: integer
252
+ tokenEstimate:
253
+ type: integer
254
+ knowledgeCount:
255
+ type: integer
256
+ objectiveCount:
257
+ type: integer
258
+ unresolvedWorkCount:
259
+ type: integer
260
+ ReadyResponse:
261
+ type: object
262
+ properties:
263
+ ok:
264
+ type: boolean
265
+ scopes:
266
+ type: integer
267
+ security:
268
+ - bearerAuth: []
269
+ paths:
270
+ /v1/turns:
271
+ post:
272
+ tags: [ingestion]
273
+ summary: Store a single turn
274
+ requestBody:
275
+ required: true
276
+ content:
277
+ application/json:
278
+ schema:
279
+ $ref: '#/components/schemas/TurnRequest'
280
+ responses:
281
+ '201':
282
+ description: Turn stored
283
+ content:
284
+ application/json:
285
+ schema:
286
+ type: object
287
+ properties:
288
+ turnId:
289
+ type: integer
290
+ role:
291
+ type: string
292
+ '400':
293
+ description: Invalid request
294
+ content:
295
+ application/json:
296
+ schema:
297
+ $ref: '#/components/schemas/Error'
298
+ /v1/exchanges:
299
+ post:
300
+ tags: [ingestion]
301
+ summary: Store a user and assistant exchange
302
+ requestBody:
303
+ required: true
304
+ content:
305
+ application/json:
306
+ schema:
307
+ $ref: '#/components/schemas/ExchangeRequest'
308
+ responses:
309
+ '201':
310
+ description: Exchange stored
311
+ content:
312
+ application/json:
313
+ schema:
314
+ type: object
315
+ properties:
316
+ userTurnId:
317
+ type: integer
318
+ assistantTurnId:
319
+ type: integer
320
+ compacted:
321
+ type: boolean
322
+ /v1/context:
323
+ get:
324
+ tags: [retrieval]
325
+ summary: Assemble prompt-ready context
326
+ parameters:
327
+ - $ref: '#/components/parameters/Query'
328
+ - $ref: '#/components/parameters/ScopeTenant'
329
+ - $ref: '#/components/parameters/ScopeSystem'
330
+ - $ref: '#/components/parameters/ScopeWorkspace'
331
+ - $ref: '#/components/parameters/ScopeCollaboration'
332
+ - $ref: '#/components/parameters/ScopeId'
333
+ responses:
334
+ '200':
335
+ description: Assembled context
336
+ content:
337
+ application/json:
338
+ schema:
339
+ $ref: '#/components/schemas/ContextResponse'
340
+ /v1/search:
341
+ get:
342
+ tags: [retrieval]
343
+ summary: Search turns and knowledge
344
+ parameters:
345
+ - name: q
346
+ in: query
347
+ required: true
348
+ schema:
349
+ type: string
350
+ - name: limit
351
+ in: query
352
+ schema:
353
+ type: integer
354
+ - $ref: '#/components/parameters/ScopeTenant'
355
+ - $ref: '#/components/parameters/ScopeSystem'
356
+ - $ref: '#/components/parameters/ScopeWorkspace'
357
+ - $ref: '#/components/parameters/ScopeCollaboration'
358
+ - $ref: '#/components/parameters/ScopeId'
359
+ responses:
360
+ '200':
361
+ description: Search results
362
+ content:
363
+ application/json:
364
+ schema:
365
+ $ref: '#/components/schemas/SearchResponse'
366
+ '400':
367
+ description: Missing search query
368
+ content:
369
+ application/json:
370
+ schema:
371
+ $ref: '#/components/schemas/Error'
372
+ /v1/search/cross-scope:
373
+ get:
374
+ tags: [retrieval]
375
+ summary: Search knowledge across inherited or shared scopes
376
+ parameters:
377
+ - name: q
378
+ in: query
379
+ required: true
380
+ schema:
381
+ type: string
382
+ - name: limit
383
+ in: query
384
+ schema:
385
+ type: integer
386
+ - $ref: '#/components/parameters/ScopeLevel'
387
+ - $ref: '#/components/parameters/ScopeTenant'
388
+ - $ref: '#/components/parameters/ScopeSystem'
389
+ - $ref: '#/components/parameters/ScopeWorkspace'
390
+ - $ref: '#/components/parameters/ScopeCollaboration'
391
+ - $ref: '#/components/parameters/ScopeId'
392
+ responses:
393
+ '200':
394
+ description: Cross-scope search results
395
+ content:
396
+ application/json:
397
+ schema:
398
+ $ref: '#/components/schemas/SearchResponse'
399
+ '400':
400
+ description: Missing search query
401
+ content:
402
+ application/json:
403
+ schema:
404
+ $ref: '#/components/schemas/Error'
405
+ /v1/facts:
406
+ post:
407
+ tags: [ingestion]
408
+ summary: Insert durable knowledge directly
409
+ requestBody:
410
+ required: true
411
+ content:
412
+ application/json:
413
+ schema:
414
+ $ref: '#/components/schemas/FactRequest'
415
+ responses:
416
+ '201':
417
+ description: Fact stored
418
+ content:
419
+ application/json:
420
+ schema:
421
+ type: object
422
+ properties:
423
+ knowledgeId:
424
+ type: integer
425
+ /v1/work:
426
+ post:
427
+ tags: [ingestion]
428
+ summary: Track an objective or unresolved work item
429
+ requestBody:
430
+ required: true
431
+ content:
432
+ application/json:
433
+ schema:
434
+ $ref: '#/components/schemas/WorkRequest'
435
+ responses:
436
+ '201':
437
+ description: Work item stored
438
+ content:
439
+ application/json:
440
+ schema:
441
+ type: object
442
+ properties:
443
+ workItemId:
444
+ type: integer
445
+ /v1/compact:
446
+ post:
447
+ tags: [maintenance]
448
+ summary: Force compaction
449
+ security:
450
+ - bearerAuth: []
451
+ - adminKey: []
452
+ requestBody:
453
+ required: false
454
+ content:
455
+ application/json:
456
+ schema:
457
+ $ref: '#/components/schemas/CompactRequest'
458
+ responses:
459
+ '200':
460
+ description: Compaction result
461
+ content:
462
+ application/json:
463
+ schema:
464
+ type: object
465
+ properties:
466
+ compacted:
467
+ type: boolean
468
+ archivedTurnCount:
469
+ type: integer
470
+ /v1/maintenance:
471
+ post:
472
+ tags: [maintenance]
473
+ summary: Run maintenance
474
+ security:
475
+ - bearerAuth: []
476
+ - adminKey: []
477
+ requestBody:
478
+ required: false
479
+ content:
480
+ application/json:
481
+ schema:
482
+ $ref: '#/components/schemas/CompactRequest'
483
+ responses:
484
+ '200':
485
+ description: Maintenance report
486
+ content:
487
+ application/json:
488
+ schema:
489
+ type: object
490
+ properties:
491
+ expiredWorkingMemory:
492
+ type: integer
493
+ retiredKnowledge:
494
+ type: integer
495
+ deletedWorkItems:
496
+ type: integer
497
+ /v1/health:
498
+ get:
499
+ tags: [observability]
500
+ summary: Return memory health counters
501
+ parameters:
502
+ - $ref: '#/components/parameters/ScopeTenant'
503
+ - $ref: '#/components/parameters/ScopeSystem'
504
+ - $ref: '#/components/parameters/ScopeWorkspace'
505
+ - $ref: '#/components/parameters/ScopeCollaboration'
506
+ - $ref: '#/components/parameters/ScopeId'
507
+ responses:
508
+ '200':
509
+ description: Health counters
510
+ content:
511
+ application/json:
512
+ schema:
513
+ $ref: '#/components/schemas/HealthResponse'
514
+ /v1/changes:
515
+ get:
516
+ tags: [observability]
517
+ summary: Poll for knowledge changes since a timestamp
518
+ parameters:
519
+ - $ref: '#/components/parameters/Since'
520
+ - $ref: '#/components/parameters/ScopeLevel'
521
+ - $ref: '#/components/parameters/ScopeTenant'
522
+ - $ref: '#/components/parameters/ScopeSystem'
523
+ - $ref: '#/components/parameters/ScopeWorkspace'
524
+ - $ref: '#/components/parameters/ScopeCollaboration'
525
+ - $ref: '#/components/parameters/ScopeId'
526
+ responses:
527
+ '200':
528
+ description: Matching knowledge changes
529
+ content:
530
+ application/json:
531
+ schema:
532
+ type: object
533
+ properties:
534
+ changes:
535
+ type: array
536
+ items:
537
+ type: object
538
+ properties:
539
+ id:
540
+ type: integer
541
+ fact:
542
+ type: string
543
+ fact_type:
544
+ type: string
545
+ knowledge_state:
546
+ type: string
547
+ scope_id:
548
+ type: string
549
+ collaboration_id:
550
+ type: string
551
+ created_at:
552
+ type: integer
553
+ '400':
554
+ description: Invalid timestamp
555
+ content:
556
+ application/json:
557
+ schema:
558
+ $ref: '#/components/schemas/Error'
559
+ /v1/inspect/knowledge:
560
+ get:
561
+ tags: [observability]
562
+ summary: Browse active knowledge for the current scope
563
+ parameters:
564
+ - name: limit
565
+ in: query
566
+ schema:
567
+ type: integer
568
+ - name: cursor
569
+ in: query
570
+ schema:
571
+ type: integer
572
+ - $ref: '#/components/parameters/ScopeTenant'
573
+ - $ref: '#/components/parameters/ScopeSystem'
574
+ - $ref: '#/components/parameters/ScopeWorkspace'
575
+ - $ref: '#/components/parameters/ScopeCollaboration'
576
+ - $ref: '#/components/parameters/ScopeId'
577
+ responses:
578
+ '200':
579
+ description: Paginated knowledge inspection results
580
+ content:
581
+ application/json:
582
+ schema:
583
+ type: object
584
+ properties:
585
+ items:
586
+ type: array
587
+ items:
588
+ type: object
589
+ hasMore:
590
+ type: boolean
591
+ nextCursor:
592
+ type: integer
593
+ nullable: true
594
+ /v1/inspect/knowledge/{knowledgeId}:
595
+ get:
596
+ tags: [observability]
597
+ summary: Inspect one knowledge item with evidence and audits
598
+ parameters:
599
+ - name: knowledgeId
600
+ in: path
601
+ required: true
602
+ schema:
603
+ type: integer
604
+ - $ref: '#/components/parameters/ScopeTenant'
605
+ - $ref: '#/components/parameters/ScopeSystem'
606
+ - $ref: '#/components/parameters/ScopeWorkspace'
607
+ - $ref: '#/components/parameters/ScopeCollaboration'
608
+ - $ref: '#/components/parameters/ScopeId'
609
+ responses:
610
+ '200':
611
+ description: Full knowledge inspection payload
612
+ content:
613
+ application/json:
614
+ schema:
615
+ type: object
616
+ properties:
617
+ knowledge:
618
+ type: object
619
+ evidence:
620
+ type: array
621
+ items:
622
+ type: object
623
+ audits:
624
+ type: array
625
+ items:
626
+ type: object
627
+ '404':
628
+ description: Knowledge not found
629
+ content:
630
+ application/json:
631
+ schema:
632
+ $ref: '#/components/schemas/Error'
633
+ /v1/inspect/audits:
634
+ get:
635
+ tags: [observability]
636
+ summary: List recent knowledge audits or audits for one knowledge id
637
+ parameters:
638
+ - name: knowledge_id
639
+ in: query
640
+ schema:
641
+ type: integer
642
+ - name: limit
643
+ in: query
644
+ schema:
645
+ type: integer
646
+ - $ref: '#/components/parameters/ScopeTenant'
647
+ - $ref: '#/components/parameters/ScopeSystem'
648
+ - $ref: '#/components/parameters/ScopeWorkspace'
649
+ - $ref: '#/components/parameters/ScopeCollaboration'
650
+ - $ref: '#/components/parameters/ScopeId'
651
+ responses:
652
+ '200':
653
+ description: Matching audit rows
654
+ content:
655
+ application/json:
656
+ schema:
657
+ type: object
658
+ properties:
659
+ audits:
660
+ type: array
661
+ items:
662
+ type: object
663
+ /v1/inspect/monitor:
664
+ get:
665
+ tags: [observability]
666
+ summary: Inspect the current context monitor
667
+ parameters:
668
+ - $ref: '#/components/parameters/ScopeTenant'
669
+ - $ref: '#/components/parameters/ScopeSystem'
670
+ - $ref: '#/components/parameters/ScopeWorkspace'
671
+ - $ref: '#/components/parameters/ScopeCollaboration'
672
+ - $ref: '#/components/parameters/ScopeId'
673
+ responses:
674
+ '200':
675
+ description: Context monitor payload
676
+ content:
677
+ application/json:
678
+ schema:
679
+ type: object
680
+ properties:
681
+ monitor:
682
+ type: object
683
+ nullable: true
684
+ /v1/inspect/compactions:
685
+ get:
686
+ tags: [observability]
687
+ summary: List recent compaction logs
688
+ parameters:
689
+ - name: limit
690
+ in: query
691
+ schema:
692
+ type: integer
693
+ - $ref: '#/components/parameters/ScopeTenant'
694
+ - $ref: '#/components/parameters/ScopeSystem'
695
+ - $ref: '#/components/parameters/ScopeWorkspace'
696
+ - $ref: '#/components/parameters/ScopeCollaboration'
697
+ - $ref: '#/components/parameters/ScopeId'
698
+ responses:
699
+ '200':
700
+ description: Recent compaction logs
701
+ content:
702
+ application/json:
703
+ schema:
704
+ type: object
705
+ properties:
706
+ logs:
707
+ type: array
708
+ items:
709
+ type: object
710
+ /v1/inspect/reverification:
711
+ get:
712
+ tags: [observability]
713
+ summary: List knowledge currently due for reverification
714
+ parameters:
715
+ - name: limit
716
+ in: query
717
+ schema:
718
+ type: integer
719
+ - $ref: '#/components/parameters/ScopeTenant'
720
+ - $ref: '#/components/parameters/ScopeSystem'
721
+ - $ref: '#/components/parameters/ScopeWorkspace'
722
+ - $ref: '#/components/parameters/ScopeCollaboration'
723
+ - $ref: '#/components/parameters/ScopeId'
724
+ responses:
725
+ '200':
726
+ description: Due reverification items
727
+ content:
728
+ application/json:
729
+ schema:
730
+ type: object
731
+ properties:
732
+ due:
733
+ type: array
734
+ items:
735
+ type: object
736
+ /v1/reverification/run:
737
+ post:
738
+ tags: [maintenance]
739
+ summary: Run batch reverification for due knowledge
740
+ security:
741
+ - bearerAuth: []
742
+ - adminKey: []
743
+ requestBody:
744
+ required: false
745
+ content:
746
+ application/json:
747
+ schema:
748
+ type: object
749
+ properties:
750
+ limit:
751
+ type: integer
752
+ responses:
753
+ '200':
754
+ description: Reverification batch result
755
+ content:
756
+ application/json:
757
+ schema:
758
+ type: object
759
+ properties:
760
+ reverifiedKnowledgeIds:
761
+ type: array
762
+ items:
763
+ type: integer
764
+ demotedKnowledgeIds:
765
+ type: array
766
+ items:
767
+ type: integer
768
+ /v1/reverification/{knowledgeId}:
769
+ post:
770
+ tags: [maintenance]
771
+ summary: Reverify one knowledge item immediately
772
+ security:
773
+ - bearerAuth: []
774
+ - adminKey: []
775
+ parameters:
776
+ - name: knowledgeId
777
+ in: path
778
+ required: true
779
+ schema:
780
+ type: integer
781
+ responses:
782
+ '200':
783
+ description: Knowledge trust assessment
784
+ content:
785
+ application/json:
786
+ schema:
787
+ type: object
788
+ properties:
789
+ trust_score:
790
+ type: number
791
+ state:
792
+ type: string
793
+ decision:
794
+ type: string
795
+ reasons:
796
+ type: array
797
+ items:
798
+ type: string
799
+ /healthz:
800
+ get:
801
+ tags: [observability]
802
+ summary: Liveness probe
803
+ responses:
804
+ '200':
805
+ description: Liveness response
806
+ content:
807
+ application/json:
808
+ schema:
809
+ $ref: '#/components/schemas/ReadyResponse'
810
+ /readyz:
811
+ get:
812
+ tags: [observability]
813
+ summary: Readiness probe
814
+ responses:
815
+ '200':
816
+ description: Readiness response
817
+ content:
818
+ application/json:
819
+ schema:
820
+ $ref: '#/components/schemas/ReadyResponse'
821
+ /v1/events:
822
+ get:
823
+ tags: [observability]
824
+ summary: Open an event stream for memory events
825
+ parameters:
826
+ - $ref: '#/components/parameters/EventTypes'
827
+ - $ref: '#/components/parameters/ScopeLevel'
828
+ - $ref: '#/components/parameters/ScopeTenant'
829
+ - $ref: '#/components/parameters/ScopeSystem'
830
+ - $ref: '#/components/parameters/ScopeWorkspace'
831
+ - $ref: '#/components/parameters/ScopeCollaboration'
832
+ - $ref: '#/components/parameters/ScopeId'
833
+ responses:
834
+ '200':
835
+ description: Server-sent event stream
836
+ content:
837
+ text/event-stream:
838
+ schema:
839
+ type: string
840
+ examples:
841
+ knowledgeChange:
842
+ value: |
843
+ data: {"type":"knowledge_change","scope":{"tenant_id":"acme","system_id":"agent","scope_id":"run-42"},"timestamp":1710000000000,"durationMs":0,"meta":{"action":"promote"}}