@arkimedehq/recordare-client 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/people.d.ts CHANGED
@@ -1,17 +1,15 @@
1
1
  /**
2
- * Who each of the platform's users is in Recordare, cached: the person (ownerId), their consent, the kind of memory and
3
- * the Atlas address. The synchronous readers never wait on Recordare: they answer from the cache (even if stale) and
4
- * refresh in the background. Each lookup also keeps the person's name in sync with the platform's profile.
2
+ * Who each of the platform's users is in Recordare, cached: the memory (memoryId), its mode and the Atlas
3
+ * address. Recordare has no consent flag (D50): the platform's own switch (`enabled`) decides whether it is contacted.
4
+ * The synchronous readers never wait on Recordare: they answer from the cache (even if stale) and refresh in the
5
+ * background. Each lookup also keeps the person's name in sync with the platform's profile.
5
6
  */
6
- import { type MemoryKind } from './contract.js';
7
+ import { type MemoryMode } from './contract.js';
7
8
  import { type RecordareClient } from './client.js';
8
- /** The person's memory as the platform shows it: consent given, not yet, or Recordare unreachable. */
9
- export type ConsentState = 'waiting_activation' | 'active' | 'unknown';
10
9
  export interface Person {
11
- ownerId: string | null;
12
- /** true / false, null = unknown (Recordare unreachable). */
13
- consent: boolean | null;
14
- kind: MemoryKind | null;
10
+ /** null = not known yet (not opted in on the platform, or Recordare unreachable before the first lookup). */
11
+ memoryId: string | null;
12
+ mode: MemoryMode | null;
15
13
  atlasUrl: string | null;
16
14
  }
17
15
  /** The user as the platform knows them. */
