@framers/agentos 0.15.54 → 0.15.56

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 (39) hide show
  1. package/dist/api/runtime/turn-phases/conversation-history.d.ts +4 -1
  2. package/dist/api/runtime/turn-phases/conversation-history.d.ts.map +1 -1
  3. package/dist/api/runtime/turn-phases/conversation-history.js +5 -2
  4. package/dist/api/runtime/turn-phases/conversation-history.js.map +1 -1
  5. package/dist/api/runtime/turn-phases/rolling-summary.d.ts +12 -0
  6. package/dist/api/runtime/turn-phases/rolling-summary.d.ts.map +1 -1
  7. package/dist/api/runtime/turn-phases/rolling-summary.js +12 -0
  8. package/dist/api/runtime/turn-phases/rolling-summary.js.map +1 -1
  9. package/dist/api/types/OrchestratorConfig.d.ts +10 -0
  10. package/dist/api/types/OrchestratorConfig.d.ts.map +1 -1
  11. package/dist/cognition/memory/io/CsvImporter.d.ts +4 -1
  12. package/dist/cognition/memory/io/CsvImporter.d.ts.map +1 -1
  13. package/dist/cognition/memory/io/CsvImporter.js +10 -5
  14. package/dist/cognition/memory/io/CsvImporter.js.map +1 -1
  15. package/dist/cognition/memory/io/JsonImporter.d.ts +37 -6
  16. package/dist/cognition/memory/io/JsonImporter.d.ts.map +1 -1
  17. package/dist/cognition/memory/io/JsonImporter.js +88 -8
  18. package/dist/cognition/memory/io/JsonImporter.js.map +1 -1
  19. package/dist/cognition/memory/io/SqliteImporter.d.ts +31 -3
  20. package/dist/cognition/memory/io/SqliteImporter.d.ts.map +1 -1
  21. package/dist/cognition/memory/io/SqliteImporter.js +72 -18
  22. package/dist/cognition/memory/io/SqliteImporter.js.map +1 -1
  23. package/dist/cognition/memory/io/facade/types.d.ts +14 -10
  24. package/dist/cognition/memory/io/facade/types.d.ts.map +1 -1
  25. package/dist/cognition/memory/io/importScope.d.ts +62 -2
  26. package/dist/cognition/memory/io/importScope.d.ts.map +1 -1
  27. package/dist/cognition/memory/io/importScope.js +82 -2
  28. package/dist/cognition/memory/io/importScope.js.map +1 -1
  29. package/dist/core/conversation/RollingSummaryCompactor.d.ts +20 -0
  30. package/dist/core/conversation/RollingSummaryCompactor.d.ts.map +1 -1
  31. package/dist/core/conversation/RollingSummaryCompactor.js +31 -9
  32. package/dist/core/conversation/RollingSummaryCompactor.js.map +1 -1
  33. package/dist/orchestration/checkpoint/ICheckpointStore.d.ts +13 -1
  34. package/dist/orchestration/checkpoint/ICheckpointStore.d.ts.map +1 -1
  35. package/dist/orchestration/runtime/GraphRuntime.d.ts +18 -4
  36. package/dist/orchestration/runtime/GraphRuntime.d.ts.map +1 -1
  37. package/dist/orchestration/runtime/GraphRuntime.js +84 -19
  38. package/dist/orchestration/runtime/GraphRuntime.js.map +1 -1
  39. package/package.json +1 -1
