@zelari/core 2.7.0 → 2.8.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 (48) hide show
  1. package/dist/core/AgentHarness.d.ts +16 -0
  2. package/dist/core/AgentHarness.d.ts.map +1 -1
  3. package/dist/core/AgentHarness.js +62 -8
  4. package/dist/core/AgentHarness.js.map +1 -1
  5. package/dist/index.d.ts +1 -1
  6. package/dist/index.js +2 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/memory/adapters.d.ts +42 -0
  9. package/dist/memory/adapters.d.ts.map +1 -0
  10. package/dist/memory/adapters.js +160 -0
  11. package/dist/memory/adapters.js.map +1 -0
  12. package/dist/memory/context.d.ts +8 -0
  13. package/dist/memory/context.d.ts.map +1 -0
  14. package/dist/memory/context.js +65 -0
  15. package/dist/memory/context.js.map +1 -0
  16. package/dist/memory/index.d.ts +10 -0
  17. package/dist/memory/index.d.ts.map +1 -0
  18. package/dist/memory/index.js +10 -0
  19. package/dist/memory/index.js.map +1 -0
  20. package/dist/memory/noop.d.ts +26 -0
  21. package/dist/memory/noop.d.ts.map +1 -0
  22. package/dist/memory/noop.js +51 -0
  23. package/dist/memory/noop.js.map +1 -0
  24. package/dist/memory/policies.d.ts +16 -0
  25. package/dist/memory/policies.d.ts.map +1 -0
  26. package/dist/memory/policies.js +144 -0
  27. package/dist/memory/policies.js.map +1 -0
  28. package/dist/memory/schemas.d.ts +235 -0
  29. package/dist/memory/schemas.d.ts.map +1 -0
  30. package/dist/memory/schemas.js +96 -0
  31. package/dist/memory/schemas.js.map +1 -0
  32. package/dist/memory/scoring.d.ts +22 -0
  33. package/dist/memory/scoring.d.ts.map +1 -0
  34. package/dist/memory/scoring.js +64 -0
  35. package/dist/memory/scoring.js.map +1 -0
  36. package/dist/memory/semantic.d.ts +30 -0
  37. package/dist/memory/semantic.d.ts.map +1 -0
  38. package/dist/memory/semantic.js +180 -0
  39. package/dist/memory/semantic.js.map +1 -0
  40. package/dist/memory/service.d.ts +45 -0
  41. package/dist/memory/service.d.ts.map +1 -0
  42. package/dist/memory/service.js +491 -0
  43. package/dist/memory/service.js.map +1 -0
  44. package/dist/memory/types.d.ts +364 -23
  45. package/dist/memory/types.d.ts.map +1 -1
  46. package/dist/memory/types.js +45 -9
  47. package/dist/memory/types.js.map +1 -1
  48. package/package.json +3 -3
@@ -1,13 +1,9 @@
1
1
  /**
2
- * Memory backend contract provider-neutral, zero-dependency.
2
+ * Public contracts for Zelari project memory.
3
3
  *
4
- * The v1.0 implementation shipped by the CLI is a file-backed keyword store
5
- * (`FileMemoryBackend`, see `src/cli/memory/fileBackend.ts`). This interface
6
- * is deliberately shaped so a future semantic backend (LanceDB + embeddings,
7
- * or an MCP-backed palace) can be dropped in behind the same seam without
8
- * touching callers — the council loop only ever sees `MemoryBackend`.
9
- *
10
- * Only types live here, so `@zelari/core` stays dependency-free.
4
+ * `MemoryBackend` is the original V1 chunk API and remains source-compatible.
5
+ * The cognitive contracts below are additive: callers use `MemoryService`
6
+ * while persistence implementations use `CognitiveMemoryBackend`.
11
7
  */
