crewly 1.20.398 → 1.20.400

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/config/constants.ts +22 -0
  2. package/config/skills/agent/core/standing-update/SKILL.md +6 -2
  3. package/dist/backend/backend/src/constants.d.ts +17 -0
  4. package/dist/backend/backend/src/constants.d.ts.map +1 -1
  5. package/dist/backend/backend/src/constants.js +12 -0
  6. package/dist/backend/backend/src/constants.js.map +1 -1
  7. package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts +9 -4
  8. package/dist/backend/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
  9. package/dist/backend/backend/src/services/memory/agent-memory.service.js +47 -23
  10. package/dist/backend/backend/src/services/memory/agent-memory.service.js.map +1 -1
  11. package/dist/backend/backend/src/services/memory/knowledge-similarity.d.ts +206 -0
  12. package/dist/backend/backend/src/services/memory/knowledge-similarity.d.ts.map +1 -0
  13. package/dist/backend/backend/src/services/memory/knowledge-similarity.js +319 -0
  14. package/dist/backend/backend/src/services/memory/knowledge-similarity.js.map +1 -0
  15. package/dist/backend/backend/src/services/memory/standing-answers.service.d.ts +49 -1
  16. package/dist/backend/backend/src/services/memory/standing-answers.service.d.ts.map +1 -1
  17. package/dist/backend/backend/src/services/memory/standing-answers.service.js +123 -4
  18. package/dist/backend/backend/src/services/memory/standing-answers.service.js.map +1 -1
  19. package/dist/backend/build-info.json +2 -2
  20. package/dist/backend/config/constants.d.ts +21 -0
  21. package/dist/backend/config/constants.d.ts.map +1 -1
  22. package/dist/backend/config/constants.js +21 -0
  23. package/dist/backend/config/constants.js.map +1 -1
  24. package/dist/backend/config/index.d.ts +5 -0
  25. package/dist/backend/config/index.d.ts.map +1 -1
  26. package/dist/cli/backend/src/constants.d.ts +17 -0
  27. package/dist/cli/backend/src/constants.d.ts.map +1 -1
  28. package/dist/cli/backend/src/constants.js +12 -0
  29. package/dist/cli/backend/src/constants.js.map +1 -1
  30. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts +9 -4
  31. package/dist/cli/backend/src/services/memory/agent-memory.service.d.ts.map +1 -1
  32. package/dist/cli/backend/src/services/memory/agent-memory.service.js +47 -23
  33. package/dist/cli/backend/src/services/memory/agent-memory.service.js.map +1 -1
  34. package/dist/cli/backend/src/services/memory/knowledge-similarity.d.ts +206 -0
  35. package/dist/cli/backend/src/services/memory/knowledge-similarity.d.ts.map +1 -0
  36. package/dist/cli/backend/src/services/memory/knowledge-similarity.js +319 -0
  37. package/dist/cli/backend/src/services/memory/knowledge-similarity.js.map +1 -0
  38. package/dist/cli/backend/src/services/memory/standing-answers.service.d.ts +49 -1
  39. package/dist/cli/backend/src/services/memory/standing-answers.service.d.ts.map +1 -1
  40. package/dist/cli/backend/src/services/memory/standing-answers.service.js +123 -4
  41. package/dist/cli/backend/src/services/memory/standing-answers.service.js.map +1 -1
  42. package/dist/cli/config/constants.d.ts +21 -0
  43. package/dist/cli/config/constants.d.ts.map +1 -1
  44. package/dist/cli/config/constants.js +21 -0
  45. package/dist/cli/config/constants.js.map +1 -1
  46. package/dist/cli/config/index.d.ts +5 -0
  47. package/dist/cli/config/index.d.ts.map +1 -1
  48. package/package.json +1 -1