@@ -17,7 +17,10 @@ export interface ConversationHistoryPhaseInput {
17
17
  * Build a conversation history snapshot for prompt construction.
18
18
  * When rolling summary is active, trims history to head messages + unsummarized tail, and keeps a tool round (an
19
19
  * assistant message that names tool calls, the tool messages that answer them and anything between) whole when it
20
- * keeps any message of it: providers refuse a call without its result and a result without its call.
20
+ * keeps any message of it: providers refuse a call without its result and a result without its call. The head is the
21
+ * one the conversation's summary state records (`rollingSummaryResult.headMessagesToKeep`), which the turn's own
22
+ * `headMessagesToKeep` replaces only for a result that reports none, so a turn under a compaction profile with another
23
+ * head sends the messages the summary left to the head, and none it summarized.
21
24
  * Deduplicates the current user message if already in history.
22
25
  */
23
26
  export declare function assembleConversationHistory(input: ConversationHistoryPhaseInput): any[] | null;
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-history.d.ts","sourceRoot":"","sources":["../../../../src/api/runtime/turn-phases/conversation-history.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAE1F,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC1F,OAAO,KAAK,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,MAAM,oDAAoD,CAAC;AAIzI,MAAM,WAAW,6BAA6B;IAC5C,mBAAmB,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACrD,QAAQ,EAAE,YAAY,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,oBAAoB,EAAE,8BAA8B,GAAG,IAAI,CAAC;IAC5D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2BAA2B,EAAE,8BAA8B,GAAG,IAAI,CAAC;CACpE;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,6BAA6B,GAAG,GAAG,EAAE,GAAG,IAAI,CA2D9F"}
1
+ {"version":3,"file":"conversation-history.d.ts","sourceRoot":"","sources":["../../../../src/api/runtime/turn-phases/conversation-history.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAE1F,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAC1F,OAAO,KAAK,EAAE,8BAA8B,EAAE,8BAA8B,EAAE,MAAM,oDAAoD,CAAC;AAIzI,MAAM,WAAW,6BAA6B;IAC5C,mBAAmB,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACrD,QAAQ,EAAE,YAAY,CAAC;IACvB,qBAAqB,EAAE,OAAO,CAAC;IAC/B,oBAAoB,EAAE,8BAA8B,GAAG,IAAI,CAAC;IAC5D,kBAAkB,EAAE,MAAM,CAAC;IAC3B,2BAA2B,EAAE,8BAA8B,GAAG,IAAI,CAAC;CACpE;AAED;;;;;;;;;GASG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,6BAA6B,GAAG,GAAG,EAAE,GAAG,IAAI,CA8D9F"}
@@ -10,7 +10,10 @@ import { turnContentText } from '../../../cognition/substrate/turnContent.js';
10
10
  * Build a conversation history snapshot for prompt construction.
11
11
  * When rolling summary is active, trims history to head messages + unsummarized tail, and keeps a tool round (an
12
12
  * assistant message that names tool calls, the tool messages that answer them and anything between) whole when it
13
- * keeps any message of it: providers refuse a call without its result and a result without its call.
13
+ * keeps any message of it: providers refuse a call without its result and a result without its call. The head is the
14
+ * one the conversation's summary state records (`rollingSummaryResult.headMessagesToKeep`), which the turn's own
15
+ * `headMessagesToKeep` replaces only for a result that reports none, so a turn under a compaction profile with another
16
+ * head sends the messages the summary left to the head, and none it summarized.
14
17
  * Deduplicates the current user message if already in history.
15
18
  */
16
19
  export function assembleConversationHistory(input) {
@@ -40,7 +43,7 @@ export function assembleConversationHistory(input) {
40
43
  }
41
44
  // When rolling summary is active, keep head messages + unsummarized tail
42
45
  if (useTrimmedHistory) {
43
- const headCount = Math.max(0, input.rollingSummaryConfigForTurn?.headMessagesToKeep ?? 0);
46
+ const headCount = Math.max(0, input.rollingSummaryResult?.headMessagesToKeep ?? input.rollingSummaryConfigForTurn?.headMessagesToKeep ?? 0);
44
47
  const boundary = input.rollingSummaryResult.summaryUptoTimestamp;
45
48
  const inHeadOrTail = historyForPrompt.map((m, index) => index < headCount || m.timestamp > boundary);
46
49
  // A kept message keeps the rest of its tool round. The compactor ends a summary where a round ends, and this
@@ -1 +1 @@
1
- {"version":3,"file":"conversation-history.js","sourceRoot":"","sources":["../../../../src/api/runtime/turn-phases/conversation-history.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"conversation-history.js","sourceRoot":"","sources":["../../../../src/api/runtime/turn-phases/conversation-history.ts"],"names":[],"mappings":"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"}
@@ -24,5 +24,17 @@ export interface RollingSummaryPhaseResult {
24
24
  enabled: boolean;
25
25
  summaryText: string;
26
26
  }
27
+ /**
28
+ * Runs the turn's rolling-summary pass under the compaction profile the turn's mode picks (`defaultProfileByMode`, else
29
+ * `defaultProfileId`), or under the base settings when no profiles are configured or the picked one is not among them.
30
+ * Every profile reads and writes the conversation's one summary state (`rollingSummaryStateKey`), and that state keeps
31
+ * the head it was built with: the `headMessagesToKeep` of the pass that first wrote it stays the conversation's head
32
+ * under every profile, so a turn under a profile with another head neither leaves out nor repeats the messages between
33
+ * the two heads. The turn's profile sets the rest: whether the summary is on, the kept tail, the limits of a pass, the
34
+ * cooldown, the model and the system prompt.
35
+ *
36
+ * @param input - The turn's conversation, its mode, the base settings, the profiles and the state key.
37
+ * @returns The pass's result, the profile it ran under and its settings, and the summary text for the prompt.
38
+ */
27
39
  export declare function executeRollingSummaryPhase(input: RollingSummaryPhaseInput): Promise<RollingSummaryPhaseResult>;
28
40
  //# sourceMappingURL=rolling-summary.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rolling-summary.d.ts","sourceRoot":"","sources":["../../../../src/api/runtime/turn-phases/rolling-summary.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AACjG,OAAO,EAEL,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACpC,MAAM,oDAAoD,CAAC;AAC5D,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,gCAAgC,CAAC;AAe7F,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACrD,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,8BAA8B,EAAE,8BAA8B,GAAG,IAAI,CAAC;IACtE,sCAAsC,EAAE,sCAAsC,GAAG,IAAI,CAAC;IACtF,0BAA0B,EAAE,MAAM,CAAC;IACnC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,sBAAsB,CAAC;CAC9C;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,8BAA8B,GAAG,IAAI,CAAC;IAC9C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,8BAA8B,GAAG,IAAI,CAAC;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,yBAAyB,CAAC,CAmFpC"}
1
+ {"version":3,"file":"rolling-summary.d.ts","sourceRoot":"","sources":["../../../../src/api/runtime/turn-phases/rolling-summary.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gDAAgD,CAAC;AAC1F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oDAAoD,CAAC;AACjG,OAAO,EAEL,KAAK,8BAA8B,EACnC,KAAK,8BAA8B,EACpC,MAAM,oDAAoD,CAAC;AAC5D,OAAO,KAAK,EAAE,sCAAsC,EAAE,MAAM,gCAAgC,CAAC;AAe7F,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACrD,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,8BAA8B,EAAE,8BAA8B,GAAG,IAAI,CAAC;IACtE,sCAAsC,EAAE,sCAAsC,GAAG,IAAI,CAAC;IACtF,0BAA0B,EAAE,MAAM,CAAC;IACnC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,oBAAoB,EAAE,sBAAsB,CAAC;CAC9C;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,8BAA8B,GAAG,IAAI,CAAC;IAC9C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,8BAA8B,GAAG,IAAI,CAAC;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,0BAA0B,CAC9C,KAAK,EAAE,wBAAwB,GAC9B,OAAO,CAAC,yBAAyB,CAAC,CAmFpC"}
@@ -17,6 +17,18 @@ function pickByMode(map, mode) {
17
17
  .sort((a, b) => b.key.length - a.key.length)[0];
18
18
  return match?.value ?? null;
19
19
  }
20
+ /**
21
+ * Runs the turn's rolling-summary pass under the compaction profile the turn's mode picks (`defaultProfileByMode`, else
22
+ * `defaultProfileId`), or under the base settings when no profiles are configured or the picked one is not among them.
23
+ * Every profile reads and writes the conversation's one summary state (`rollingSummaryStateKey`), and that state keeps
24
+ * the head it was built with: the `headMessagesToKeep` of the pass that first wrote it stays the conversation's head
25
+ * under every profile, so a turn under a profile with another head neither leaves out nor repeats the messages between
26
+ * the two heads. The turn's profile sets the rest: whether the summary is on, the kept tail, the limits of a pass, the
27
+ * cooldown, the model and the system prompt.
28
+ *
29
+ * @param input - The turn's conversation, its mode, the base settings, the profiles and the state key.
30
+ * @returns The pass's result, the profile it ran under and its settings, and the summary text for the prompt.
31
+ */
20
32
  export async function executeRollingSummaryPhase(input) {
21
33
  let configForTurn = input.rollingSummaryCompactionConfig;
22
34
  let systemPromptForTurn = input.rollingSummarySystemPrompt;
@@ -1 +1 @@
1
- {"version":3,"file":"rolling-summary.js","sourceRoot":"","sources":["../../../../src/api/runtime/turn-phases/rolling-summary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rolling-summary.js","sourceRoot":"","sources":["../../../../src/api/runtime/turn-phases/rolling-summary.ts"],"names":[],"mappings":"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"}
@@ -17,6 +17,12 @@ export interface RollingSummaryCompactionProfileDefinition {
17
17
  config: RollingSummaryCompactionConfig;
18
18
  systemPrompt?: string;
19
19
  }
20
+ /**
21
+ * Rolling-summary compaction profiles, one picked for each turn by the turn's mode (`customFlags.mode`, else the persona
22
+ * id): the profile `defaultProfileByMode` maps the mode to, else `defaultProfileId`. The profiles share the
23
+ * conversation's one summary state (`rollingSummaryStateKey`), and the `headMessagesToKeep` of the pass that first
24
+ * wrote it stays the conversation's head under every profile.
25
+ */
20
26
  export interface RollingSummaryCompactionProfilesConfig {
21
27
  defaultProfileId: string;
22
28
  defaultProfileByMode?: Record<string, string>;
@@ -70,6 +76,10 @@ export interface AgentOSOrchestratorConfig {
70
76
  rollingSummaryCompactionConfig?: RollingSummaryCompactionConfig | null;
71
77
  rollingSummaryCompactionProfilesConfig?: RollingSummaryCompactionProfilesConfig | null;
72
78
  rollingSummarySystemPrompt?: string;
79
+ /**
80
+ * The conversation metadata key that holds the rolling summary's state (`rollingSummaryState` by default): the
81
+ * summary, its boundary and the head it was built with. Every compaction profile reads and writes this one state.
82
+ */
73
83
  rollingSummaryStateKey?: string;
74
84
  longTermMemoryRecall?: AgentOSLongTermMemoryRecallConfig;
75
85
  tenantRouting?: AgentOSTenantRoutingConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"OrchestratorConfig.d.ts","sourceRoot":"","sources":["../../../src/api/types/OrchestratorConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OrchestratorConfig.d.ts","sourceRoot":"","sources":["../../../src/api/types/OrchestratorConfig.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,10 @@
27
27
  * it. An imported row stores the hash in `metadata.import_hash`. A trace a
28
28
  * release older than `memory_traces.scope_id` wrote holds `''` in that column
29
29
  * whatever scope id its metadata names; the import files such traces under
30
- * that scope id before its first duplicate check (`fillScopeIds`).
30
+ * that scope id before its first duplicate check (`fillScopeIds`). The import
31
+ * reads the rows whose `deleted` cell is blank or zero before the others
32
+ * (`liveRecordsFirst`), so a text the file holds both forgotten and live
33
+ * arrives live.
31
34
  *
32
35
  * @module memory/io/CsvImporter
33
36
  */
@@ -1 +1 @@
1
- {"version":3,"file":"CsvImporter.d.ts","sourceRoot":"","sources":["../../../../src/cognition/memory/io/CsvImporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAIzD;;GAEG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAEzC;;;;;OAKG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAe/F;;;;;OAKG;IACG,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,YAAY,CAAC;IAKxB;;;;;;OAMG;YACW,iBAAiB;YA+HjB,OAAO;YAIP,eAAe;IAW7B,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,UAAU;IAsBlB;;;OAGG;IACH,OAAO,CAAC,SAAS;CAsElB"}
1
+ {"version":3,"file":"CsvImporter.d.ts","sourceRoot":"","sources":["../../../../src/cognition/memory/io/CsvImporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAIzD;;GAEG;AACH,qBAAa,WAAW;IACV,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAAL,KAAK,EAAE,KAAK;IAEzC;;;;;OAKG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAe/F;;;;;OAKG;IACG,gBAAgB,CACpB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,YAAY,CAAC;IAKxB;;;;;;OAMG;YACW,iBAAiB;YAmIjB,OAAO;YAIP,eAAe;IAW7B,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,UAAU;IAsBlB;;;OAGG;IACH,OAAO,CAAC,SAAS;CAsElB"}
@@ -27,13 +27,16 @@
27
27
  * it. An imported row stores the hash in `metadata.import_hash`. A trace a
28
28
  * release older than `memory_traces.scope_id` wrote holds `''` in that column
29
29
  * whatever scope id its metadata names; the import files such traces under
30
- * that scope id before its first duplicate check (`fillScopeIds`).
30
+ * that scope id before its first duplicate check (`fillScopeIds`). The import
31
+ * reads the rows whose `deleted` cell is blank or zero before the others
32
+ * (`liveRecordsFirst`), so a text the file holds both forgotten and live
33
+ * arrives live.
31
34
  *
32
35
  * @module memory/io/CsvImporter
33
36
  */
34
37
  import { sha256 } from '../core/util/crossPlatformCrypto.js';
35
38
  import { v4 as uuidv4 } from 'uuid';
36
- import { duplicateTraceCondition, duplicateTraceParams, importedScopeId } from './importScope.js';
39
+ import { duplicateTraceCondition, duplicateTraceParams, importedScopeId, liveRecordsFirst } from './importScope.js';
37
40
  import { fillScopeIds } from '../retrieval/store/migrations/v2-to-v3.js';
38
41
  /**
39
42
  * Imports a flat CSV file into a `Brain`.
@@ -103,6 +106,8 @@ export class CsvImporter {
103
106
  const tagsIndex = indexOf('tags');
104
107
  const metadataIndex = indexOf('metadata');
105
108
  const scopeIdIndex = indexOf('scope_id');
109
+ // A row's `deleted` cell as the trace stores it: blank or not a number is 0, a live trace.
110
+ const deletedOf = (row) => this._toInteger(deletedIndex >= 0 ? row[deletedIndex] ?? '' : '') ?? 0;
106
111
  const brainId = this.brain.brainId;
107
112
  const checkSql = `SELECT id
108
113
  FROM memory_traces
@@ -117,7 +122,8 @@ export class CsvImporter {
117
122
  // A trace an older release wrote holds scope_id '': filed under its scope id first, it is found there.
118
123
  if (options?.dedup ?? true)
119
124
  await fillScopeIds(trx, brainId);
120
- for (const row of dataRows) {
125
+ // The live rows first, so of two rows of one text, the forgotten one is the duplicate of the live one, never the reverse.
126
+ for (const row of liveRecordsFirst(dataRows, (candidate) => deletedOf(candidate) !== 0)) {
121
127
  try {
122
128
  const content = (row[contentIndex] ?? '').trim();
123
129
  if (!content) {
@@ -161,7 +167,6 @@ export class CsvImporter {
161
167
  const rawLastAccessed = lastAccessedIndex >= 0 ? row[lastAccessedIndex] ?? '' : '';
162
168
  const rawRetrievalCount = retrievalCountIndex >= 0 ? row[retrievalCountIndex] ?? '' : '';
163
169
  const rawStrength = strengthIndex >= 0 ? row[strengthIndex] ?? '' : '';
164
- const rawDeleted = deletedIndex >= 0 ? row[deletedIndex] ?? '' : '';
165
170
  const preferredId = this._readCell(row, idIndex) || `mt_${uuidv4()}`;
166
171
  const traceId = await this._resolveTraceId(trx, preferredId);
167
172
  await trx.run(insertSql, [
@@ -176,7 +181,7 @@ export class CsvImporter {
176
181
  this._toInteger(rawRetrievalCount) ?? 0,
177
182
  JSON.stringify(this._parseTags(tagsIndex >= 0 ? row[tagsIndex] ?? '' : '')),
178
183
  JSON.stringify(metadata),
179
- this._toInteger(rawDeleted) ?? 0,
184
+ deletedOf(row),
180
185
  scopeId,
181
186
  ]);
182
187
  result.imported++;
@@ -1 +1 @@
1
- {"version":3,"file":"CsvImporter.js","sourceRoot":"","sources":["../../../../src/cognition/memory/io/CsvImporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CsvImporter.js","sourceRoot":"","sources":["../../../../src/cognition/memory/io/CsvImporter.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,12 @@
12
12
  * `{ dedup: false }` on the importer or `Memory.importFrom`. A trace a release
13
13
  * older than `memory_traces.scope_id` wrote holds `''` in that column whatever
14
14
  * scope id its metadata names; the import files such traces under that scope
15
- * id before its first duplicate check (`fillScopeIds`).
15
+ * id before its first duplicate check (`fillScopeIds`). The import reads the
16
+ * file's live trace records before its forgotten ones (`liveRecordsFirst`), so
17
+ * a text the file holds both forgotten and live arrives live. A trace's
18
+ * memory-graph node comes in with its trace alone, under its trace's id
19
+ * (`memoryGraphNodeImport`): the node of a record merged into another trace is
20
+ * skipped, with the edges that name it.
16
21
  *
17
22
  * @module memory/io/JsonImporter
18
23
  */
@@ -46,8 +51,13 @@ export declare class JsonImporter {
46
51
  * `content` is the record's, or whose metadata names the SHA-256 of that
47
52
  * text as `import_hash` or `content_hash`, makes the record a duplicate,
48
53
  * and it is skipped; a row of another scope id is not a duplicate.
49
- * - For `knowledge_nodes`: SHA-256 of `label` + `type`.
50
- * - For `knowledge_edges`: SHA-256 of `source_id` + `target_id` + `type`.
54
+ * - For `knowledge_nodes`: SHA-256 of `label` + `type`. A memory-graph node
55
+ * (`type` `memory_graph`) is its trace's node instead: it is written
56
+ * under its trace's id for a trace the import wrote or matched under that
57
+ * id, is the duplicate of the node the brain holds under that id, or is
58
+ * skipped (see `memoryGraphNodeImport`).
59
+ * - For `knowledge_edges`: SHA-256 of `source_id` + `target_id` + `type`. An
60
+ * edge that names a memory-graph node the import skipped is skipped.
51
61
  *
52
62
  * @param sourcePath - Absolute path to the JSON file to import.
53
63
  * @returns `ImportResult` with counts of imported, skipped, and errored items.
@@ -88,7 +98,10 @@ export declare class JsonImporter {
88
98
  * Each trace is filed under its scope and scope id (see `importedScopeId`)
89
99
  * and deduplicated inside them (see `duplicateTraceCondition`): if a trace of
90
100
  * the same scope and scope id holds the record's text, or names its hash, the
91
- * record is skipped and its id maps to that trace's.
101
+ * record is skipped and its id maps to that trace's. The live records are
102
+ * read before the forgotten ones (see `liveRecordsFirst`), so of two records
103
+ * of one text, the forgotten one is the duplicate of the live one, never the
104
+ * reverse.
92
105
  *
93
106
  * @param trx - Transactional storage adapter.
94
107
  * @param traces - Array of serialised trace objects from the export.
@@ -98,18 +111,36 @@ export declare class JsonImporter {
98
111
  /**
99
112
  * Import knowledge node records into `knowledge_nodes`.
100
113
  *
101
- * Dedup key: SHA-256 of `label` concatenated with `type`.
114
+ * Dedup key: SHA-256 of `label` concatenated with `type`. A memory-graph
115
+ * node comes in with its trace alone, under its trace's id (see
116
+ * `_importMemoryGraphNode`).
102
117
  *
103
118
  * @param trx - Transactional storage adapter.
104
119
  * @param nodes - Array of serialised node objects.
105
120
  * @param result - Mutable `ImportResult` to accumulate counts.
106
121
  */
107
122
  private _importNodes;
123
+ /**
124
+ * Import a memory-graph node record (`type` `memory_graph`), the node of the
125
+ * trace whose id it carries. It comes in with its trace alone and under that
126
+ * id (see `memoryGraphNodeImport`): written under that id, the duplicate of
127
+ * the node the brain holds under it, whose id the record's edges then name,
128
+ * or skipped, and then the edges that name it are skipped too.
129
+ *
130
+ * @param trx - Transactional storage adapter.
131
+ * @param n - The node record.
132
+ * @param result - Mutable `ImportResult` to accumulate counts.
133
+ * @param context - The import's id maps and the payload's trace ids.
134
+ * @param insertSql - The statement that inserts a knowledge node.
135
+ */
136
+ private _importMemoryGraphNode;
108
137
  /**
109
138
  * Import knowledge edge records into `knowledge_edges`.
110
139
  *
111
140
  * Dedup key: SHA-256 of `source_id + target_id + type`.
112
- * Edges referencing non-existent nodes are silently skipped (FK constraint).
141
+ * Edges referencing non-existent nodes are silently skipped (FK constraint),
142
+ * and an edge that names a memory-graph node the node import skipped is
143
+ * skipped.
113
144
  *
114
145
  * @param trx - Transactional storage adapter.
115
146
  * @param edges - Array of serialised edge objects.
@@ -1 +1 @@
1
- {"version":3,"file":"JsonImporter.d.ts","sourceRoot":"","sources":["../../../../src/cognition/memory/io/JsonImporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAyIzD;;;;;;;;;GASG;AACH,qBAAa,YAAY;IAIX,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHlC;;OAEG;gBAC0B,KAAK,EAAE,KAAK;IAMzC;;;;;;;;;;;;;;;;;OAiBG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAgB/F;;;;;OAKG;IACG,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,YAAY,CAAC;IAKxB;;;;;;OAMG;YACW,aAAa;IAiD3B;;;;;;OAMG;YACW,OAAO;IAIrB;;;;OAIG;YACW,WAAW;IAmBzB;;;;;;;;;;;OAWG;YACW,aAAa;IAiF3B;;;;;;;;OAQG;YACW,YAAY;IA+D1B;;;;;;;;;OASG;YACW,YAAY;IA8D1B;;;;OAIG;YACW,gBAAgB;IA8C9B;;OAEG;YACW,aAAa;IA0D3B;;OAEG;YACW,aAAa;IAwD3B;;;;;OAKG;YACW,oBAAoB;IA4ClC;;OAEG;YACW,eAAe;YA8Cf,gBAAgB;CAY/B"}
1
+ {"version":3,"file":"JsonImporter.d.ts","sourceRoot":"","sources":["../../../../src/cognition/memory/io/JsonImporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,6BAA6B,CAAC;AAuJzD;;;;;;;;;GASG;AACH,qBAAa,YAAY;IAIX,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHlC;;OAEG;gBAC0B,KAAK,EAAE,KAAK;IAMzC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC;IAgB/F;;;;;OAKG;IACG,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,GACrC,OAAO,CAAC,YAAY,CAAC;IAKxB;;;;;;OAMG;YACW,aAAa;IAoD3B;;;;;;OAMG;YACW,OAAO;IAIrB;;;;OAIG;YACW,WAAW;IAmBzB;;;;;;;;;;;;;;OAcG;YACW,aAAa;IAqF3B;;;;;;;;;;OAUG;YACW,YAAY;IAoE1B;;;;;;;;;;;;OAYG;YACW,sBAAsB;IA6CpC;;;;;;;;;;;OAWG;YACW,YAAY;IAsE1B;;;;OAIG;YACW,gBAAgB;IA8C9B;;OAEG;YACW,aAAa;IA0D3B;;OAEG;YACW,aAAa;IAwD3B;;;;;OAKG;YACW,oBAAoB;IA4ClC;;OAEG;YACW,eAAe;YA8Cf,gBAAgB;CAY/B"}
@@ -12,14 +12,19 @@
12
12
  * `{ dedup: false }` on the importer or `Memory.importFrom`. A trace a release
13
13
  * older than `memory_traces.scope_id` wrote holds `''` in that column whatever
14
14
  * scope id its metadata names; the import files such traces under that scope
15
- * id before its first duplicate check (`fillScopeIds`).
15
+ * id before its first duplicate check (`fillScopeIds`). The import reads the
16
+ * file's live trace records before its forgotten ones (`liveRecordsFirst`), so
17
+ * a text the file holds both forgotten and live arrives live. A trace's
18
+ * memory-graph node comes in with its trace alone, under its trace's id
19
+ * (`memoryGraphNodeImport`): the node of a record merged into another trace is
20
+ * skipped, with the edges that name it.
16
21
  *
17
22
  * @module memory/io/JsonImporter
18
23
  */
19
24
  import { sha256 } from '../core/util/crossPlatformCrypto.js';
20
25
  import { v4 as uuidv4 } from 'uuid';
21
26
  import { base64ToBytes } from './base64.js';
22
- import { duplicateTraceCondition, duplicateTraceParams, importedScopeId } from './importScope.js';
27
+ import { duplicateTraceCondition, duplicateTraceParams, importedScopeId, isForgottenRecord, liveRecordsFirst, MEMORY_GRAPH_NODE_TYPE, memoryGraphNodeImport, } from './importScope.js';
23
28
  import { fillScopeIds } from '../retrieval/store/migrations/v2-to-v3.js';
24
29
  import { parseTraceMetadata } from '../retrieval/store/tracePersistence.js';
25
30
  // ---------------------------------------------------------------------------
@@ -57,8 +62,13 @@ export class JsonImporter {
57
62
  * `content` is the record's, or whose metadata names the SHA-256 of that
58
63
  * text as `import_hash` or `content_hash`, makes the record a duplicate,
59
64
  * and it is skipped; a row of another scope id is not a duplicate.
60
- * - For `knowledge_nodes`: SHA-256 of `label` + `type`.
61
- * - For `knowledge_edges`: SHA-256 of `source_id` + `target_id` + `type`.
65
+ * - For `knowledge_nodes`: SHA-256 of `label` + `type`. A memory-graph node
66
+ * (`type` `memory_graph`) is its trace's node instead: it is written
67
+ * under its trace's id for a trace the import wrote or matched under that
68
+ * id, is the duplicate of the node the brain holds under that id, or is
69
+ * skipped (see `memoryGraphNodeImport`).
70
+ * - For `knowledge_edges`: SHA-256 of `source_id` + `target_id` + `type`. An
71
+ * edge that names a memory-graph node the import skipped is skipped.
62
72
  *
63
73
  * @param sourcePath - Absolute path to the JSON file to import.
64
74
  * @returns `ImportResult` with counts of imported, skipped, and errored items.
@@ -111,6 +121,9 @@ export class JsonImporter {
111
121
  const context = {
112
122
  dedup: options?.dedup ?? true,
113
123
  traceIds: new Map(),
124
+ sourceTraceIds: new Set(),
125
+ filedTraceIds: new Set(),
126
+ skippedNodeIds: new Set(),
114
127
  nodeIds: new Map(),
115
128
  documentIds: new Map(),
116
129
  chunkIds: new Map(),
@@ -167,7 +180,10 @@ export class JsonImporter {
167
180
  * Each trace is filed under its scope and scope id (see `importedScopeId`)
168
181
  * and deduplicated inside them (see `duplicateTraceCondition`): if a trace of
169
182
  * the same scope and scope id holds the record's text, or names its hash, the
170
- * record is skipped and its id maps to that trace's.
183
+ * record is skipped and its id maps to that trace's. The live records are
184
+ * read before the forgotten ones (see `liveRecordsFirst`), so of two records
185
+ * of one text, the forgotten one is the duplicate of the live one, never the
186
+ * reverse.
171
187
  *
172
188
  * @param trx - Transactional storage adapter.
173
189
  * @param traces - Array of serialised trace objects from the export.
@@ -183,8 +199,11 @@ export class JsonImporter {
183
199
  (brain_id, id, type, scope, content, embedding, strength, created_at, last_accessed,
184
200
  retrieval_count, tags, emotions, metadata, deleted, scope_id)
185
201
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`;
186
- for (const t of traces) {
202
+ for (const t of liveRecordsFirst(traces, isForgottenRecord)) {
187
203
  try {
204
+ // A record that is not an object fails here, as an error of its own.
205
+ if (t.id)
206
+ context.sourceTraceIds.add(t.id);
188
207
  const hash = await this._sha256(t.content);
189
208
  const sourceId = t.id;
190
209
  const scope = t.scope ?? 'user';
@@ -199,6 +218,8 @@ export class JsonImporter {
199
218
  if (existing) {
200
219
  if (sourceId)
201
220
  context.traceIds.set(sourceId, existing.id);
221
+ if (sourceId && existing.id === sourceId)
222
+ context.filedTraceIds.add(sourceId);
202
223
  result.skipped++;
203
224
  continue;
204
225
  }
@@ -230,6 +251,8 @@ export class JsonImporter {
230
251
  ]);
231
252
  if (sourceId)
232
253
  context.traceIds.set(sourceId, id);
254
+ if (sourceId && id === sourceId)
255
+ context.filedTraceIds.add(sourceId);
233
256
  result.imported++;
234
257
  }
235
258
  catch (err) {
@@ -240,7 +263,9 @@ export class JsonImporter {
240
263
  /**
241
264
  * Import knowledge node records into `knowledge_nodes`.
242
265
  *
243
- * Dedup key: SHA-256 of `label` concatenated with `type`.
266
+ * Dedup key: SHA-256 of `label` concatenated with `type`. A memory-graph
267
+ * node comes in with its trace alone, under its trace's id (see
268
+ * `_importMemoryGraphNode`).
244
269
  *
245
270
  * @param trx - Transactional storage adapter.
246
271
  * @param nodes - Array of serialised node objects.
@@ -253,6 +278,10 @@ export class JsonImporter {
253
278
  const insertSql = dialect.insertOrIgnore('knowledge_nodes', ['brain_id', 'id', 'type', 'label', 'properties', 'embedding', 'confidence', 'source', 'created_at'], ['?', '?', '?', '?', '?', '?', '?', '?', '?']);
254
279
  for (const n of nodes) {
255
280
  try {
281
+ if (n.type === MEMORY_GRAPH_NODE_TYPE) {
282
+ await this._importMemoryGraphNode(trx, n, result, context, insertSql);
283
+ continue;
284
+ }
256
285
  const hash = await this._sha256(`${n.label ?? ''}::${n.type ?? ''}`);
257
286
  const sourceId = n.id;
258
287
  const existing = await trx.get(checkSql, [brainId, hash]);
@@ -290,11 +319,57 @@ export class JsonImporter {
290
319
  }
291
320
  }
292
321
  }
322
+ /**
323
+ * Import a memory-graph node record (`type` `memory_graph`), the node of the
324
+ * trace whose id it carries. It comes in with its trace alone and under that
325
+ * id (see `memoryGraphNodeImport`): written under that id, the duplicate of
326
+ * the node the brain holds under it, whose id the record's edges then name,
327
+ * or skipped, and then the edges that name it are skipped too.
328
+ *
329
+ * @param trx - Transactional storage adapter.
330
+ * @param n - The node record.
331
+ * @param result - Mutable `ImportResult` to accumulate counts.
332
+ * @param context - The import's id maps and the payload's trace ids.
333
+ * @param insertSql - The statement that inserts a knowledge node.
334
+ */
335
+ async _importMemoryGraphNode(trx, n, result, context, insertSql) {
336
+ const take = await memoryGraphNodeImport(trx, this.brain.brainId, n.id, (traceId) => context.sourceTraceIds.has(traceId) && !context.filedTraceIds.has(traceId));
337
+ if (take.action === 'skip') {
338
+ if (n.id !== undefined)
339
+ context.skippedNodeIds.add(n.id);
340
+ result.skipped++;
341
+ return;
342
+ }
343
+ if (take.action === 'duplicate') {
344
+ context.nodeIds.set(take.id, take.id);
345
+ result.skipped++;
346
+ return;
347
+ }
348
+ // Properties that are not a JSON object (malformed text, an array, null) start fresh and keep the import hash.
349
+ const props = parseTraceMetadata(n.properties);
350
+ props['import_hash'] = await this._sha256(`${n.label ?? ''}::${MEMORY_GRAPH_NODE_TYPE}`);
351
+ const embeddingBuf = typeof n.embedding === 'string' ? base64ToBytes(n.embedding) : null;
352
+ await trx.run(insertSql, [
353
+ this.brain.brainId,
354
+ take.id,
355
+ MEMORY_GRAPH_NODE_TYPE,
356
+ n.label ?? take.id,
357
+ JSON.stringify(props),
358
+ embeddingBuf,
359
+ n.confidence ?? 1.0,
360
+ n.source ?? '{}',
361
+ n.created_at ?? Date.now(),
362
+ ]);
363
+ context.nodeIds.set(take.id, take.id);
364
+ result.imported++;
365
+ }
293
366
  /**
294
367
  * Import knowledge edge records into `knowledge_edges`.
295
368
  *
296
369
  * Dedup key: SHA-256 of `source_id + target_id + type`.
297
- * Edges referencing non-existent nodes are silently skipped (FK constraint).
370
+ * Edges referencing non-existent nodes are silently skipped (FK constraint),
371
+ * and an edge that names a memory-graph node the node import skipped is
372
+ * skipped.
298
373
  *
299
374
  * @param trx - Transactional storage adapter.
300
375
  * @param edges - Array of serialised edge objects.
@@ -307,6 +382,11 @@ export class JsonImporter {
307
382
  const insertSql = dialect.insertOrIgnore('knowledge_edges', ['brain_id', 'id', 'source_id', 'target_id', 'type', 'weight', 'bidirectional', 'metadata', 'created_at'], ['?', '?', '?', '?', '?', '?', '?', '?', '?']);
308
383
  for (const e of edges) {
309
384
  try {
385
+ if ((e.source_id !== undefined && context.skippedNodeIds.has(e.source_id)) ||
386
+ (e.target_id !== undefined && context.skippedNodeIds.has(e.target_id))) {
387
+ result.skipped++;
388
+ continue;
389
+ }
310
390
  const sourceId = e.source_id ? (context.nodeIds.get(e.source_id) ?? e.source_id) : null;
311
391
  const targetId = e.target_id ? (context.nodeIds.get(e.target_id) ?? e.target_id) : null;
312
392
  if (!sourceId || !targetId) {