memo-grafter 0.2.7 → 0.3.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 (205) hide show
  1. package/README.md +26 -0
  2. package/USER_GUIDE.md +262 -17
  3. package/dist/MemoGrafter.d.ts +11 -5
  4. package/dist/MemoGrafter.d.ts.map +1 -1
  5. package/dist/MemoGrafter.js +64 -4
  6. package/dist/MemoGrafter.js.map +1 -1
  7. package/dist/MemoGrafterAgent.d.ts +8 -1
  8. package/dist/MemoGrafterAgent.d.ts.map +1 -1
  9. package/dist/MemoGrafterAgent.js +31 -2
  10. package/dist/MemoGrafterAgent.js.map +1 -1
  11. package/dist/adapters/AnthropicAdapter.d.ts +1 -1
  12. package/dist/adapters/AnthropicAdapter.d.ts.map +1 -1
  13. package/dist/adapters/GeminiAdapter.d.ts +1 -1
  14. package/dist/adapters/GeminiAdapter.d.ts.map +1 -1
  15. package/dist/adapters/OpenAIAdapter.d.ts +1 -1
  16. package/dist/adapters/OpenAIAdapter.d.ts.map +1 -1
  17. package/dist/adapters/types.d.ts +1 -1
  18. package/dist/adapters/types.d.ts.map +1 -1
  19. package/dist/agents/MemoGrafterAgent.d.ts +45 -0
  20. package/dist/agents/MemoGrafterAgent.d.ts.map +1 -0
  21. package/dist/agents/MemoGrafterAgent.js +278 -0
  22. package/dist/agents/MemoGrafterAgent.js.map +1 -0
  23. package/dist/agents/fleet/ConductorAgent.d.ts +15 -0
  24. package/dist/agents/fleet/ConductorAgent.d.ts.map +1 -0
  25. package/dist/agents/fleet/ConductorAgent.js +41 -0
  26. package/dist/agents/fleet/ConductorAgent.js.map +1 -0
  27. package/dist/agents/fleet/FleetStore.d.ts +12 -0
  28. package/dist/agents/fleet/FleetStore.d.ts.map +1 -0
  29. package/dist/agents/fleet/FleetStore.js +30 -0
  30. package/dist/agents/fleet/FleetStore.js.map +1 -0
  31. package/dist/agents/fleet/MemoGrafterFleet.d.ts +27 -0
  32. package/dist/agents/fleet/MemoGrafterFleet.d.ts.map +1 -0
  33. package/dist/agents/fleet/MemoGrafterFleet.js +87 -0
  34. package/dist/agents/fleet/MemoGrafterFleet.js.map +1 -0
  35. package/dist/agents/fleet/WorkerAgent.d.ts +36 -0
  36. package/dist/agents/fleet/WorkerAgent.d.ts.map +1 -0
  37. package/dist/agents/fleet/WorkerAgent.js +140 -0
  38. package/dist/agents/fleet/WorkerAgent.js.map +1 -0
  39. package/dist/agents/fleet/types.d.ts +58 -0
  40. package/dist/agents/fleet/types.d.ts.map +1 -0
  41. package/dist/agents/fleet/types.js +2 -0
  42. package/dist/agents/fleet/types.js.map +1 -0
  43. package/dist/cli/commands/init.d.ts +8 -0
  44. package/dist/cli/commands/init.d.ts.map +1 -0
  45. package/dist/cli/commands/init.js +124 -0
  46. package/dist/cli/commands/init.js.map +1 -0
  47. package/dist/cli/commands/migrate.d.ts +6 -0
  48. package/dist/cli/commands/migrate.d.ts.map +1 -0
  49. package/dist/cli/commands/migrate.js +34 -0
  50. package/dist/cli/commands/migrate.js.map +1 -0
  51. package/dist/cli/index.d.ts +3 -0
  52. package/dist/cli/index.d.ts.map +1 -0
  53. package/dist/cli/index.js +39 -0
  54. package/dist/cli/index.js.map +1 -0
  55. package/dist/cli/utils/config.d.ts +11 -0
  56. package/dist/cli/utils/config.d.ts.map +1 -0
  57. package/dist/cli/utils/config.js +92 -0
  58. package/dist/cli/utils/config.js.map +1 -0
  59. package/dist/cli/utils/logger.d.ts +7 -0
  60. package/dist/cli/utils/logger.d.ts.map +1 -0
  61. package/dist/cli/utils/logger.js +15 -0
  62. package/dist/cli/utils/logger.js.map +1 -0
  63. package/dist/core/MemoGrafter.d.ts +46 -0
  64. package/dist/core/MemoGrafter.d.ts.map +1 -0
  65. package/dist/core/MemoGrafter.js +236 -0
  66. package/dist/core/MemoGrafter.js.map +1 -0
  67. package/dist/core/types.d.ts +319 -0
  68. package/dist/core/types.d.ts.map +1 -0
  69. package/dist/core/types.js +2 -0
  70. package/dist/core/types.js.map +1 -0
  71. package/dist/crawler/DecayScoringPass.d.ts.map +1 -1
  72. package/dist/crawler/DecayScoringPass.js +6 -0
  73. package/dist/crawler/DecayScoringPass.js.map +1 -1
  74. package/dist/crawler/memoryMaintenance.d.ts +1 -0
  75. package/dist/crawler/memoryMaintenance.d.ts.map +1 -1
  76. package/dist/crawler/memoryMaintenance.js +2 -1
  77. package/dist/crawler/memoryMaintenance.js.map +1 -1
  78. package/dist/crawler/types.d.ts +1 -0
  79. package/dist/crawler/types.d.ts.map +1 -1
  80. package/dist/fleet/MemoGrafterFleet.d.ts +9 -2
  81. package/dist/fleet/MemoGrafterFleet.d.ts.map +1 -1
  82. package/dist/fleet/MemoGrafterFleet.js +39 -1
  83. package/dist/fleet/MemoGrafterFleet.js.map +1 -1
  84. package/dist/fleet/WorkerAgent.d.ts +9 -4
  85. package/dist/fleet/WorkerAgent.d.ts.map +1 -1
  86. package/dist/fleet/WorkerAgent.js +45 -3
  87. package/dist/fleet/WorkerAgent.js.map +1 -1
  88. package/dist/fleet/types.d.ts +21 -2
  89. package/dist/fleet/types.d.ts.map +1 -1
  90. package/dist/index.d.ts +13 -12
  91. package/dist/index.d.ts.map +1 -1
  92. package/dist/index.js +9 -9
  93. package/dist/index.js.map +1 -1
  94. package/dist/ingestion/IngestQueue.d.ts +17 -0
  95. package/dist/ingestion/IngestQueue.d.ts.map +1 -0
  96. package/dist/ingestion/IngestQueue.js +123 -0
  97. package/dist/ingestion/IngestQueue.js.map +1 -0
  98. package/dist/ingestion/conversation/IngestPipeline.d.ts +41 -0
  99. package/dist/ingestion/conversation/IngestPipeline.d.ts.map +1 -0
  100. package/dist/ingestion/conversation/IngestPipeline.js +189 -0
  101. package/dist/ingestion/conversation/IngestPipeline.js.map +1 -0
  102. package/dist/ingestion/conversation/SegmentProcessor.d.ts +20 -0
  103. package/dist/ingestion/conversation/SegmentProcessor.d.ts.map +1 -0
  104. package/dist/ingestion/conversation/SegmentProcessor.js +110 -0
  105. package/dist/ingestion/conversation/SegmentProcessor.js.map +1 -0
  106. package/dist/ingestion/conversation/TopicDriftDetector.d.ts +40 -0
  107. package/dist/ingestion/conversation/TopicDriftDetector.d.ts.map +1 -0
  108. package/dist/ingestion/conversation/TopicDriftDetector.js +222 -0
  109. package/dist/ingestion/conversation/TopicDriftDetector.js.map +1 -0
  110. package/dist/maintenance/ConflictDetectionPass.d.ts +6 -0
  111. package/dist/maintenance/ConflictDetectionPass.d.ts.map +1 -0
  112. package/dist/maintenance/ConflictDetectionPass.js +46 -0
  113. package/dist/maintenance/ConflictDetectionPass.js.map +1 -0
  114. package/dist/maintenance/DecayScoringPass.d.ts +17 -0
  115. package/dist/maintenance/DecayScoringPass.d.ts.map +1 -0
  116. package/dist/maintenance/DecayScoringPass.js +79 -0
  117. package/dist/maintenance/DecayScoringPass.js.map +1 -0
  118. package/dist/maintenance/MemoGrafterCrawler.d.ts +14 -0
  119. package/dist/maintenance/MemoGrafterCrawler.d.ts.map +1 -0
  120. package/dist/maintenance/MemoGrafterCrawler.js +108 -0
  121. package/dist/maintenance/MemoGrafterCrawler.js.map +1 -0
  122. package/dist/maintenance/VersioningPass.d.ts +6 -0
  123. package/dist/maintenance/VersioningPass.d.ts.map +1 -0
  124. package/dist/maintenance/VersioningPass.js +40 -0
  125. package/dist/maintenance/VersioningPass.js.map +1 -0
  126. package/dist/maintenance/decayScoring.d.ts +7 -0
  127. package/dist/maintenance/decayScoring.d.ts.map +1 -0
  128. package/dist/maintenance/decayScoring.js +9 -0
  129. package/dist/maintenance/decayScoring.js.map +1 -0
  130. package/dist/maintenance/index.d.ts +7 -0
  131. package/dist/maintenance/index.d.ts.map +1 -0
  132. package/dist/maintenance/index.js +5 -0
  133. package/dist/maintenance/index.js.map +1 -0
  134. package/dist/maintenance/memoryMaintenance.d.ts +23 -0
  135. package/dist/maintenance/memoryMaintenance.d.ts.map +1 -0
  136. package/dist/maintenance/memoryMaintenance.js +141 -0
  137. package/dist/maintenance/memoryMaintenance.js.map +1 -0
  138. package/dist/maintenance/types.d.ts +65 -0
  139. package/dist/maintenance/types.d.ts.map +1 -0
  140. package/dist/maintenance/types.js +2 -0
  141. package/dist/maintenance/types.js.map +1 -0
  142. package/dist/pipeline/GrafterPipeline.d.ts +2 -0
  143. package/dist/pipeline/GrafterPipeline.d.ts.map +1 -1
  144. package/dist/pipeline/GrafterPipeline.js +33 -7
  145. package/dist/pipeline/GrafterPipeline.js.map +1 -1
  146. package/dist/pipeline/RetrieverPipeline.d.ts +1 -0
  147. package/dist/pipeline/RetrieverPipeline.d.ts.map +1 -1
  148. package/dist/pipeline/RetrieverPipeline.js +16 -5
  149. package/dist/pipeline/RetrieverPipeline.js.map +1 -1
  150. package/dist/prompts/factRetrievalPrompt.d.ts +1 -1
  151. package/dist/prompts/factRetrievalPrompt.d.ts.map +1 -1
  152. package/dist/prompts/historyCompressionPrompt.d.ts +1 -1
  153. package/dist/prompts/historyCompressionPrompt.d.ts.map +1 -1
  154. package/dist/prompts/intentShiftPrompt.d.ts +1 -1
  155. package/dist/prompts/intentShiftPrompt.d.ts.map +1 -1
  156. package/dist/prompts/memoryInjectionPrompt.d.ts +1 -1
  157. package/dist/prompts/memoryInjectionPrompt.d.ts.map +1 -1
  158. package/dist/prompts/segmentExtractionPrompt.d.ts +1 -1
  159. package/dist/prompts/segmentExtractionPrompt.d.ts.map +1 -1
  160. package/dist/retrieval/GrafterPipeline.d.ts +26 -0
  161. package/dist/retrieval/GrafterPipeline.d.ts.map +1 -0
  162. package/dist/retrieval/GrafterPipeline.js +117 -0
  163. package/dist/retrieval/GrafterPipeline.js.map +1 -0
  164. package/dist/retrieval/RetrieverPipeline.d.ts +28 -0
  165. package/dist/retrieval/RetrieverPipeline.d.ts.map +1 -0
  166. package/dist/retrieval/RetrieverPipeline.js +160 -0
  167. package/dist/retrieval/RetrieverPipeline.js.map +1 -0
  168. package/dist/schema/builders.d.ts +40 -0
  169. package/dist/schema/builders.d.ts.map +1 -0
  170. package/dist/schema/builders.js +10 -0
  171. package/dist/schema/builders.js.map +1 -0
  172. package/dist/schema/index.d.ts +3 -0
  173. package/dist/schema/index.d.ts.map +1 -0
  174. package/dist/schema/index.js +3 -0
  175. package/dist/schema/index.js.map +1 -0
  176. package/dist/schema/mg-tables.d.ts +7 -0
  177. package/dist/schema/mg-tables.d.ts.map +1 -0
  178. package/dist/schema/mg-tables.js +180 -0
  179. package/dist/schema/mg-tables.js.map +1 -0
  180. package/dist/store/GraphStore.d.ts +19 -1
  181. package/dist/store/GraphStore.d.ts.map +1 -1
  182. package/dist/store/postgres-pgvector/GraphStore.d.ts +33 -1
  183. package/dist/store/postgres-pgvector/GraphStore.d.ts.map +1 -1
  184. package/dist/store/postgres-pgvector/GraphStore.js +491 -16
  185. package/dist/store/postgres-pgvector/GraphStore.js.map +1 -1
  186. package/dist/tsconfig.cli.tsbuildinfo +1 -0
  187. package/dist/types.d.ts +53 -0
  188. package/dist/types.d.ts.map +1 -1
  189. package/dist/utils/drift/adaptiveDriftSensitivity.d.ts +1 -1
  190. package/dist/utils/drift/adaptiveDriftSensitivity.d.ts.map +1 -1
  191. package/dist/utils/drift/driftScore.d.ts +1 -1
  192. package/dist/utils/drift/driftScore.d.ts.map +1 -1
  193. package/dist/utils/drift/driftThreshold.d.ts +1 -1
  194. package/dist/utils/drift/driftThreshold.d.ts.map +1 -1
  195. package/dist/utils/drift/reentryMatch.d.ts +1 -1
  196. package/dist/utils/drift/reentryMatch.d.ts.map +1 -1
  197. package/dist/utils/extraction/segmentExtraction.d.ts +1 -1
  198. package/dist/utils/extraction/segmentExtraction.d.ts.map +1 -1
  199. package/dist/utils/reentry/reentryEdges.d.ts +1 -1
  200. package/dist/utils/reentry/reentryEdges.d.ts.map +1 -1
  201. package/dist/utils/reentry/reentrySimilarity.d.ts +1 -1
  202. package/dist/utils/reentry/reentrySimilarity.d.ts.map +1 -1
  203. package/dist/utils/reentry/reentryText.d.ts +1 -1
  204. package/dist/utils/reentry/reentryText.d.ts.map +1 -1
  205. package/package.json +14 -1