@@ -151,11 +151,14 @@ export declare class AgentMemoryService implements IAgentMemoryService {
151
151
  */
152
152
  saveSupersededMemory(agentId: string, memory: AgentMemory): Promise<void>;
153
153
  /**
154
- * Finds a similar existing knowledge entry to avoid duplicates
154
+ * Finds the existing entry an incoming one duplicates: exact or
155
+ * containment match first, else the nearest token-set neighbour in the
156
+ * same category and tag scope at or above the near-duplicate threshold
157
+ * (#914 P1). Superseded and expired entries are never candidates.
155
158
  *
156
159
  * @param knowledge - Existing knowledge entries
157
- * @param content - Content to check for similarity
158
- * @returns Matching entry or undefined
160
+ * @param entry - Entry about to be written
161
+ * @returns The match with its score, or null
159
162
  */
160
163
  private findSimilarEntry;
161
164
  /**
@@ -199,7 +202,9 @@ export declare class AgentMemoryService implements IAgentMemoryService {
199
202
  /**
200
203
  * Adds a new role knowledge entry
201
204
  *
202
- * If similar content already exists, reinforces the existing entry instead.
205
+ * The same text again merges into and reinforces the existing entry; the
206
+ * same fact restated supersedes the old entry with the new wording (see
207
+ * knowledge-similarity, #914 P1).
203
208
  *
204
209
  * @param agentId - Agent's unique identifier
205
210
  * @param entry - Knowledge entry (without id and createdAt)
@@ -1 +1 @@
1
- {"version":3,"file":"agent-memory.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/memory/agent-memory.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-memory.service.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/memory/agent-memory.service.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ import * as os from 'os';
13
13
  import { v4 as uuidv4 } from 'uuid';
14
14
  import { atomicWriteJson, safeReadJson } from '../../utils/file-io.utils.js';
15
15
  import { isHiddenFromDefaultRecall } from './role-knowledge-eligibility.js';
16
+ import { evictionIndex, findNearestKnowledge, mergeKnowledgeEvidence, restateKnowledge } from './knowledge-similarity.js';
16
17
  import { isTaskCompletionLog } from './task-log-filter.js';
17
18
  /** Constants for memory scoring and decay (v2) */
18
19
  const DECAY_CONSTANTS = {
@@ -198,21 +199,17 @@ export class AgentMemoryService {
198
199
  await this.saveAgentMemory(agentId, memory);
199
200
  }
200
201
  /**
201
- * Finds a similar existing knowledge entry to avoid duplicates
202
+ * Finds the existing entry an incoming one duplicates: exact or
203
+ * containment match first, else the nearest token-set neighbour in the
204
+ * same category and tag scope at or above the near-duplicate threshold
205
+ * (#914 P1). Superseded and expired entries are never candidates.
202
206
  *
203
207
  * @param knowledge - Existing knowledge entries
204
- * @param content - Content to check for similarity
205
- * @returns Matching entry or undefined
208
+ * @param entry - Entry about to be written
209
+ * @returns The match with its score, or null
206
210
  */
207
- findSimilarEntry(knowledge, content) {
208
- const normalizedContent = content.toLowerCase().trim();
209
- return knowledge.find(entry => {
210
- const normalizedEntry = entry.content.toLowerCase().trim();
211
- // Simple similarity check - exact match or high substring overlap
212
- return normalizedEntry === normalizedContent ||
213
- (normalizedContent.length > 20 &&
214
- (normalizedEntry.includes(normalizedContent) || normalizedContent.includes(normalizedEntry)));
215
- });
211
+ findSimilarEntry(knowledge, entry) {
212
+ return findNearestKnowledge(knowledge, entry);
216
213
  }
217
214
  /**
218
215
  * Formats agent preferences for context output
@@ -326,7 +323,9 @@ export class AgentMemoryService {
326
323
  /**
327
324
  * Adds a new role knowledge entry
328
325
  *
329
- * If similar content already exists, reinforces the existing entry instead.
326
+ * The same text again merges into and reinforces the existing entry; the
327
+ * same fact restated supersedes the old entry with the new wording (see
328
+ * knowledge-similarity, #914 P1).
330
329
  *
331
330
  * @param agentId - Agent's unique identifier
332
331
  * @param entry - Knowledge entry (without id and createdAt)
@@ -347,19 +346,44 @@ export class AgentMemoryService {
347
346
  if (!memory) {
348
347
  throw new Error(`Agent ${agentId} not initialized`);
349
348
  }
350
- // Check for similar existing entry
351
- const existing = this.findSimilarEntry(memory.roleKnowledge, entry.content);
352
- if (existing) {
353
- await this.reinforceKnowledge(agentId, existing.id);
354
- this.logger.debug('Reinforced existing knowledge entry', { agentId, entryId: existing.id });
349
+ // The same text again merges into the existing entry: evidence union,
350
+ // importance max, one confidence step (#914 P1).
351
+ const match = this.findSimilarEntry(memory.roleKnowledge, entry);
352
+ if (match && match.kind === 'exact') {
353
+ const existing = match.entry;
354
+ const merged = mergeKnowledgeEvidence(existing, entry);
355
+ existing.confidence = Math.min(existing.confidence + MEMORY_CONSTANTS.DEFAULTS.CONFIDENCE_REINFORCEMENT, MEMORY_CONSTANTS.DEFAULTS.MAX_CONFIDENCE);
356
+ await this.saveAgentMemory(agentId, memory);
357
+ this.logger.debug('Merged duplicate knowledge into existing entry', {
358
+ agentId,
359
+ entryId: existing.id,
360
+ addedEvidence: merged.addedEvidence.length,
361
+ importanceRaised: merged.importanceRaised,
362
+ });
355
363
  return existing.id;
356
364
  }
357
- // Enforce storage limits
365
+ // Enforce storage limits: a superseded entry goes first, else the lowest confidence
358
366
  if (memory.roleKnowledge.length >= MEMORY_CONSTANTS.LIMITS.MAX_ROLE_KNOWLEDGE_ENTRIES) {
359
- // Remove lowest confidence entries
360
- memory.roleKnowledge.sort((a, b) => a.confidence - b.confidence);
361
- memory.roleKnowledge.shift();
362
- this.logger.debug('Removed lowest confidence entry to stay within limits', { agentId });
367
+ const evict = evictionIndex(memory.roleKnowledge);
368
+ if (evict !== -1) {
369
+ const [gone] = memory.roleKnowledge.splice(evict, 1);
370
+ this.logger.debug('Removed an entry to stay within limits', { agentId, entryId: gone.id, superseded: Boolean(gone.superseded || gone.supersededBy) });
371
+ }
372
+ }
373
+ // The same fact restated (a near match): the new wording wins, the old
374
+ // entry is superseded by it and kept for audit.
375
+ if (match) {
376
+ const fresh = restateKnowledge(match.entry, entry, { id: uuidv4(), now: new Date(), score: match.score });
377
+ memory.roleKnowledge.push(fresh);
378
+ await this.saveAgentMemory(agentId, memory);
379
+ this.logger.info('Restated role knowledge entry', {
380
+ agentId,
381
+ entryId: fresh.id,
382
+ supersedes: match.entry.id,
383
+ score: Number(match.score.toFixed(2)),
384
+ category: fresh.category,
385
+ });
386
+ return fresh.id;
363
387
  }
364
388
  const newEntry = {
365
389
  ...entry,
@@ -1 +1 @@
1
- {"version":3,"file":"agent-memory.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/memory/agent-memory.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-memory.service.js","sourceRoot":"","sources":["../../../../../../backend/src/services/memory/agent-memory.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,206 @@
1
+ /**
2
+ * Near-duplicate detection and evidence merge for role knowledge (#914 P1).
3
+ *
4
+ * `addRoleKnowledge` used to dedupe by exact match or substring containment
5
+ * only, so the same fact written twice with a different id, count or date
6
+ * in it ("Refresh standing answer … (1 newer)" / "… (6 newer)") became two
7
+ * entries, and recall surfaced both. This module replaces that check with
8
+ * a cheap nearest-neighbour over token sets:
9
+ *
10
+ * - `knowledgeTokens` lowercases, splits on non-alphanumerics and drops the
11
+ * tokens that vary between restatements of one fact (uuids, hex ids,
12
+ * long digit runs, single letters);
13
+ * - `jaccard` is the set overlap of two token sets;
14
+ * - `numbersCompatible` keeps two texts apart when they disagree on a
15
+ * number (ticket, count, version): the frame may be identical, the fact
16
+ * is not;
17
+ * - `findNearestKnowledge` returns the best candidate in the same scope
18
+ * (same category; overlapping tags when both sides have tags), an exact
19
+ * or substring match first, else the highest Jaccard at or above the
20
+ * threshold among number-compatible entries. Superseded and expired
21
+ * entries are never candidates, so a new write cannot reinforce a dead
22
+ * fact. Short texts (fewer than `MIN_TOKENS_FOR_NEAR` tokens) match
23
+ * exactly or not at all.
24
+ * - `mergeKnowledgeEvidence` folds the incoming entry's provenance into the
25
+ * existing one (exact match): evidence union, importance max,
26
+ * verification timestamp. The existing content stays.
27
+ * - `restateKnowledge` handles a near match: the newest wording becomes a
28
+ * new entry with the old provenance and reinforcement, the old entry is
29
+ * marked superseded by it and kept for audit. The LLM adjudication the
30
+ * issue describes (keep / modify / supersede by judgment) is a later,
31
+ * possibly Pro, step; this is the deterministic rule.
32
+ * - `evictionIndex` picks what a full store drops: superseded first.
33
+ *
34
+ * Pure functions only; the threshold was set by replaying the owner's
35
+ * 3.7k real entries (see spec `2026-10-25-knowledge-evidence-merge.md`).
36
+ *
37
+ * @module services/memory/knowledge-similarity
38
+ */
39
+ import type { RoleKnowledgeEntry } from '../../types/memory.types.js';
40
+ /** The fields the similarity check reads from an existing entry. */
41
+ export type KnowledgeLike = Pick<RoleKnowledgeEntry, 'content' | 'category' | 'tags' | 'superseded' | 'supersededBy' | 'ttl'>;
42
+ /** The fields the similarity check reads from an incoming entry. */
43
+ export type IncomingKnowledge = Pick<RoleKnowledgeEntry, 'content'> & Partial<Pick<RoleKnowledgeEntry, 'category' | 'tags'>>;
44
+ /** How an existing entry matched the incoming one. */
45
+ export type MatchKind = 'exact' | 'near';
46
+ /** The nearest existing entry and how close it is. */
47
+ export interface NearestMatch<T> {
48
+ /** The existing entry */
49
+ entry: T;
50
+ /** 1 for an exact or substring match, else the Jaccard overlap */
51
+ score: number;
52
+ /** Exact (legacy rule) or near (token overlap at or above the threshold) */
53
+ kind: MatchKind;
54
+ }
55
+ /** Options for {@link findNearestKnowledge}. */
56
+ export interface NearestOptions {
57
+ /** Jaccard at or above which a candidate is a near-duplicate; defaults to the constant */
58
+ threshold?: number;
59
+ /** Reference instant for the expiry check; defaults to now */
60
+ now?: Date;
61
+ }
62
+ /**
63
+ * Tokens of a knowledge text that survive a restatement: lowercase words
64
+ * and numbers up to five digits, without uuids, hex ids, long digit runs or
65
+ * single letters. Single digits stay: "entry 0" and "entry 1" are two
66
+ * facts.
67
+ *
68
+ * @param text - Entry content
69
+ * @returns Distinct tokens
70
+ *
71
+ * @example
72
+ * ```typescript
73
+ * knowledgeTokens('Claimed WorkItem X (id: 51851ddb-3e5f-48b4-b73a-fccbc6a79abb) at 2026-10-25, 3 newer')
74
+ * // Set { 'claimed', 'workitem', 'id', 'at', '2026', '10', '25', '3', 'newer' }
75
+ * ```
76
+ */
77
+ export declare function knowledgeTokens(text: string): Set<string>;
78
+ /**
79
+ * Whether two token sets agree on their numbers: one side's numbers must
80
+ * all appear on the other. "verify CE-140" and "verify CE-196" share every
81
+ * word and differ in one number — two facts, however alike the frame.
82
+ * "snapshot 10/13 03:40Z" and "snapshot 10/13" are one fact, the second
83
+ * just shorter. Disagreeing counts ("1 newer" / "6 newer") are kept apart
84
+ * on purpose: a false merge loses knowledge, a missed one only leaves a
85
+ * duplicate.
86
+ *
87
+ * @param a - First token set
88
+ * @param b - Second token set
89
+ * @returns true when the numbers of one set are a subset of the other's
90
+ */
91
+ export declare function numbersCompatible(a: Set<string>, b: Set<string>): boolean;
92
+ /**
93
+ * Jaccard overlap of two token sets: |A ∩ B| / |A ∪ B|.
94
+ *
95
+ * @param a - First set
96
+ * @param b - Second set
97
+ * @returns 0 when either set is empty, else the overlap in [0, 1]
98
+ */
99
+ export declare function jaccard(a: Set<string>, b: Set<string>): number;
100
+ /**
101
+ * Whether an existing entry is in the incoming entry's scope: the same
102
+ * category when the incoming one names a category, and at least one shared
103
+ * tag when both carry tags.
104
+ *
105
+ * @param existing - Existing entry
106
+ * @param incoming - Incoming entry
107
+ * @returns true when the two may be compared
108
+ */
109
+ export declare function sameScope(existing: Partial<Pick<KnowledgeLike, 'category' | 'tags'>>, incoming: Partial<Pick<IncomingKnowledge, 'category' | 'tags'>>): boolean;
110
+ /**
111
+ * Equal after trim and lowercase.
112
+ *
113
+ * @param existing - Existing content
114
+ * @param incoming - Incoming content
115
+ * @returns true when the two texts are the same
116
+ */
117
+ export declare function isSameText(existing: string, incoming: string): boolean;
118
+ /**
119
+ * One text contains the other, when the incoming text is longer than the
120
+ * substring floor (the legacy containment rule).
121
+ *
122
+ * @param existing - Existing content
123
+ * @param incoming - Incoming content
124
+ * @returns true for a containment match
125
+ */
126
+ export declare function containsText(existing: string, incoming: string): boolean;
127
+ /**
128
+ * The legacy rule: {@link isSameText} or {@link containsText}.
129
+ *
130
+ * @param existing - Existing content
131
+ * @param incoming - Incoming content
132
+ * @returns true for an exact or containment match
133
+ */
134
+ export declare function isExactMatch(existing: string, incoming: string): boolean;
135
+ /**
136
+ * The existing entry the incoming one duplicates, if any: an exact match
137
+ * first, else the highest token overlap at or above the threshold, among
138
+ * entries in scope that recall still shows.
139
+ *
140
+ * @param knowledge - Existing entries
141
+ * @param incoming - Entry about to be written
142
+ * @param options - Threshold and reference time
143
+ * @returns The nearest match, or null when nothing is close enough
144
+ *
145
+ * @example
146
+ * ```typescript
147
+ * const hit = findNearestKnowledge(memory.roleKnowledge, { content, category });
148
+ * if (hit) merge(hit.entry); else append(content);
149
+ * ```
150
+ */
151
+ export declare function findNearestKnowledge<T extends KnowledgeLike>(knowledge: T[], incoming: IncomingKnowledge, options?: NearestOptions): NearestMatch<T> | null;
152
+ /** What {@link mergeKnowledgeEvidence} changed on the existing entry. */
153
+ export interface MergeResult {
154
+ /** Evidence refs added (not already present) */
155
+ addedEvidence: string[];
156
+ /** Whether importance was raised to the incoming value */
157
+ importanceRaised: boolean;
158
+ }
159
+ /**
160
+ * Folds an incoming duplicate's provenance into the existing entry, in
161
+ * place: evidence becomes the union (legacy `learnedFrom` and
162
+ * `sourceTaskId` count as evidence), importance the max, and the entry is
163
+ * marked verified and used now. Content, confidence and ids are left to the
164
+ * caller.
165
+ *
166
+ * @param existing - Entry that stays (mutated)
167
+ * @param incoming - Duplicate that is not written
168
+ * @param now - Timestamp for `lastVerifiedAt` / `lastUsed`
169
+ * @returns What changed
170
+ */
171
+ export declare function mergeKnowledgeEvidence(existing: RoleKnowledgeEntry, incoming: Partial<Pick<RoleKnowledgeEntry, 'evidence' | 'learnedFrom' | 'sourceTaskId' | 'importance'>>, now?: Date): MergeResult;
172
+ /** Prefix of the evidence ref a superseded entry gets when a restatement replaced it. */
173
+ export declare const RESTATEMENT_REASON_PREFIX = "supersession-reason:restated";
174
+ /**
175
+ * A near-duplicate is the same fact said again, often with a correction
176
+ * ("I asserted X is a working symlink" → "X is a DANGLING symlink"), so the
177
+ * newest wording wins: the incoming entry becomes a new entry carrying the
178
+ * old one's provenance and reinforcement, and the old entry is marked
179
+ * superseded by it — hidden from recall, kept for audit, the same way
180
+ * `MemorySupersessionService.supersede` records an explicit supersession.
181
+ *
182
+ * @param old - Existing near-duplicate (mutated: superseded, evidence reason appended)
183
+ * @param incoming - Entry being written
184
+ * @param ids - The new entry's id and timestamp, and the match score for the audit ref
185
+ * @returns The new entry to store
186
+ *
187
+ * @example
188
+ * ```typescript
189
+ * const fresh = restateKnowledge(match.entry, entry, { id: uuidv4(), now: new Date(), score: match.score });
190
+ * memory.roleKnowledge.push(fresh);
191
+ * ```
192
+ */
193
+ export declare function restateKnowledge(old: RoleKnowledgeEntry, incoming: Omit<RoleKnowledgeEntry, 'id' | 'createdAt'>, ids: {
194
+ id: string;
195
+ now: Date;
196
+ score: number;
197
+ }): RoleKnowledgeEntry;
198
+ /**
199
+ * Which entry to evict when a store is full: the oldest superseded entry
200
+ * first (recall no longer shows it), else the lowest-confidence live one.
201
+ *
202
+ * @param knowledge - Entries
203
+ * @returns Index to remove, or -1 for an empty list
204
+ */
205
+ export declare function evictionIndex(knowledge: RoleKnowledgeEntry[]): number;
206
+ //# sourceMappingURL=knowledge-similarity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-similarity.d.ts","sourceRoot":"","sources":["../../../../../../backend/src/services/memory/knowledge-similarity.ts"],"names":[],"mappings":"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"}