@@ -26,7 +24,7 @@ export interface PersonDirectoryOptions {
26
24
  ttlMs?: number;
27
25
  /** The user on the platform; null = unknown user (treated as not enabled). */
28
26
  user: (user: string) => Promise<PlatformUser | null>;
29
- /** A person resolved (e.g. to store the ownerId with the platform's user). */
27
+ /** A person resolved (e.g. to store the memoryId with the platform's user). */
30
28
  onResolved?: (user: string, person: Person) => void | Promise<void>;
31
29
  /** Called when a lookup or a rename fails (the cache keeps the last known person). */
32
30
  onError?: (user: string, err: unknown) => void;
@@ -40,13 +38,9 @@ export declare class PersonDirectory {
40
38
  /** Last known person (possibly stale), or undefined; a stale or missing entry is refreshed in the background. */
41
39
  peek(user: string): Person | undefined;
42
40
  /** A person known from the host's own storage (e.g. after a restart), marked stale so it is refreshed on first use. */
43
- seed(user: string, ownerId: string): void;
41
+ seed(user: string, memoryId: string): void;
44
42
  /** Forgets a user (e.g. after their switch or name changed): the next read asks Recordare again. */
45
43
  invalidate(user: string): void;
46
- /** Users whose consent is known to be off: a sender skips them (nothing is buffered before consent). */
47
- knownOff(): string[];
48
- /** Re-checks now, waiting at most `timeoutMs`; falls back to the last known state. */
49
- status(user: string, timeoutMs?: number): Promise<ConsentState>;
50
44
  /** Asks Recordare now (one request in flight per user). */
51
45
  refresh(user: string): Promise<Person>;
52
46
  private lookup;
package/dist/people.js CHANGED
@@ -20,30 +20,14 @@ export class PersonDirectory {
20
20
  return person;
21
21
  }
22
22
  /** A person known from the host's own storage (e.g. after a restart), marked stale so it is refreshed on first use. */
23
- seed(user, ownerId) {
23
+ seed(user, memoryId) {
24
24
  if (!this.cache.has(user))
25
- this.cache.set(user, { ownerId, consent: null, kind: null, atlasUrl: null, until: 0 });
25
+ this.cache.set(user, { memoryId, mode: null, atlasUrl: null, until: 0 });
26
26
  }
27
27
  /** Forgets a user (e.g. after their switch or name changed): the next read asks Recordare again. */
28
28
  invalidate(user) {
29
29
  this.cache.delete(user);
30
30
  }
31
- /** Users whose consent is known to be off: a sender skips them (nothing is buffered before consent). */
32
- knownOff() {
33
- return [...this.cache].filter(([, e]) => e.consent === false).map(([u]) => u);
34
- }
35
- /** Re-checks now, waiting at most `timeoutMs`; falls back to the last known state. */
36
- async status(user, timeoutMs = 3_000) {
37
- let timer;
38
- const fresh = await Promise.race([
39
- this.refresh(user).catch(() => undefined),
40
- new Promise((r) => { timer = setTimeout(() => r(undefined), timeoutMs); }),
41
- ]);
42
- if (timer)
43
- clearTimeout(timer);
44
- const consent = (fresh ?? this.cache.get(user))?.consent ?? null;
45
- return consent === true ? 'active' : consent === false ? 'waiting_activation' : 'unknown';
46
- }
47
31
  /** Asks Recordare now (one request in flight per user). */
48
32
  refresh(user) {
49
33
  const running = this.inflight.get(user);
@@ -64,19 +48,19 @@ export class PersonDirectory {
64
48
  const platform = await this.options.user(user);
65
49
  // Not opted in on the platform: never contact Recordare; a person already known stays known (e.g. for tracing).
66
50
  if (!platform?.enabled)
67
- return remember({ ownerId: last?.ownerId ?? null, consent: null, kind: last?.kind ?? null, atlasUrl: last?.atlasUrl ?? null });
51
+ return remember({ memoryId: last?.memoryId ?? null, mode: last?.mode ?? null, atlasUrl: last?.atlasUrl ?? null });
68
52
  const me = await this.client.me(user);
69
53
  const name = platform.name?.trim().slice(0, 100);
70
54
  if (name && me.displayName !== name) {
71
55
  await this.client.updateMe(user, { displayName: name }).catch((err) => this.options.onError?.(user, err));
72
56
  }
73
- const person = { ownerId: me.ownerId, consent: me.episodicEnabled, kind: me.kind, atlasUrl: me.atlasUrl ?? null };
57
+ const person = { memoryId: me.memoryId, mode: me.mode, atlasUrl: me.atlasUrl ?? null };
74
58
  await this.options.onResolved?.(user, person);
75
59
  return remember(person);
76
60
  }
77
61
  catch (err) {
78
62
  this.options.onError?.(user, err);
79
- return remember({ ownerId: last?.ownerId ?? null, consent: null, kind: last?.kind ?? null, atlasUrl: last?.atlasUrl ?? null });
63
+ return remember({ memoryId: last?.memoryId ?? null, mode: last?.mode ?? null, atlasUrl: last?.atlasUrl ?? null });
80
64
  }
81
65
  }
82
66
  }
@@ -0,0 +1,226 @@
1
+ /**
2
+ * The MCP tools Recordare serves (name, title, description, JSON Schema of the arguments), for connectors that must
3
+ * declare tools before talking to the service. Generated by the conformance suite (service/test/conformance,
4
+ * RECORDARE_UPDATE_TOOLS=1), which fails when this copy drifts from the service.
5
+ */
6
+ export declare const TOOLS: readonly [{
7
+ readonly name: "correct_episode";
8
+ readonly title: "Correct a memory";
9
+ readonly description: "Correct a remembered episode (wrong date or detail). The old version is kept as history, never shown as current.";
10
+ readonly inputSchema: {
11
+ readonly type: "object";
12
+ readonly properties: {
13
+ readonly id: {
14
+ readonly type: "string";
15
+ readonly format: "uuid";
16
+ readonly pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$";
17
+ };
18
+ readonly content: {
19
+ readonly type: "string";
20
+ };
21
+ readonly occurred_at: {
22
+ readonly type: "string";
23
+ readonly pattern: "^\\d{4}-\\d{2}(-\\d{2})?$";
24
+ };
25
+ readonly date_precision: {
26
+ readonly type: "string";
27
+ readonly enum: readonly ["day", "month", "year", "approximate"];
28
+ };
29
+ };
30
+ readonly required: readonly ["id"];
31
+ readonly $schema: "http://json-schema.org/draft-07/schema#";
32
+ };
33
+ }, {
34
+ readonly name: "forget_episode";
35
+ readonly title: "Forget a memory";
36
+ readonly description: "Forget an episode, when asked to. It is deleted with its corrections and never recreated.";
37
+ readonly inputSchema: {
38
+ readonly type: "object";
39
+ readonly properties: {
40
+ readonly id: {
41
+ readonly type: "string";
42
+ readonly format: "uuid";
43
+ readonly pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$";
44
+ };
45
+ };
46
+ readonly required: readonly ["id"];
47
+ readonly $schema: "http://json-schema.org/draft-07/schema#";
48
+ };
49
+ }, {
50
+ readonly name: "learn_source";
51
+ readonly title: "Learn a text";
52
+ readonly description: "Learn a text as knowledge (a manual, a page, a note — as plain text; send it again with the same title to replace it). It stays searchable with search_knowledge; the learning becomes a memory of this conversation.";
53
+ readonly inputSchema: {
54
+ readonly type: "object";
55
+ readonly properties: {
56
+ readonly title: {
57
+ readonly type: "string";
58
+ };
59
+ readonly text: {
60
+ readonly type: "string";
61
+ };
62
+ readonly author: {
63
+ readonly type: "string";
64
+ };
65
+ readonly kind: {
66
+ readonly type: "string";
67
+ readonly enum: readonly ["document", "page", "note", "book", "own_text"];
68
+ };
69
+ readonly uri: {
70
+ readonly type: "string";
71
+ };
72
+ };
73
+ readonly required: readonly ["title", "text"];
74
+ readonly $schema: "http://json-schema.org/draft-07/schema#";
75
+ };
76
+ }, {
77
+ readonly name: "log_episode";
78
+ readonly title: "Note something that happened or is planned";
79
+ readonly description: "Explicit capture (\"note that today I serviced the car\"). Resolve the date yourself (ISO).";
80
+ readonly inputSchema: {
81
+ readonly type: "object";
82
+ readonly properties: {
83
+ readonly content: {
84
+ readonly type: "string";
85
+ };
86
+ readonly kind: {
87
+ readonly type: "string";
88
+ readonly enum: readonly ["event", "plan"];
89
+ };
90
+ readonly occurred_at: {
91
+ readonly type: "string";
92
+ readonly pattern: "^\\d{4}-\\d{2}(-\\d{2})?$";
93
+ };
94
+ readonly occurred_until: {
95
+ readonly type: "string";
96
+ readonly pattern: "^\\d{4}-\\d{2}(-\\d{2})?$";
97
+ };
98
+ readonly date_precision: {
99
+ readonly type: "string";
100
+ readonly enum: readonly ["day", "month", "year", "approximate"];
101
+ };
102
+ readonly people: {
103
+ readonly type: "array";
104
+ readonly items: {
105
+ readonly type: "string";
106
+ };
107
+ };
108
+ readonly place: {
109
+ readonly type: "string";
110
+ };
111
+ };
112
+ readonly required: readonly ["content"];
113
+ readonly $schema: "http://json-schema.org/draft-07/schema#";
114
+ };
115
+ }, {
116
+ readonly name: "remember";
117
+ readonly title: "Remember something";
118
+ readonly description: "Explicit \"remember that…\" about preferences, habits, values, knowledge.";
119
+ readonly inputSchema: {
120
+ readonly type: "object";
121
+ readonly properties: {
122
+ readonly content: {
123
+ readonly type: "string";
124
+ };
125
+ readonly category: {
126
+ readonly type: "string";
127
+ readonly enum: readonly ["preference", "habit", "value", "relationship", "knowledge", "profile", "constraint"];
128
+ };
129
+ };
130
+ readonly required: readonly ["content"];
131
+ readonly $schema: "http://json-schema.org/draft-07/schema#";
132
+ };
133
+ }, {
134
+ readonly name: "resolve_period";
135
+ readonly title: "Turn a period expression into dates";
136
+ readonly description: "Deterministic: \"questa settimana\", \"la settimana scorsa\", \"a febbraio\", \"lo scorso dicembre\", \"last week\"… → {from, to} (ISO, inclusive).";
137
+ readonly inputSchema: {
138
+ readonly type: "object";
139
+ readonly properties: {
140
+ readonly expression: {
141
+ readonly type: "string";
142
+ };
143
+ };
144
+ readonly required: readonly ["expression"];
145
+ readonly $schema: "http://json-schema.org/draft-07/schema#";
146
+ };
147
+ }, {
148
+ readonly name: "search_episodes";
149
+ readonly title: "Search what happened";
150
+ readonly description: "Search your memory of what happened: what you lived, did, planned or learned, and what happened to the people you know (events, plans, changes), with dates and status. Each item has a subject: you (written in the first person), a person by name, someone, or undecided. Use `from`/`to` (ISO dates, inclusive; see resolve_period) for questions about a period. mode: \"search\" = most relevant, \"list\" = chronological in the period (overviews, counting), \"latest\" = most recent first (\"when did I last…\").";
151
+ readonly inputSchema: {
152
+ readonly type: "object";
153
+ readonly properties: {
154
+ readonly query: {
155
+ readonly description: "What to look for — pass the question also when listing a period: it ranks the items and finds the matching chat excerpts";
156
+ readonly type: "string";
157
+ };
158
+ readonly from: {
159
+ readonly description: "Start date, ISO (YYYY-MM-DD or YYYY-MM)";
160
+ readonly type: "string";
161
+ readonly pattern: "^\\d{4}-\\d{2}(-\\d{2})?$";
162
+ };
163
+ readonly to: {
164
+ readonly description: "End date, ISO (YYYY-MM-DD or YYYY-MM), inclusive";
165
+ readonly type: "string";
166
+ readonly pattern: "^\\d{4}-\\d{2}(-\\d{2})?$";
167
+ };
168
+ readonly mode: {
169
+ readonly type: "string";
170
+ readonly enum: readonly ["search", "list", "latest"];
171
+ };
172
+ readonly include_plans: {
173
+ readonly type: "boolean";
174
+ };
175
+ readonly limit: {
176
+ readonly type: "integer";
177
+ readonly minimum: 1;
178
+ readonly maximum: 50;
179
+ };
180
+ };
181
+ readonly $schema: "http://json-schema.org/draft-07/schema#";
182
+ };
183
+ }, {
184
+ readonly name: "search_knowledge";
185
+ readonly title: "Search what you learned";
186
+ readonly description: "Search the sources you learned (manuals, documents, pages, notes you were given or wrote): passages of their text, each with its source (title, author, who gave it, when) and the episodes that refer to it. For what happened, use search_episodes.";
187
+ readonly inputSchema: {
188
+ readonly type: "object";
189
+ readonly properties: {
190
+ readonly query: {
191
+ readonly type: "string";
192
+ readonly description: "What to look up";
193
+ };
194
+ readonly limit: {
195
+ readonly type: "integer";
196
+ readonly minimum: 1;
197
+ readonly maximum: 20;
198
+ };
199
+ };
200
+ readonly required: readonly ["query"];
201
+ readonly $schema: "http://json-schema.org/draft-07/schema#";
202
+ };
203
+ }, {
204
+ readonly name: "search_memory";
205
+ readonly title: "Search what you know about yourself and others";
206
+ readonly description: "Search your memory of preferences, habits, values, relationships, knowledge and current state (car, home, job…) — yours and of the people you know; each item has its subject. Use `as_of` (ISO date) for \"what was it on that date\" questions; each fact comes with its history.";
207
+ readonly inputSchema: {
208
+ readonly type: "object";
209
+ readonly properties: {
210
+ readonly query: {
211
+ readonly type: "string";
212
+ readonly description: "Topic";
213
+ };
214
+ readonly as_of: {
215
+ readonly description: "ISO date (YYYY-MM-DD); default today";
216
+ readonly type: "string";
217
+ readonly pattern: "^\\d{4}-\\d{2}(-\\d{2})?$";
218
+ };
219
+ readonly include_pending: {
220
+ readonly type: "boolean";
221
+ };
222
+ };
223
+ readonly required: readonly ["query"];
224
+ readonly $schema: "http://json-schema.org/draft-07/schema#";
225
+ };
226
+ }];
package/dist/tools.js ADDED
@@ -0,0 +1,286 @@
1
+ // SPDX-License-Identifier: AGPL-3.0-or-later
2
+ // Copyright © 2026 Andrea Genovese
3
+ /**
4
+ * The MCP tools Recordare serves (name, title, description, JSON Schema of the arguments), for connectors that must
5
+ * declare tools before talking to the service. Generated by the conformance suite (service/test/conformance,
6
+ * RECORDARE_UPDATE_TOOLS=1), which fails when this copy drifts from the service.
7
+ */
8
+ export const TOOLS = [
9
+ {
10
+ "name": "correct_episode",
11
+ "title": "Correct a memory",
12
+ "description": "Correct a remembered episode (wrong date or detail). The old version is kept as history, never shown as current.",
13
+ "inputSchema": {
14
+ "type": "object",
15
+ "properties": {
16
+ "id": {
17
+ "type": "string",
18
+ "format": "uuid",
19
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
20
+ },
21
+ "content": {
22
+ "type": "string"
23
+ },
24
+ "occurred_at": {
25
+ "type": "string",
26
+ "pattern": "^\\d{4}-\\d{2}(-\\d{2})?$"
27
+ },
28
+ "date_precision": {
29
+ "type": "string",
30
+ "enum": [
31
+ "day",
32
+ "month",
33
+ "year",
34
+ "approximate"
35
+ ]
36
+ }
37
+ },
38
+ "required": [
39
+ "id"
40
+ ],
41
+ "$schema": "http://json-schema.org/draft-07/schema#"
42
+ }
43
+ },
44
+ {
45
+ "name": "forget_episode",
46
+ "title": "Forget a memory",
47
+ "description": "Forget an episode, when asked to. It is deleted with its corrections and never recreated.",
48
+ "inputSchema": {
49
+ "type": "object",
50
+ "properties": {
51
+ "id": {
52
+ "type": "string",
53
+ "format": "uuid",
54
+ "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
55
+ }
56
+ },
57
+ "required": [
58
+ "id"
59
+ ],
60
+ "$schema": "http://json-schema.org/draft-07/schema#"
61
+ }
62
+ },
63
+ {
64
+ "name": "learn_source",
65
+ "title": "Learn a text",
66
+ "description": "Learn a text as knowledge (a manual, a page, a note — as plain text; send it again with the same title to replace it). It stays searchable with search_knowledge; the learning becomes a memory of this conversation.",
67
+ "inputSchema": {
68
+ "type": "object",
69
+ "properties": {
70
+ "title": {
71
+ "type": "string"
72
+ },
73
+ "text": {
74
+ "type": "string"
75
+ },
76
+ "author": {
77
+ "type": "string"
78
+ },
79
+ "kind": {
80
+ "type": "string",
81
+ "enum": [
82
+ "document",
83
+ "page",
84
+ "note",
85
+ "book",
86
+ "own_text"
87
+ ]
88
+ },
89
+ "uri": {
90
+ "type": "string"
91
+ }
92
+ },
93
+ "required": [
94
+ "title",
95
+ "text"
96
+ ],
97
+ "$schema": "http://json-schema.org/draft-07/schema#"
98
+ }
99
+ },
100
+ {
101
+ "name": "log_episode",
102
+ "title": "Note something that happened or is planned",
103
+ "description": "Explicit capture (\"note that today I serviced the car\"). Resolve the date yourself (ISO).",
104
+ "inputSchema": {
105
+ "type": "object",
106
+ "properties": {
107
+ "content": {
108
+ "type": "string"
109
+ },
110
+ "kind": {
111
+ "type": "string",
112
+ "enum": [
113
+ "event",
114
+ "plan"
115
+ ]
116
+ },
117
+ "occurred_at": {
118
+ "type": "string",
119
+ "pattern": "^\\d{4}-\\d{2}(-\\d{2})?$"
120
+ },
121
+ "occurred_until": {
122
+ "type": "string",
123
+ "pattern": "^\\d{4}-\\d{2}(-\\d{2})?$"
124
+ },
125
+ "date_precision": {
126
+ "type": "string",
127
+ "enum": [
128
+ "day",
129
+ "month",
130
+ "year",
131
+ "approximate"
132
+ ]
133
+ },
134
+ "people": {
135
+ "type": "array",
136
+ "items": {
137
+ "type": "string"
138
+ }
139
+ },
140
+ "place": {
141
+ "type": "string"
142
+ }
143
+ },
144
+ "required": [
145
+ "content"
146
+ ],
147
+ "$schema": "http://json-schema.org/draft-07/schema#"
148
+ }
149
+ },
150
+ {
151
+ "name": "remember",
152
+ "title": "Remember something",
153
+ "description": "Explicit \"remember that…\" about preferences, habits, values, knowledge.",
154
+ "inputSchema": {
155
+ "type": "object",
156
+ "properties": {
157
+ "content": {
158
+ "type": "string"
159
+ },
160
+ "category": {
161
+ "type": "string",
162
+ "enum": [
163
+ "preference",
164
+ "habit",
165
+ "value",
166
+ "relationship",
167
+ "knowledge",
168
+ "profile",
169
+ "constraint"
170
+ ]
171
+ }
172
+ },
173
+ "required": [
174
+ "content"
175
+ ],
176
+ "$schema": "http://json-schema.org/draft-07/schema#"
177
+ }
178
+ },
179
+ {
180
+ "name": "resolve_period",
181
+ "title": "Turn a period expression into dates",
182
+ "description": "Deterministic: \"questa settimana\", \"la settimana scorsa\", \"a febbraio\", \"lo scorso dicembre\", \"last week\"… → {from, to} (ISO, inclusive).",
183
+ "inputSchema": {
184
+ "type": "object",
185
+ "properties": {
186
+ "expression": {
187
+ "type": "string"
188
+ }
189
+ },
190
+ "required": [
191
+ "expression"
192
+ ],
193
+ "$schema": "http://json-schema.org/draft-07/schema#"
194
+ }
195
+ },
196
+ {
197
+ "name": "search_episodes",
198
+ "title": "Search what happened",
199
+ "description": "Search your memory of what happened: what you lived, did, planned or learned, and what happened to the people you know (events, plans, changes), with dates and status. Each item has a subject: you (written in the first person), a person by name, someone, or undecided. Use `from`/`to` (ISO dates, inclusive; see resolve_period) for questions about a period. mode: \"search\" = most relevant, \"list\" = chronological in the period (overviews, counting), \"latest\" = most recent first (\"when did I last…\").",
200
+ "inputSchema": {
201
+ "type": "object",
202
+ "properties": {
203
+ "query": {
204
+ "description": "What to look for — pass the question also when listing a period: it ranks the items and finds the matching chat excerpts",
205
+ "type": "string"
206
+ },
207
+ "from": {
208
+ "description": "Start date, ISO (YYYY-MM-DD or YYYY-MM)",
209
+ "type": "string",
210
+ "pattern": "^\\d{4}-\\d{2}(-\\d{2})?$"
211
+ },
212
+ "to": {
213
+ "description": "End date, ISO (YYYY-MM-DD or YYYY-MM), inclusive",
214
+ "type": "string",
215
+ "pattern": "^\\d{4}-\\d{2}(-\\d{2})?$"
216
+ },
217
+ "mode": {
218
+ "type": "string",
219
+ "enum": [
220
+ "search",
221
+ "list",
222
+ "latest"
223
+ ]
224
+ },
225
+ "include_plans": {
226
+ "type": "boolean"
227
+ },
228
+ "limit": {
229
+ "type": "integer",
230
+ "minimum": 1,
231
+ "maximum": 50
232
+ }
233
+ },
234
+ "$schema": "http://json-schema.org/draft-07/schema#"
235
+ }
236
+ },
237
+ {
238
+ "name": "search_knowledge",
239
+ "title": "Search what you learned",
240
+ "description": "Search the sources you learned (manuals, documents, pages, notes you were given or wrote): passages of their text, each with its source (title, author, who gave it, when) and the episodes that refer to it. For what happened, use search_episodes.",
241
+ "inputSchema": {
242
+ "type": "object",
243
+ "properties": {
244
+ "query": {
245
+ "type": "string",
246
+ "description": "What to look up"
247
+ },
248
+ "limit": {
249
+ "type": "integer",
250
+ "minimum": 1,
251
+ "maximum": 20
252
+ }
253
+ },
254
+ "required": [
255
+ "query"
256
+ ],
257
+ "$schema": "http://json-schema.org/draft-07/schema#"
258
+ }
259
+ },
260
+ {
261
+ "name": "search_memory",
262
+ "title": "Search what you know about yourself and others",
263
+ "description": "Search your memory of preferences, habits, values, relationships, knowledge and current state (car, home, job…) — yours and of the people you know; each item has its subject. Use `as_of` (ISO date) for \"what was it on that date\" questions; each fact comes with its history.",
264
+ "inputSchema": {
265
+ "type": "object",
266
+ "properties": {
267
+ "query": {
268
+ "type": "string",
269
+ "description": "Topic"
270
+ },
271
+ "as_of": {
272
+ "description": "ISO date (YYYY-MM-DD); default today",
273
+ "type": "string",
274
+ "pattern": "^\\d{4}-\\d{2}(-\\d{2})?$"
275
+ },
276
+ "include_pending": {
277
+ "type": "boolean"
278
+ }
279
+ },
280
+ "required": [
281
+ "query"
282
+ ],
283
+ "$schema": "http://json-schema.org/draft-07/schema#"
284
+ }
285
+ }
286
+ ];
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@arkimedehq/recordare-client",
3
- "version": "0.1.0",
4
- "description": "Client library for Recordare, the memory service for agent platforms: identity, consent, ingest, deletions, MCP recall.",
3
+ "version": "0.2.0",
4
+ "description": "Client library for Recordare, the memory service for agent platforms: identity, ingest, deletions, MCP recall.",
5
5
  "license": "AGPL-3.0-or-later",
6
6
  "author": "Andrea Genovese",
7
7
  "homepage": "https://github.com/arkimedehq/recordare/tree/main/packages/client#readme",