@@ -30,14 +30,18 @@ export class RetrieverPipeline {
30
30
  const scope = this.config.scope === "tagged" && tags.length > 0
31
31
  ? "tagged"
32
32
  : this.config.scope ?? (tags.length > 0 ? "session-and-tags" : "session");
33
+ const configuredSessionIds = this.config.sessionIds?.filter(Boolean) ?? [];
34
+ const sessionIds = this.resolveSessionIds(sessionId);
35
+ const hasConfiguredSessionIds = configuredSessionIds.length > 0;
33
36
  const embedding = await this.embedder.embed(query);
34
37
  const searchedFacts = await this.searchMemories(embedding, sessionId, limit, minSimilarity, {
35
38
  tags,
36
39
  tagMode,
37
40
  scope,
41
+ ...(hasConfiguredSessionIds ? { sessionIds } : {}),
38
42
  });
39
43
  const activeFacts = searchedFacts
40
- .filter((fact) => fact.decayed === false && fact.supersededBy == null)
44
+ .filter((fact) => fact.decayed === false && fact.supersededBy == null && !fact.forgotten)
41
45
  .map((fact) => this.rankFact(fact))
42
46
  .sort((a, b) => b.retrievalScore - a.retrievalScore);
43
47
  if (activeFacts.length === 0) {
@@ -48,7 +52,7 @@ export class RetrieverPipeline {
48
52
  tokenCount: 0,
49
53
  };
50
54
  }
51
- const rankedBlocks = (await this.buildBlocks(activeFacts, sessionId, scope))
55
+ const rankedBlocks = (await this.buildBlocks(activeFacts, sessionId, scope, hasConfiguredSessionIds && (sessionIds.length > 1 || sessionIds[0] !== sessionId)))
52
56
  .sort((a, b) => b.score - a.score);
53
57
  const includedBlocks = [];
54
58
  const facts = [];
@@ -83,6 +87,7 @@ export class RetrieverPipeline {
83
87
  limit,
84
88
  minSimilarity,
85
89
  options.scope ?? "session",
90
+ (this.config.sessionIds ?? []).join(","),
86
91
  options.tagMode ?? "all",
87
92
  (options.tags ?? []).join(","),
88
93
  this.hashEmbedding(embedding),
@@ -105,7 +110,7 @@ export class RetrieverPipeline {
105
110
  const str = embedding.map((value) => value.toFixed(6)).join(",");
106
111
  return createHash("sha1").update(str).digest("hex").slice(0, 16);
107
112
  }
108
- async buildBlocks(facts, sessionId, scope) {
113
+ async buildBlocks(facts, sessionId, scope, useFactSession) {
109
114
  const factsByTopic = new Map();
110
115
  for (const fact of facts) {
111
116
  const topicFacts = factsByTopic.get(fact.topicNodeId) ?? [];
@@ -114,9 +119,9 @@ export class RetrieverPipeline {
114
119
  }
115
120
  const blocks = [];
116
121
  for (const [topicNodeId, topicFacts] of factsByTopic) {
117
- const parentSessionId = scope === "tagged" ? topicFacts[0]?.sessionId : sessionId;
122
+ const parentSessionId = scope === "tagged" || useFactSession ? topicFacts[0]?.sessionId : sessionId;
118
123
  const parentNode = await this.store.getTopicNode(topicNodeId, parentSessionId);
119
- if (!parentNode) {
124
+ if (!parentNode || parentNode.suppressed) {
120
125
  continue;
121
126
  }
122
127
  blocks.push({
@@ -145,5 +150,11 @@ export class RetrieverPipeline {
145
150
  return 0;
146
151
  return Math.min(Math.max(value, 0), 1);
147
152
  }
153
+ resolveSessionIds(sessionId) {
154
+ const configured = this.config.sessionIds?.filter(Boolean) ?? [];
155
+ if (configured.length === 0)
156
+ return [sessionId];
157
+ return [...new Set(configured)];
158
+ }
148
159
  }
149
160
  //# sourceMappingURL=RetrieverPipeline.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RetrieverPipeline.js","sourceRoot":"","sources":["../../src/pipeline/RetrieverPipeline.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RetrieverPipeline.js","sourceRoot":"","sources":["../../src/pipeline/RetrieverPipeline.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { MemoryNode, TopicNode } from "../types.js";
1
+ import type { MemoryNode, TopicNode } from "../core/types.js";
2
2
  export declare function formatFactBlock(facts: MemoryNode[], parentNode: TopicNode): string;
3
3
  export declare function buildFactRetrievalPrompt(blocks: string[]): string;
4
4
  //# sourceMappingURL=factRetrievalPrompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"factRetrievalPrompt.d.ts","sourceRoot":"","sources":["../../src/prompts/factRetrievalPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAezD,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,SAAS,GAAG,MAAM,CASlF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAOjE"}
1
+ {"version":3,"file":"factRetrievalPrompt.d.ts","sourceRoot":"","sources":["../../src/prompts/factRetrievalPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAe9D,wBAAgB,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,SAAS,GAAG,MAAM,CASlF;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAOjE"}
@@ -1,3 +1,3 @@
1
- import type { TopicNode } from "../types.js";
1
+ import type { TopicNode } from "../core/types.js";
2
2
  export declare function formatCompressedTopic(node: TopicNode): string;
3
3
  //# sourceMappingURL=historyCompressionPrompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"historyCompressionPrompt.d.ts","sourceRoot":"","sources":["../../src/prompts/historyCompressionPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAE7D"}
1
+ {"version":3,"file":"historyCompressionPrompt.d.ts","sourceRoot":"","sources":["../../src/prompts/historyCompressionPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAE7D"}
@@ -1,3 +1,3 @@
1
- import type { Message } from "../types.js";
1
+ import type { Message } from "../core/types.js";
2
2
  export declare function buildIntentShiftPrompt(recentMessages: Message[], currentMessage: Message): string;
3
3
  //# sourceMappingURL=intentShiftPrompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"intentShiftPrompt.d.ts","sourceRoot":"","sources":["../../src/prompts/intentShiftPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,OAAO,GAAG,MAAM,CAUjG"}
1
+ {"version":3,"file":"intentShiftPrompt.d.ts","sourceRoot":"","sources":["../../src/prompts/intentShiftPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAEhD,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,OAAO,EAAE,EAAE,cAAc,EAAE,OAAO,GAAG,MAAM,CAUjG"}
@@ -1,4 +1,4 @@
1
- import type { MemoryNode, Message, TopicNode } from "../types.js";
1
+ import type { MemoryNode, Message, TopicNode } from "../core/types.js";
2
2
  export declare function buildMemoryInjectionPrompt(blocks: string[]): string;
3
3
  export interface MemoryMaintenancePromptContext {
4
4
  notes?: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"memoryInjectionPrompt.d.ts","sourceRoot":"","sources":["../../src/prompts/memoryInjectionPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAQnE;AAED,MAAM,WAAW,8BAA8B;IAC7C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC;CAC/B;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,OAAO,EAAE,EACnB,WAAW,GAAE,8BAAmC,GAC/C,MAAM,CAYR"}
1
+ {"version":3,"file":"memoryInjectionPrompt.d.ts","sourceRoot":"","sources":["../../src/prompts/memoryInjectionPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEvE,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAQnE;AAED,MAAM,WAAW,8BAA8B;IAC7C,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,UAAU,EAAE,CAAC;CAC/B;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,OAAO,EAAE,EACnB,WAAW,GAAE,8BAAmC,GAC/C,MAAM,CAYR"}
@@ -1,3 +1,3 @@
1
- import type { Message } from "../types.js";
1
+ import type { Message } from "../core/types.js";
2
2
  export declare function buildSegmentExtractionPrompt(messages: Message[], labelHint?: string): string;
3
3
  //# sourceMappingURL=segmentExtractionPrompt.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"segmentExtractionPrompt.d.ts","sourceRoot":"","sources":["../../src/prompts/segmentExtractionPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAG3C,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAqF5F"}
1
+ {"version":3,"file":"segmentExtractionPrompt.d.ts","sourceRoot":"","sources":["../../src/prompts/segmentExtractionPrompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGhD,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAqF5F"}
@@ -0,0 +1,26 @@
1
+ import type { GraphStore } from "../store/index.js";
2
+ import type { GraftExpansionStrategy, InjectionResult } from "../core/types.js";
3
+ export interface GrafterPipelineRunOptions {
4
+ hopDepth?: number;
5
+ expansionStrategy?: GraftExpansionStrategy;
6
+ sessionIds?: string[];
7
+ }
8
+ export declare class GrafterPipeline {
9
+ /** @internal */
10
+ private store;
11
+ /** @internal */
12
+ private config;
13
+ constructor(
14
+ /** @internal */
15
+ store: GraphStore,
16
+ /** @internal */
17
+ config: {
18
+ hopDepth: number;
19
+ bufferSize: number;
20
+ tokenBudget: number;
21
+ });
22
+ run(sessionId: string, topicIds: string[], options?: GrafterPipelineRunOptions): Promise<InjectionResult>;
23
+ private assemblePrompt;
24
+ private resolveSessionIds;
25
+ }
26
+ //# sourceMappingURL=GrafterPipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GrafterPipeline.d.ts","sourceRoot":"","sources":["../../src/retrieval/GrafterPipeline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAqC,MAAM,kBAAkB,CAAC;AAGnH,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,qBAAa,eAAe;IAExB,gBAAgB;IAChB,OAAO,CAAC,KAAK;IACb,gBAAgB;IAChB,OAAO,CAAC,MAAM;;IAHd,gBAAgB;IACR,KAAK,EAAE,UAAU;IACzB,gBAAgB;IACR,MAAM,EAAE;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;KACrB;IAGG,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,eAAe,CAAC;YAyCrG,cAAc;IAsC5B,OAAO,CAAC,iBAAiB;CAI1B"}
@@ -0,0 +1,117 @@
1
+ import { buildMemoryInjectionPrompt, formatMemoryNode } from "../prompts/memoryInjectionPrompt.js";
2
+ import { countApproxTokens } from "../utils/text/tokenCount.js";
3
+ export class GrafterPipeline {
4
+ store;
5
+ config;
6
+ constructor(
7
+ /** @internal */
8
+ store,
9
+ /** @internal */
10
+ config) {
11
+ this.store = store;
12
+ this.config = config;
13
+ }
14
+ async run(sessionId, topicIds, options = {}) {
15
+ if (topicIds.length === 0) {
16
+ return { systemPrompt: "", nodes: [], tokenCount: 0 };
17
+ }
18
+ const hopDepth = options.expansionStrategy === "none" ? 0 : options.hopDepth ?? this.config.hopDepth;
19
+ const sessionIds = this.resolveSessionIds(sessionId, options.sessionIds);
20
+ const useConfiguredSessions = sessionIds.length > 1 || sessionIds[0] !== sessionId;
21
+ const neighbourhood = await this.store.getNeighbours(topicIds, hopDepth, useConfiguredSessions ? undefined : sessionId);
22
+ const allowedSessions = new Set(sessionIds);
23
+ const nodes = neighbourhood
24
+ .filter((node) => allowedSessions.has(node.sessionId))
25
+ .filter((node) => !node.suppressed)
26
+ .sort((a, b) => a.sessionId.localeCompare(b.sessionId)
27
+ ||
28
+ a.messageRange[0] - b.messageRange[0]
29
+ || a.messageRange[1] - b.messageRange[1]
30
+ || a.topicOrder - b.topicOrder);
31
+ const fittedNodes = [...nodes];
32
+ let systemPrompt = await this.assemblePrompt(fittedNodes);
33
+ let tokenCount = countApproxTokens(systemPrompt);
34
+ while (tokenCount > this.config.tokenBudget && fittedNodes.length > 0) {
35
+ fittedNodes.pop();
36
+ systemPrompt = await this.assemblePrompt(fittedNodes);
37
+ tokenCount = countApproxTokens(systemPrompt);
38
+ }
39
+ return {
40
+ systemPrompt,
41
+ nodes: fittedNodes,
42
+ tokenCount,
43
+ };
44
+ }
45
+ async assemblePrompt(nodes) {
46
+ if (nodes.length === 0)
47
+ return "";
48
+ const blocks = [];
49
+ const memoryBySession = new Map();
50
+ const edgeBySession = new Map();
51
+ for (const node of nodes) {
52
+ const sessionId = node.sessionId;
53
+ let sessionMemories = memoryBySession.get(sessionId);
54
+ if (!sessionMemories) {
55
+ sessionMemories = (await this.store.getMemoriesBySession(sessionId))
56
+ .filter((memory) => !memory.forgotten);
57
+ memoryBySession.set(sessionId, sessionMemories);
58
+ }
59
+ let memoryEdges = edgeBySession.get(sessionId);
60
+ if (!memoryEdges) {
61
+ const visibleMemoryIds = new Set(sessionMemories.map((memory) => memory.id));
62
+ memoryEdges = (await this.store.getMemoryEdgesBySession(sessionId))
63
+ .filter((edge) => visibleMemoryIds.has(edge.sourceId) && visibleMemoryIds.has(edge.targetId));
64
+ edgeBySession.set(sessionId, memoryEdges);
65
+ }
66
+ const start = Math.max(0, node.messageRange[0] - this.config.bufferSize);
67
+ const end = node.messageRange[1] + this.config.bufferSize;
68
+ const messages = await this.store.getBufferMessages(sessionId, start, end);
69
+ const topicMemories = sessionMemories.filter((memory) => memory.topicNodeId === node.id);
70
+ blocks.push(formatMemoryNode(node, messages, buildMaintenancePromptContext(topicMemories, sessionMemories, memoryEdges)));
71
+ }
72
+ return buildMemoryInjectionPrompt(blocks);
73
+ }
74
+ resolveSessionIds(sessionId, configured) {
75
+ const sessionIds = configured && configured.length > 0 ? configured : [sessionId];
76
+ return [...new Set(sessionIds)];
77
+ }
78
+ }
79
+ function buildMaintenancePromptContext(topicMemories, sessionMemories, memoryEdges) {
80
+ const notes = [];
81
+ const topicMemoryIds = new Set(topicMemories.map((memory) => memory.id));
82
+ const memoriesById = new Map(sessionMemories.map((memory) => [memory.id, memory]));
83
+ const hasMaintenanceEdge = memoryEdges.some((edge) => (edge.edgeType === "conflicts" || edge.edgeType === "updates")
84
+ && (topicMemoryIds.has(edge.sourceId) || topicMemoryIds.has(edge.targetId)));
85
+ const hasConflict = topicMemories.some((memory) => memory.hasConflict);
86
+ const supersededMemories = topicMemories.filter((memory) => memory.supersededBy != null);
87
+ for (const memory of supersededMemories) {
88
+ const supersedingMemory = memory.supersededBy ? memoriesById.get(memory.supersededBy) : undefined;
89
+ if (supersedingMemory) {
90
+ notes.push(`The fact "${memory.subject} ${memory.predicate}: ${memory.value}" was superseded by "${supersedingMemory.value}".`);
91
+ }
92
+ else {
93
+ notes.push(`The fact "${memory.subject} ${memory.predicate}: ${memory.value}" was superseded by a newer memory.`);
94
+ }
95
+ }
96
+ if (hasConflict || supersededMemories.length > 0 || hasMaintenanceEdge) {
97
+ notes.push("Prefer active memory facts over contradictory historical summary details.");
98
+ }
99
+ const activeMemoriesById = new Map();
100
+ for (const memory of topicMemories) {
101
+ if (!memory.decayed && memory.supersededBy == null) {
102
+ activeMemoriesById.set(memory.id, memory);
103
+ }
104
+ }
105
+ for (const memory of supersededMemories) {
106
+ const supersedingMemory = memory.supersededBy ? memoriesById.get(memory.supersededBy) : undefined;
107
+ if (supersedingMemory && !supersedingMemory.decayed && supersedingMemory.supersededBy == null) {
108
+ activeMemoriesById.set(supersedingMemory.id, supersedingMemory);
109
+ }
110
+ }
111
+ const activeMemories = [...activeMemoriesById.values()];
112
+ return {
113
+ ...(notes.length > 0 ? { notes } : {}),
114
+ ...(notes.length > 0 && activeMemories.length > 0 ? { activeMemories } : {}),
115
+ };
116
+ }
117
+ //# sourceMappingURL=GrafterPipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GrafterPipeline.js","sourceRoot":"","sources":["../../src/retrieval/GrafterPipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import type { Redis } from "ioredis";
2
+ import type { GraphStore } from "../store/index.js";
3
+ import type { EmbedAdapter, RetrievalResult, RetrieverConfig } from "../core/types.js";
4
+ export declare class RetrieverPipeline {
5
+ /** @internal */
6
+ private store;
7
+ /** @internal */
8
+ private embedder;
9
+ private config;
10
+ /** @internal */
11
+ private cacheRedis;
12
+ constructor(
13
+ /** @internal */
14
+ store: GraphStore,
15
+ /** @internal */
16
+ embedder: EmbedAdapter, config: RetrieverConfig,
17
+ /** @internal */
18
+ cacheRedis?: Redis | null);
19
+ run(query: string, sessionId: string): Promise<RetrievalResult>;
20
+ private searchMemories;
21
+ private hashEmbedding;
22
+ private buildBlocks;
23
+ private rankFact;
24
+ private scoreFact;
25
+ private clampScore;
26
+ private resolveSessionIds;
27
+ }
28
+ //# sourceMappingURL=RetrieverPipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RetrieverPipeline.d.ts","sourceRoot":"","sources":["../../src/retrieval/RetrieverPipeline.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAKrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EACV,YAAY,EAEZ,eAAe,EACf,eAAe,EAEhB,MAAM,kBAAkB,CAAC;AAgB1B,qBAAa,iBAAiB;IAE1B,gBAAgB;IAChB,OAAO,CAAC,KAAK;IACb,gBAAgB;IAChB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,MAAM;IACd,gBAAgB;IAChB,OAAO,CAAC,UAAU;;IANlB,gBAAgB;IACR,KAAK,EAAE,UAAU;IACzB,gBAAgB;IACR,QAAQ,EAAE,YAAY,EACtB,MAAM,EAAE,eAAe;IAC/B,gBAAgB;IACR,UAAU,GAAE,KAAK,GAAG,IAAW;IAGnC,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;YAoEvD,cAAc;IAgE5B,OAAO,CAAC,aAAa;YAKP,WAAW;IAkCzB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,SAAS;IASjB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,iBAAiB;CAK1B"}
@@ -0,0 +1,160 @@
1
+ import { createHash } from "node:crypto";
2
+ import { buildFactRetrievalPrompt, formatFactBlock, } from "../prompts/factRetrievalPrompt.js";
3
+ import { countApproxTokens } from "../utils/text/tokenCount.js";
4
+ import { normalizeTags } from "../utils/tags.js";
5
+ const DEFAULT_SIMILARITY_WEIGHT = 0.7;
6
+ const DEFAULT_CONFIDENCE_WEIGHT = 0.3;
7
+ export class RetrieverPipeline {
8
+ store;
9
+ embedder;
10
+ config;
11
+ cacheRedis;
12
+ constructor(
13
+ /** @internal */
14
+ store,
15
+ /** @internal */
16
+ embedder, config,
17
+ /** @internal */
18
+ cacheRedis = null) {
19
+ this.store = store;
20
+ this.embedder = embedder;
21
+ this.config = config;
22
+ this.cacheRedis = cacheRedis;
23
+ }
24
+ async run(query, sessionId) {
25
+ const limit = this.config.limit ?? 10;
26
+ const minSimilarity = this.config.minSimilarity ?? 0.6;
27
+ const tokenBudget = this.config.tokenBudget ?? 1200;
28
+ const tags = normalizeTags(this.config.tags);
29
+ const tagMode = this.config.tagMode ?? "all";
30
+ const scope = this.config.scope === "tagged" && tags.length > 0
31
+ ? "tagged"
32
+ : this.config.scope ?? (tags.length > 0 ? "session-and-tags" : "session");
33
+ const configuredSessionIds = this.config.sessionIds?.filter(Boolean) ?? [];
34
+ const sessionIds = this.resolveSessionIds(sessionId);
35
+ const hasConfiguredSessionIds = configuredSessionIds.length > 0;
36
+ const embedding = await this.embedder.embed(query);
37
+ const searchedFacts = await this.searchMemories(embedding, sessionId, limit, minSimilarity, {
38
+ tags,
39
+ tagMode,
40
+ scope,
41
+ ...(hasConfiguredSessionIds ? { sessionIds } : {}),
42
+ });
43
+ const activeFacts = searchedFacts
44
+ .filter((fact) => fact.decayed === false && fact.supersededBy == null && !fact.forgotten)
45
+ .map((fact) => this.rankFact(fact))
46
+ .sort((a, b) => b.retrievalScore - a.retrievalScore);
47
+ if (activeFacts.length === 0) {
48
+ return {
49
+ facts: [],
50
+ nodes: [],
51
+ systemPrompt: buildFactRetrievalPrompt([]),
52
+ tokenCount: 0,
53
+ };
54
+ }
55
+ const rankedBlocks = (await this.buildBlocks(activeFacts, sessionId, scope, hasConfiguredSessionIds && (sessionIds.length > 1 || sessionIds[0] !== sessionId)))
56
+ .sort((a, b) => b.score - a.score);
57
+ const includedBlocks = [];
58
+ const facts = [];
59
+ const nodes = [];
60
+ let tokenCount = 0;
61
+ for (const block of rankedBlocks) {
62
+ const formattedBlock = formatFactBlock(block.facts, block.parentNode);
63
+ const blockTokenCount = countApproxTokens(formattedBlock);
64
+ if (tokenCount + blockTokenCount > tokenBudget) {
65
+ break;
66
+ }
67
+ includedBlocks.push(formattedBlock);
68
+ facts.push(...block.facts.map(({ retrievalScore: _retrievalScore, ...fact }) => fact));
69
+ nodes.push(block.parentNode);
70
+ tokenCount += blockTokenCount;
71
+ }
72
+ return {
73
+ facts,
74
+ nodes,
75
+ systemPrompt: buildFactRetrievalPrompt(includedBlocks),
76
+ tokenCount,
77
+ };
78
+ }
79
+ async searchMemories(embedding, sessionId, limit, minSimilarity, options) {
80
+ if (!this.config.cache || !this.cacheRedis) {
81
+ return this.store.searchMemories(embedding, sessionId, limit, minSimilarity, options);
82
+ }
83
+ const ttl = Math.min(Math.max(this.config.cache.ttlSeconds ?? 90, 60), 120);
84
+ const cacheKey = [
85
+ "mg:recall",
86
+ sessionId,
87
+ limit,
88
+ minSimilarity,
89
+ options.scope ?? "session",
90
+ (this.config.sessionIds ?? []).join(","),
91
+ options.tagMode ?? "all",
92
+ (options.tags ?? []).join(","),
93
+ this.hashEmbedding(embedding),
94
+ ].join(":");
95
+ try {
96
+ const hit = await this.cacheRedis.get(cacheKey);
97
+ if (hit) {
98
+ return JSON.parse(hit);
99
+ }
100
+ const searchedFacts = await this.store.searchMemories(embedding, sessionId, limit, minSimilarity, options);
101
+ await this.cacheRedis.setex(cacheKey, ttl, JSON.stringify(searchedFacts));
102
+ return searchedFacts;
103
+ }
104
+ catch (error) {
105
+ console.warn("MemoGrafter recall cache warning:", error);
106
+ return this.store.searchMemories(embedding, sessionId, limit, minSimilarity, options);
107
+ }
108
+ }
109
+ hashEmbedding(embedding) {
110
+ const str = embedding.map((value) => value.toFixed(6)).join(",");
111
+ return createHash("sha1").update(str).digest("hex").slice(0, 16);
112
+ }
113
+ async buildBlocks(facts, sessionId, scope, useFactSession) {
114
+ const factsByTopic = new Map();
115
+ for (const fact of facts) {
116
+ const topicFacts = factsByTopic.get(fact.topicNodeId) ?? [];
117
+ topicFacts.push(fact);
118
+ factsByTopic.set(fact.topicNodeId, topicFacts);
119
+ }
120
+ const blocks = [];
121
+ for (const [topicNodeId, topicFacts] of factsByTopic) {
122
+ const parentSessionId = scope === "tagged" || useFactSession ? topicFacts[0]?.sessionId : sessionId;
123
+ const parentNode = await this.store.getTopicNode(topicNodeId, parentSessionId);
124
+ if (!parentNode || parentNode.suppressed) {
125
+ continue;
126
+ }
127
+ blocks.push({
128
+ facts: topicFacts.sort((a, b) => b.retrievalScore - a.retrievalScore),
129
+ parentNode,
130
+ score: Math.max(...topicFacts.map((fact) => fact.retrievalScore)),
131
+ });
132
+ }
133
+ return blocks;
134
+ }
135
+ rankFact(fact) {
136
+ return {
137
+ ...fact,
138
+ retrievalScore: this.scoreFact(fact),
139
+ };
140
+ }
141
+ scoreFact(fact) {
142
+ const similarityWeight = this.config.scoring?.similarityWeight ?? DEFAULT_SIMILARITY_WEIGHT;
143
+ const confidenceWeight = this.config.scoring?.confidenceWeight ?? DEFAULT_CONFIDENCE_WEIGHT;
144
+ const similarity = this.clampScore(fact.similarity);
145
+ const confidence = this.clampScore(fact.confidence);
146
+ return similarity * similarityWeight + confidence * confidenceWeight;
147
+ }
148
+ clampScore(value) {
149
+ if (!Number.isFinite(value))
150
+ return 0;
151
+ return Math.min(Math.max(value, 0), 1);
152
+ }
153
+ resolveSessionIds(sessionId) {
154
+ const configured = this.config.sessionIds?.filter(Boolean) ?? [];
155
+ if (configured.length === 0)
156
+ return [sessionId];
157
+ return [...new Set(configured)];
158
+ }
159
+ }
160
+ //# sourceMappingURL=RetrieverPipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RetrieverPipeline.js","sourceRoot":"","sources":["../../src/retrieval/RetrieverPipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ export type MgColumnType = "text" | "int" | "float" | "boolean" | "uuid" | "timestamptz" | "vector" | "text[]";
2
+ export interface MgColumnDefinition {
3
+ name: string;
4
+ type: MgColumnType;
5
+ nullable?: boolean;
6
+ primaryKey?: boolean;
7
+ default?: string;
8
+ references?: string;
9
+ unique?: boolean;
10
+ check?: string;
11
+ }
12
+ export interface MgTableDefinition {
13
+ name: string;
14
+ description: string;
15
+ columns: MgColumnDefinition[];
16
+ constraints?: string[];
17
+ }
18
+ export interface MgIndexDefinition {
19
+ name: string;
20
+ table: string;
21
+ description: string;
22
+ }
23
+ export interface MgExtensionDefinition {
24
+ name: string;
25
+ description: string;
26
+ }
27
+ export type MigrationItemStatus = "created" | "exists" | "ensured";
28
+ export interface MigrationReportItem {
29
+ name: string;
30
+ status: MigrationItemStatus;
31
+ }
32
+ export interface MigrationReport {
33
+ extensions: MigrationReportItem[];
34
+ tables: MigrationReportItem[];
35
+ indexes: MigrationReportItem[];
36
+ }
37
+ export declare function mgTable(definition: MgTableDefinition): MgTableDefinition;
38
+ export declare function mgIndex(definition: MgIndexDefinition): MgIndexDefinition;
39
+ export declare function mgExtension(definition: MgExtensionDefinition): MgExtensionDefinition;
40
+ //# sourceMappingURL=builders.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/schema/builders.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE/G,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,kBAAkB,EAAE,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEnE,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,mBAAmB,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAClC,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAED,wBAAgB,OAAO,CAAC,UAAU,EAAE,iBAAiB,GAAG,iBAAiB,CAExE;AAED,wBAAgB,OAAO,CAAC,UAAU,EAAE,iBAAiB,GAAG,iBAAiB,CAExE;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,qBAAqB,GAAG,qBAAqB,CAEpF"}
@@ -0,0 +1,10 @@
1
+ export function mgTable(definition) {
2
+ return definition;
3
+ }
4
+ export function mgIndex(definition) {
5
+ return definition;
6
+ }
7
+ export function mgExtension(definition) {
8
+ return definition;
9
+ }
10
+ //# sourceMappingURL=builders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builders.js","sourceRoot":"","sources":["../../src/schema/builders.ts"],"names":[],"mappings":"AA4CA,MAAM,UAAU,OAAO,CAAC,UAA6B;IACnD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,UAA6B;IACnD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAiC;IAC3D,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./builders.js";
2
+ export * from "./mg-tables.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./builders.js";
2
+ export * from "./mg-tables.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/schema/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const memoGrafterExtensions: readonly [import("./builders.js").MgExtensionDefinition, import("./builders.js").MgExtensionDefinition];
2
+ export declare const memoGrafterTables: readonly [import("./builders.js").MgTableDefinition, import("./builders.js").MgTableDefinition, import("./builders.js").MgTableDefinition, import("./builders.js").MgTableDefinition, import("./builders.js").MgTableDefinition, import("./builders.js").MgTableDefinition, import("./builders.js").MgTableDefinition, import("./builders.js").MgTableDefinition, import("./builders.js").MgTableDefinition, import("./builders.js").MgTableDefinition];
3
+ export declare const memoGrafterIndexes: readonly [import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition, import("./builders.js").MgIndexDefinition];
4
+ export declare const memoGrafterTableNames: string[];
5
+ export declare const memoGrafterIndexNames: string[];
6
+ export declare const memoGrafterExtensionNames: string[];
7
+ //# sourceMappingURL=mg-tables.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mg-tables.d.ts","sourceRoot":"","sources":["../../src/schema/mg-tables.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,yGASxB,CAAC;AAEX,eAAO,MAAM,iBAAiB,ybA+IpB,CAAC;AAEX,eAAO,MAAM,kBAAkB,4zBAoBrB,CAAC;AAEX,eAAO,MAAM,qBAAqB,UAA+C,CAAC;AAClF,eAAO,MAAM,qBAAqB,UAAgD,CAAC;AACnF,eAAO,MAAM,yBAAyB,UAA2D,CAAC"}