12
8
  export interface MemoryChunk {
13
9
  id: string;
@@ -17,17 +13,9 @@ export interface MemoryChunk {
17
13
  export interface MemorySearchOptions {
18
14
  /** Max results to return. Default 8. */
19
15
  limit?: number;
20
- /**
21
- * Reserved for graph-aware backends (1-hop expansion). The file backend
22
- * ignores this flag; it is part of the contract so semantic/graph backends
23
- * can honour it later without an interface change.
24
- */
16
+ /** Optional one-hop expansion for graph-aware backends. */
25
17
  useGraph?: boolean;
26
- /**
27
- * Shallow key/value match applied to each chunk's metadata. Only chunks
28
- * whose metadata contains every provided key with an equal value are kept.
29
- * Typically `{ projectRoot }` to keep projects isolated.
30
- */
18
+ /** Shallow metadata equality filter. */
31
19
  metadataFilter?: Record<string, unknown>;
32
20
  }
33
21
  export interface MemoryResult {
@@ -37,7 +25,6 @@ export interface MemoryResult {
37
25
  score: number;
38
26
  metadata: Record<string, unknown>;
39
27
  }
40
- /** Optional graph payload accepted by `add` — stored/ignored per backend. */
41
28
  export interface MemoryAddGraph {
42
29
  entities?: Array<{
43
30
  name: string;
@@ -51,13 +38,367 @@ export interface MemoryAddGraph {
51
38
  }>;
52
39
  }
53
40
  export interface MemoryBackend {
54
- /** Prepare storage for a project (create dirs, open handles, …). Idempotent. */
55
41
  init(projectRoot: string): Promise<void>;
56
- /** Persist a chunk of text with optional metadata/graph. Returns its id. */
57
42
  add(content: string, metadata?: Record<string, unknown>, graph?: MemoryAddGraph): Promise<string>;
58
- /** Retrieve the most relevant chunks for a query. */
59
43
  search(query: string, options?: MemorySearchOptions): Promise<MemoryResult[]>;
60
- /** Release any resources. Safe to call multiple times. */
61
44
  close(): Promise<void>;
62
45
  }
46
+ export declare const MEMORY_SCHEMA_VERSION: 1;
47
+ export declare const MEMORY_KINDS: readonly ["fact", "decision", "episode", "hypothesis", "outcome", "constraint", "preference", "finding", "failure", "verification", "artifact", "procedure"];
48
+ export type MemoryKind = (typeof MEMORY_KINDS)[number];
49
+ export declare const MEMORY_STATUSES: readonly ["active", "superseded", "retracted", "archived"];
50
+ export type MemoryStatus = (typeof MEMORY_STATUSES)[number];
51
+ export declare const MEMORY_RELATIONS: readonly ["supports", "contradicts", "supersedes", "derived_from", "motivated_by", "implemented_by", "validated_by", "invalidated_by", "caused", "affected", "depends_on", "related_to", "belongs_to", "resolved_by", "failed_because"];
52
+ export type MemoryRelation = (typeof MEMORY_RELATIONS)[number];
53
+ export type MemoryWriteClass = 'auto' | 'candidate' | 'manual';
54
+ export declare const MEMORY_VISIBILITIES: readonly ["project", "private"];
55
+ export type MemoryVisibility = (typeof MEMORY_VISIBILITIES)[number];
56
+ export interface MemorySource {
57
+ agent?: string;
58
+ sessionId?: string;
59
+ missionId?: string;
60
+ sliceId?: string;
61
+ tentacleId?: string;
62
+ councilMemberId?: string;
63
+ skillId?: string;
64
+ verificationId?: string;
65
+ file?: string;
66
+ symbol?: string;
67
+ commit?: string;
68
+ branch?: string;
69
+ worktree?: string;
70
+ toolCallId?: string;
71
+ client?: string;
72
+ }
73
+ export interface MemoryNode {
74
+ id: string;
75
+ schemaVersion: typeof MEMORY_SCHEMA_VERSION;
76
+ projectId: string;
77
+ kind: MemoryKind;
78
+ content: string;
79
+ importance: number;
80
+ confidence: number;
81
+ status: MemoryStatus;
82
+ /** `private` nodes are only exposed back to their originating external client. */
83
+ visibility?: MemoryVisibility;
84
+ tags: string[];
85
+ source: MemorySource;
86
+ createdAt: string;
87
+ updatedAt: string;
88
+ validFrom?: string;
89
+ validUntil?: string;
90
+ recordedAt: string;
91
+ retractedAt?: string;
92
+ embeddingRef?: string;
93
+ metadata: Record<string, unknown>;
94
+ }
95
+ export interface MemoryNodeInput {
96
+ /** Optional stable id, primarily for safe legacy imports. */
97
+ id?: string;
98
+ /** The service supplies and enforces its project id when omitted. */
99
+ projectId?: string;
100
+ kind: MemoryKind;
101
+ content: string;
102
+ importance?: number;
103
+ confidence?: number;
104
+ status?: MemoryStatus;
105
+ visibility?: MemoryVisibility;
106
+ tags?: string[];
107
+ source?: MemorySource;
108
+ /** Optional historical timestamps, used by trusted migration/import paths. */
109
+ createdAt?: string;
110
+ recordedAt?: string;
111
+ validFrom?: string;
112
+ validUntil?: string;
113
+ embeddingRef?: string;
114
+ metadata?: Record<string, unknown>;
115
+ }
116
+ export interface RememberInput extends MemoryNodeInput {
117
+ writeClass?: MemoryWriteClass;
118
+ }
119
+ export interface MemoryPatch {
120
+ kind?: MemoryKind;
121
+ content?: string;
122
+ importance?: number;
123
+ confidence?: number;
124
+ status?: MemoryStatus;
125
+ visibility?: MemoryVisibility;
126
+ tags?: string[];
127
+ source?: MemorySource;
128
+ validFrom?: string | null;
129
+ validUntil?: string | null;
130
+ embeddingRef?: string | null;
131
+ metadata?: Record<string, unknown>;
132
+ /** Stored on the immutable version row, not on the current node. */
133
+ reason?: string;
134
+ actor?: string;
135
+ }
136
+ export interface MemoryEdge {
137
+ id: string;
138
+ from: string;
139
+ to: string;
140
+ relation: MemoryRelation;
141
+ strength: number;
142
+ confidence: number;
143
+ createdAt: string;
144
+ createdBy?: string;
145
+ validFrom?: string;
146
+ validUntil?: string;
147
+ metadata: Record<string, unknown>;
148
+ }
149
+ export interface MemoryEdgeInput {
150
+ id?: string;
151
+ from: string;
152
+ to: string;
153
+ relation: MemoryRelation;
154
+ strength?: number;
155
+ confidence?: number;
156
+ createdBy?: string;
157
+ validFrom?: string;
158
+ validUntil?: string;
159
+ metadata?: Record<string, unknown>;
160
+ }
161
+ export interface EdgeQuery {
162
+ direction?: 'in' | 'out' | 'both';
163
+ relations?: MemoryRelation[];
164
+ asOf?: string;
165
+ limit?: number;
166
+ }
167
+ export interface MemoryVersion {
168
+ versionId: string;
169
+ memoryId: string;
170
+ revision: number;
171
+ snapshot: MemoryNode;
172
+ recordedAt: string;
173
+ actor?: string;
174
+ reason?: string;
175
+ }
176
+ export interface MemoryQuery {
177
+ text?: string;
178
+ projectId?: string;
179
+ kinds?: MemoryKind[];
180
+ statuses?: MemoryStatus[];
181
+ visibilities?: MemoryVisibility[];
182
+ /** Restrict external reads to project-visible nodes plus this client's private nodes. */
183
+ externalClient?: string;
184
+ tags?: string[];
185
+ source?: Partial<MemorySource>;
186
+ minImportance?: number;
187
+ minConfidence?: number;
188
+ createdAfter?: string;
189
+ createdBefore?: string;
190
+ asOf?: string;
191
+ includeHistorical?: boolean;
192
+ useGraph?: boolean;
193
+ graphDepth?: number;
194
+ limit?: number;
195
+ }
196
+ /** Persistence-level candidate with optional retrieval signals. */
197
+ export interface MemoryCandidate {
198
+ node: MemoryNode;
199
+ lexicalRelevance?: number;
200
+ semanticRelevance?: number;
201
+ graphProximity?: number;
202
+ }
203
+ export interface RecallSignals {
204
+ semanticRelevance: number;
205
+ lexicalRelevance: number;
206
+ importance: number;
207
+ confidence: number;
208
+ recency: number;
209
+ graphProximity: number;
210
+ verificationBonus: number;
211
+ }
212
+ export interface RecallResult {
213
+ node: MemoryNode;
214
+ score: number;
215
+ signals: RecallSignals;
216
+ }
217
+ export interface RecallQuery extends MemoryQuery {
218
+ /** Alias retained for callers that naturally pass `{ query: ... }`. */
219
+ query?: string;
220
+ }
221
+ export interface LinkMemoryInput extends MemoryEdgeInput {
222
+ }
223
+ export interface MemoryContextRequest extends RecallQuery {
224
+ /** Hard output character budget. Default 2,000. */
225
+ maxChars?: number;
226
+ /** Broad candidate pool before ranking and diversity packing. */
227
+ candidateLimit?: number;
228
+ /** Maximum memories packed even when the character budget allows more. */
229
+ maxMemories?: number;
230
+ }
231
+ export interface MemoryContext {
232
+ text: string;
233
+ memories: RecallResult[];
234
+ usedChars: number;
235
+ budgetChars: number;
236
+ truncated: boolean;
237
+ }
238
+ export interface ConsolidationRequest {
239
+ memoryIds?: string[];
240
+ query?: string;
241
+ minOccurrences?: number;
242
+ archiveSources?: boolean;
243
+ source?: MemorySource;
244
+ }
245
+ export interface ConsolidationResult {
246
+ scanned: number;
247
+ groups: number;
248
+ created: MemoryNode[];
249
+ archivedSourceIds: string[];
250
+ }
251
+ export interface MemoryStats {
252
+ backend: string;
253
+ path?: string;
254
+ schemaVersion: number;
255
+ nodes: number;
256
+ edges: number;
257
+ active: number;
258
+ superseded: number;
259
+ retracted: number;
260
+ archived: number;
261
+ unconsolidatedCandidates: number;
262
+ semanticIndex: 'ready' | 'disabled' | 'degraded';
263
+ semanticModel?: string;
264
+ semanticIndexed?: number;
265
+ semanticStale?: number;
266
+ }
267
+ /** Optional dependency injected by a host; @zelari/core never calls a provider directly. */
268
+ export interface MemoryEmbeddingProvider {
269
+ readonly model: string;
270
+ embed(texts: string[]): Promise<number[][] | {
271
+ error: string;
272
+ }>;
273
+ }
274
+ export interface MemorySemanticSource {
275
+ node: MemoryNode;
276
+ contentHash: string;
277
+ }
278
+ export interface MemoryEmbeddingRecord {
279
+ memoryId: string;
280
+ projectId: string;
281
+ model: string;
282
+ contentHash: string;
283
+ vector: number[];
284
+ indexedAt: string;
285
+ }
286
+ export interface MemorySemanticStatus {
287
+ state: 'ready' | 'disabled' | 'degraded';
288
+ model?: string;
289
+ indexed: number;
290
+ stale: number;
291
+ lastIndexedAt?: string;
292
+ detail?: string;
293
+ }
294
+ export interface MemoryIndexRequest {
295
+ /** Recompute even when model and content hash still match. */
296
+ force?: boolean;
297
+ /** Maximum nodes handled in this invocation. Default 1,000. */
298
+ limit?: number;
299
+ /** Provider batch size. Default 32. */
300
+ batchSize?: number;
301
+ /** Makes long explicit re-index operations interruptible. */
302
+ signal?: AbortSignal;
303
+ }
304
+ export interface MemoryIndexResult {
305
+ status: 'ready' | 'disabled' | 'degraded';
306
+ model?: string;
307
+ scanned: number;
308
+ indexed: number;
309
+ skipped: number;
310
+ failed: number;
311
+ interrupted: boolean;
312
+ error?: string;
313
+ }
314
+ export interface MemoryDoctorResult {
315
+ ok: boolean;
316
+ backend: string;
317
+ path?: string;
318
+ checks: Array<{
319
+ name: string;
320
+ ok: boolean;
321
+ detail: string;
322
+ }>;
323
+ }
324
+ export interface MemoryExport {
325
+ schemaVersion: 1;
326
+ exportedAt: string;
327
+ projectId: string;
328
+ nodes: MemoryNode[];
329
+ edges: MemoryEdge[];
330
+ versions: MemoryVersion[];
331
+ }
332
+ export interface CognitiveMemoryBackend {
333
+ init?(projectRoot: string): Promise<void>;
334
+ add(node: MemoryNodeInput & {
335
+ projectId: string;
336
+ }): Promise<MemoryNode>;
337
+ get(id: string): Promise<MemoryNode | null>;
338
+ update(id: string, patch: MemoryPatch): Promise<MemoryNode>;
339
+ search(query: MemoryQuery): Promise<MemoryCandidate[]>;
340
+ listSemanticSources?(projectId: string, model: string, options?: {
341
+ force?: boolean;
342
+ limit?: number;
343
+ cursor?: string;
344
+ }): Promise<MemorySemanticSource[]>;
345
+ upsertSemanticEmbeddings?(records: MemoryEmbeddingRecord[]): Promise<void>;
346
+ semanticSearch?(query: MemoryQuery, vector: number[], model: string): Promise<MemoryCandidate[]>;
347
+ semanticStatus?(projectId: string, model?: string): Promise<MemorySemanticStatus>;
348
+ addEdge(edge: MemoryEdgeInput): Promise<MemoryEdge>;
349
+ edges(nodeId: string, options?: EdgeQuery): Promise<MemoryEdge[]>;
350
+ history(id: string): Promise<MemoryVersion[]>;
351
+ getAt?(id: string, timestamp: string): Promise<MemoryNode | null>;
352
+ retract(id: string, reason?: string, actor?: string): Promise<void>;
353
+ delete?(id: string): Promise<boolean>;
354
+ stats?(): Promise<MemoryStats>;
355
+ doctor?(): Promise<MemoryDoctorResult>;
356
+ export?(projectId: string): Promise<MemoryExport>;
357
+ close?(): Promise<void>;
358
+ }
359
+ export interface MemoryService {
360
+ readonly projectId: string;
361
+ remember(input: RememberInput): Promise<MemoryNode>;
362
+ get(memoryId: string): Promise<MemoryNode | null>;
363
+ recall(query: RecallQuery): Promise<RecallResult[]>;
364
+ connect(input: LinkMemoryInput): Promise<MemoryEdge>;
365
+ related(memoryId: string, options?: EdgeQuery): Promise<Array<{
366
+ edge: MemoryEdge;
367
+ node: MemoryNode;
368
+ }>>;
369
+ history(memoryId: string): Promise<MemoryVersion[]>;
370
+ getAt(memoryId: string, timestamp: string): Promise<MemoryNode | null>;
371
+ retract(memoryId: string, reason?: string): Promise<void>;
372
+ forget(memoryId: string): Promise<boolean>;
373
+ buildContext(input: MemoryContextRequest): Promise<MemoryContext>;
374
+ consolidate(input?: ConsolidationRequest): Promise<ConsolidationResult>;
375
+ index?(input?: MemoryIndexRequest): Promise<MemoryIndexResult>;
376
+ stats(): Promise<MemoryStats>;
377
+ doctor(): Promise<MemoryDoctorResult>;
378
+ export(): Promise<MemoryExport>;
379
+ close(): Promise<void>;
380
+ }
381
+ export interface MemorySanitizationResult {
382
+ content: string;
383
+ redactions: string[];
384
+ rejected: boolean;
385
+ reason?: string;
386
+ }
387
+ export interface MemorySanitizer {
388
+ sanitize(content: string): MemorySanitizationResult;
389
+ }
390
+ export type MemoryEventType = 'memory_recall_start' | 'memory_recall_end' | 'memory_write' | 'memory_link' | 'memory_retract' | 'memory_consolidate_start' | 'memory_consolidate_end' | 'memory_migration' | 'memory_error';
391
+ export interface MemoryEvent {
392
+ type: MemoryEventType;
393
+ at: string;
394
+ durationMs?: number;
395
+ candidateCount?: number;
396
+ returnedCount?: number;
397
+ contextChars?: number;
398
+ backend?: string;
399
+ reason?: string;
400
+ /** Identifiers only. Memory content must never be placed in telemetry. */
401
+ memoryId?: string;
402
+ }
403
+ export type MemoryEventSink = (event: MemoryEvent) => void | Promise<void>;
63
404
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,MAAM,WAAW,mBAAmB;IAClC,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,2DAA2D;IAC3D,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED,6EAA6E;AAC7E,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAClD,SAAS,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAChF;AAED,MAAM,WAAW,aAAa;IAC5B,gFAAgF;IAChF,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,4EAA4E;IAC5E,GAAG,CACD,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,KAAK,CAAC,EAAE,cAAc,GACrB,OAAO,CAAC,MAAM,CAAC,CAAC;IACnB,qDAAqD;IACrD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IAC9E,0DAA0D;IAC1D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,49 @@
1
1
  /**
2
- * Memory backend contract provider-neutral, zero-dependency.
2
+ * Public contracts for Zelari project memory.
3
3
  *
4
- * The v1.0 implementation shipped by the CLI is a file-backed keyword store
5
- * (`FileMemoryBackend`, see `src/cli/memory/fileBackend.ts`). This interface
6
- * is deliberately shaped so a future semantic backend (LanceDB + embeddings,
7
- * or an MCP-backed palace) can be dropped in behind the same seam without
8
- * touching callers — the council loop only ever sees `MemoryBackend`.
9
- *
10
- * Only types live here, so `@zelari/core` stays dependency-free.
4
+ * `MemoryBackend` is the original V1 chunk API and remains source-compatible.
5
+ * The cognitive contracts below are additive: callers use `MemoryService`
6
+ * while persistence implementations use `CognitiveMemoryBackend`.
11
7
  */
12
- export {};
8
+ // ---------------------------------------------------------------------------
9
+ // Native cognitive memory V2
10
+ export const MEMORY_SCHEMA_VERSION = 1;
11
+ export const MEMORY_KINDS = [
12
+ 'fact',
13
+ 'decision',
14
+ 'episode',
15
+ 'hypothesis',
16
+ 'outcome',
17
+ 'constraint',
18
+ 'preference',
19
+ 'finding',
20
+ 'failure',
21
+ 'verification',
22
+ 'artifact',
23
+ 'procedure',
24
+ ];
25
+ export const MEMORY_STATUSES = [
26
+ 'active',
27
+ 'superseded',
28
+ 'retracted',
29
+ 'archived',
30
+ ];
31
+ export const MEMORY_RELATIONS = [
32
+ 'supports',
33
+ 'contradicts',
34
+ 'supersedes',
35
+ 'derived_from',
36
+ 'motivated_by',
37
+ 'implemented_by',
38
+ 'validated_by',
39
+ 'invalidated_by',
40
+ 'caused',
41
+ 'affected',
42
+ 'depends_on',
43
+ 'related_to',
44
+ 'belongs_to',
45
+ 'resolved_by',
46
+ 'failed_because',
47
+ ];
48
+ export const MEMORY_VISIBILITIES = ['project', 'private'];
13
49
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/memory/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4CH,8EAA8E;AAC9E,6BAA6B;AAE7B,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAU,CAAC;AAEhD,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,MAAM;IACN,UAAU;IACV,SAAS;IACT,YAAY;IACZ,SAAS;IACT,YAAY;IACZ,YAAY;IACZ,SAAS;IACT,SAAS;IACT,cAAc;IACd,UAAU;IACV,WAAW;CACH,CAAC;AAGX,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,QAAQ;IACR,YAAY;IACZ,WAAW;IACX,UAAU;CACF,CAAC;AAGX,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,UAAU;IACV,aAAa;IACb,YAAY;IACZ,cAAc;IACd,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,gBAAgB;IAChB,QAAQ;IACR,UAAU;IACV,YAAY;IACZ,YAAY;IACZ,YAAY;IACZ,aAAa;IACb,gBAAgB;CACR,CAAC;AAKX,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,SAAS,EAAE,SAAS,CAAU,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zelari/core",
3
- "version": "2.7.0",
3
+ "version": "2.8.0",
4
4
  "description": "Zelari Code core library — provider-neutral agent loop (AgentHarness), multi-agent council orchestration, and built-in skills. Used by the zelari-code CLI; consumable by other agent frontends.",
5
5
  "author": "Anathema Studio <https://anathema-studio.com/>",
6
6
  "license": "Apache-2.0",
@@ -61,8 +61,8 @@
61
61
  "default": "./dist/council/index.js"
62
62
  },
63
63
  "./memory": {
64
- "types": "./dist/memory/types.d.ts",
65
- "default": "./dist/memory/types.js"
64
+ "types": "./dist/memory/index.d.ts",
65
+ "default": "./dist/memory/index.js"
66
66
  },
67
67
  "./state": {
68
68
  "types": "./dist/state/index.d.ts",