overmind-mcp 0.0.2-alpha

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 (191) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +137 -0
  3. package/assets/overmind_core_closeup.png +0 -0
  4. package/assets/overmind_mcp_banner.png +0 -0
  5. package/assets/overmind_mcp_banner_slim.png +0 -0
  6. package/assets/overmind_mcp_final_banner.png +0 -0
  7. package/assets/overmind_mcp_pro_banner.png +0 -0
  8. package/assets/overmind_mcp_pro_banner_v2.png +0 -0
  9. package/assets/overmind_mcp_pro_banner_v3.png +0 -0
  10. package/assets/terminal_preview.png +0 -0
  11. package/dist/bin/cli.d.ts +3 -0
  12. package/dist/bin/cli.d.ts.map +1 -0
  13. package/dist/bin/cli.js +481 -0
  14. package/dist/bin/cli.js.map +1 -0
  15. package/dist/index.d.ts +8 -0
  16. package/dist/index.d.ts.map +1 -0
  17. package/dist/index.js +8 -0
  18. package/dist/index.js.map +1 -0
  19. package/dist/lib/InstallHelper.d.ts +14 -0
  20. package/dist/lib/InstallHelper.d.ts.map +1 -0
  21. package/dist/lib/InstallHelper.js +113 -0
  22. package/dist/lib/InstallHelper.js.map +1 -0
  23. package/dist/lib/config.d.ts +58 -0
  24. package/dist/lib/config.d.ts.map +1 -0
  25. package/dist/lib/config.js +110 -0
  26. package/dist/lib/config.js.map +1 -0
  27. package/dist/lib/envUtils.d.ts +10 -0
  28. package/dist/lib/envUtils.d.ts.map +1 -0
  29. package/dist/lib/envUtils.js +24 -0
  30. package/dist/lib/envUtils.js.map +1 -0
  31. package/dist/lib/loadEnv.d.ts +2 -0
  32. package/dist/lib/loadEnv.d.ts.map +1 -0
  33. package/dist/lib/loadEnv.js +26 -0
  34. package/dist/lib/loadEnv.js.map +1 -0
  35. package/dist/lib/logger.d.ts +8 -0
  36. package/dist/lib/logger.d.ts.map +1 -0
  37. package/dist/lib/logger.js +81 -0
  38. package/dist/lib/logger.js.map +1 -0
  39. package/dist/lib/modelMapping.d.ts +18 -0
  40. package/dist/lib/modelMapping.d.ts.map +1 -0
  41. package/dist/lib/modelMapping.js +88 -0
  42. package/dist/lib/modelMapping.js.map +1 -0
  43. package/dist/lib/sessions.d.ts +4 -0
  44. package/dist/lib/sessions.d.ts.map +1 -0
  45. package/dist/lib/sessions.js +108 -0
  46. package/dist/lib/sessions.js.map +1 -0
  47. package/dist/memory/MemoryFactory.d.ts +11 -0
  48. package/dist/memory/MemoryFactory.d.ts.map +1 -0
  49. package/dist/memory/MemoryFactory.js +19 -0
  50. package/dist/memory/MemoryFactory.js.map +1 -0
  51. package/dist/memory/PostgresMemoryProvider.d.ts +29 -0
  52. package/dist/memory/PostgresMemoryProvider.d.ts.map +1 -0
  53. package/dist/memory/PostgresMemoryProvider.js +372 -0
  54. package/dist/memory/PostgresMemoryProvider.js.map +1 -0
  55. package/dist/memory/types.d.ts +70 -0
  56. package/dist/memory/types.d.ts.map +1 -0
  57. package/dist/memory/types.js +2 -0
  58. package/dist/memory/types.js.map +1 -0
  59. package/dist/prompts/agent_prompts.d.ts +2 -0
  60. package/dist/prompts/agent_prompts.d.ts.map +1 -0
  61. package/dist/prompts/agent_prompts.js +21 -0
  62. package/dist/prompts/agent_prompts.js.map +1 -0
  63. package/dist/server.d.ts +3 -0
  64. package/dist/server.d.ts.map +1 -0
  65. package/dist/server.js +174 -0
  66. package/dist/server.js.map +1 -0
  67. package/dist/services/AgentManager.d.ts +28 -0
  68. package/dist/services/AgentManager.d.ts.map +1 -0
  69. package/dist/services/AgentManager.js +393 -0
  70. package/dist/services/AgentManager.js.map +1 -0
  71. package/dist/services/ClaudeRunner.d.ts +27 -0
  72. package/dist/services/ClaudeRunner.d.ts.map +1 -0
  73. package/dist/services/ClaudeRunner.js +426 -0
  74. package/dist/services/ClaudeRunner.js.map +1 -0
  75. package/dist/services/ClineRunner.d.ts +23 -0
  76. package/dist/services/ClineRunner.d.ts.map +1 -0
  77. package/dist/services/ClineRunner.js +95 -0
  78. package/dist/services/ClineRunner.js.map +1 -0
  79. package/dist/services/GeminiRunner.d.ts +23 -0
  80. package/dist/services/GeminiRunner.d.ts.map +1 -0
  81. package/dist/services/GeminiRunner.js +236 -0
  82. package/dist/services/GeminiRunner.js.map +1 -0
  83. package/dist/services/KiloRunner.d.ts +32 -0
  84. package/dist/services/KiloRunner.d.ts.map +1 -0
  85. package/dist/services/KiloRunner.js +413 -0
  86. package/dist/services/KiloRunner.js.map +1 -0
  87. package/dist/services/NousHermesRunner.d.ts +24 -0
  88. package/dist/services/NousHermesRunner.d.ts.map +1 -0
  89. package/dist/services/NousHermesRunner.js +318 -0
  90. package/dist/services/NousHermesRunner.js.map +1 -0
  91. package/dist/services/OpenClawRunner.d.ts +22 -0
  92. package/dist/services/OpenClawRunner.d.ts.map +1 -0
  93. package/dist/services/OpenClawRunner.js +89 -0
  94. package/dist/services/OpenClawRunner.js.map +1 -0
  95. package/dist/services/OpenCodeRunner.d.ts +22 -0
  96. package/dist/services/OpenCodeRunner.d.ts.map +1 -0
  97. package/dist/services/OpenCodeRunner.js +91 -0
  98. package/dist/services/OpenCodeRunner.js.map +1 -0
  99. package/dist/services/PromptManager.d.ts +16 -0
  100. package/dist/services/PromptManager.d.ts.map +1 -0
  101. package/dist/services/PromptManager.js +54 -0
  102. package/dist/services/PromptManager.js.map +1 -0
  103. package/dist/services/QwenCliRunner.d.ts +22 -0
  104. package/dist/services/QwenCliRunner.d.ts.map +1 -0
  105. package/dist/services/QwenCliRunner.js +90 -0
  106. package/dist/services/QwenCliRunner.js.map +1 -0
  107. package/dist/tools/config_example.d.ts +18 -0
  108. package/dist/tools/config_example.d.ts.map +1 -0
  109. package/dist/tools/config_example.js +253 -0
  110. package/dist/tools/config_example.js.map +1 -0
  111. package/dist/tools/create_agent.d.ts +41 -0
  112. package/dist/tools/create_agent.d.ts.map +1 -0
  113. package/dist/tools/create_agent.js +75 -0
  114. package/dist/tools/create_agent.js.map +1 -0
  115. package/dist/tools/get_agent_configs.d.ts +18 -0
  116. package/dist/tools/get_agent_configs.d.ts.map +1 -0
  117. package/dist/tools/get_agent_configs.js +43 -0
  118. package/dist/tools/get_agent_configs.js.map +1 -0
  119. package/dist/tools/initialization_check.d.ts +2 -0
  120. package/dist/tools/initialization_check.d.ts.map +1 -0
  121. package/dist/tools/initialization_check.js +23 -0
  122. package/dist/tools/initialization_check.js.map +1 -0
  123. package/dist/tools/manage_agents.d.ts +80 -0
  124. package/dist/tools/manage_agents.d.ts.map +1 -0
  125. package/dist/tools/manage_agents.js +161 -0
  126. package/dist/tools/manage_agents.js.map +1 -0
  127. package/dist/tools/manage_prompts.d.ts +30 -0
  128. package/dist/tools/manage_prompts.d.ts.map +1 -0
  129. package/dist/tools/manage_prompts.js +64 -0
  130. package/dist/tools/manage_prompts.js.map +1 -0
  131. package/dist/tools/memory_runs.d.ts +14 -0
  132. package/dist/tools/memory_runs.d.ts.map +1 -0
  133. package/dist/tools/memory_runs.js +77 -0
  134. package/dist/tools/memory_runs.js.map +1 -0
  135. package/dist/tools/memory_search.d.ts +14 -0
  136. package/dist/tools/memory_search.d.ts.map +1 -0
  137. package/dist/tools/memory_search.js +46 -0
  138. package/dist/tools/memory_search.js.map +1 -0
  139. package/dist/tools/memory_store.d.ts +26 -0
  140. package/dist/tools/memory_store.d.ts.map +1 -0
  141. package/dist/tools/memory_store.js +46 -0
  142. package/dist/tools/memory_store.js.map +1 -0
  143. package/dist/tools/metadata.d.ts +20 -0
  144. package/dist/tools/metadata.d.ts.map +1 -0
  145. package/dist/tools/metadata.js +240 -0
  146. package/dist/tools/metadata.js.map +1 -0
  147. package/dist/tools/run_agent.d.ts +30 -0
  148. package/dist/tools/run_agent.d.ts.map +1 -0
  149. package/dist/tools/run_agent.js +80 -0
  150. package/dist/tools/run_agent.js.map +1 -0
  151. package/dist/tools/run_agent_cli.d.ts +21 -0
  152. package/dist/tools/run_agent_cli.d.ts.map +1 -0
  153. package/dist/tools/run_agent_cli.js +129 -0
  154. package/dist/tools/run_agent_cli.js.map +1 -0
  155. package/dist/tools/run_agents_parallel.d.ts +34 -0
  156. package/dist/tools/run_agents_parallel.d.ts.map +1 -0
  157. package/dist/tools/run_agents_parallel.js +104 -0
  158. package/dist/tools/run_agents_parallel.js.map +1 -0
  159. package/dist/tools/run_claude.d.ts +19 -0
  160. package/dist/tools/run_claude.d.ts.map +1 -0
  161. package/dist/tools/run_claude.js +99 -0
  162. package/dist/tools/run_claude.js.map +1 -0
  163. package/dist/tools/run_cline.d.ts +28 -0
  164. package/dist/tools/run_cline.d.ts.map +1 -0
  165. package/dist/tools/run_cline.js +77 -0
  166. package/dist/tools/run_cline.js.map +1 -0
  167. package/dist/tools/run_gemini.d.ts +24 -0
  168. package/dist/tools/run_gemini.d.ts.map +1 -0
  169. package/dist/tools/run_gemini.js +81 -0
  170. package/dist/tools/run_gemini.js.map +1 -0
  171. package/dist/tools/run_hermes.d.ts +25 -0
  172. package/dist/tools/run_hermes.d.ts.map +1 -0
  173. package/dist/tools/run_hermes.js +93 -0
  174. package/dist/tools/run_hermes.js.map +1 -0
  175. package/dist/tools/run_kilo.d.ts +32 -0
  176. package/dist/tools/run_kilo.d.ts.map +1 -0
  177. package/dist/tools/run_kilo.js +92 -0
  178. package/dist/tools/run_kilo.js.map +1 -0
  179. package/dist/tools/run_openclaw.d.ts +24 -0
  180. package/dist/tools/run_openclaw.d.ts.map +1 -0
  181. package/dist/tools/run_openclaw.js +74 -0
  182. package/dist/tools/run_openclaw.js.map +1 -0
  183. package/dist/tools/run_opencode.d.ts +24 -0
  184. package/dist/tools/run_opencode.d.ts.map +1 -0
  185. package/dist/tools/run_opencode.js +74 -0
  186. package/dist/tools/run_opencode.js.map +1 -0
  187. package/dist/tools/run_qwencli.d.ts +24 -0
  188. package/dist/tools/run_qwencli.d.ts.map +1 -0
  189. package/dist/tools/run_qwencli.js +59 -0
  190. package/dist/tools/run_qwencli.js.map +1 -0
  191. package/package.json +86 -0
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Shared model mappings for Overmind agents.
3
+ *
4
+ * NICKNAME_TO_MODEL — custom nicknames → real model IDs
5
+ * Used by ClaudeRunner (Anthropic-compatible API) to resolve BEFORE calling the API.
6
+ *
7
+ * PROVIDER_MAPPING — provider shorthand → full kilo-prefixed model IDs
8
+ * Used by KiloRunner (CLI) to build the correct --model arg.
9
+ *
10
+ * Both maps are case-insensitive via toLowerCase() lookup.
11
+ */
12
+ export const NICKNAME_TO_MODEL = {
13
+ // ── Anthropic / z.ai ──────────────────────────────────────────────────────────
14
+ 'claude-3-5-sonnet-20241022': 'claude-3-5-sonnet-20241022',
15
+ 'claude-opus-4-7': 'claude-opus-4-7',
16
+ 'claude-sonnet-4-6': 'claude-sonnet-4-6',
17
+ // z.ai custom nicknames
18
+ 'the data alchemist': 'claude-opus-4-7',
19
+ 'oracle prime': 'claude-opus-4-7',
20
+ 'imperial mind': 'claude-opus-4-7',
21
+ 'the chaos prophet': 'claude-sonnet-4-6',
22
+ 'time weaver': 'claude-sonnet-4-6',
23
+ 'the heavy lifter': 'claude-sonnet-4-6',
24
+ // z.ai GLM models (Anthropic-compatible endpoint)
25
+ 'glm-4.5-flash': 'z-ai/glm-4.5-flash',
26
+ 'glm-4.6': 'z-ai/glm-4.6',
27
+ 'glm-4.7': 'z-ai/glm-4.7',
28
+ 'glm-5-turbo': 'z-ai/glm-5-turbo',
29
+ // ── OpenAI ─────────────────────────────────────────────────────────────────────
30
+ 'gpt-5.5-pro-2026-04-23': 'openai/gpt-5.5-pro-2026-04-23',
31
+ // ── DeepSeek ────────────────────────────────────────────────────────────────────────
32
+ 'deepseek-chat': 'deepseek/deepseek-chat',
33
+ 'deepseek-reasoner': 'deepseek/deepseek-reasoner',
34
+ // ── Moonshot ──────────────────────────────────────────────────────────────────
35
+ 'moonshot-v1-8k': 'moonshot/moonshot-v1-8k',
36
+ 'moonshot-v1-32k': 'moonshot/moonshot-v1-32k',
37
+ 'moonshot-v1-128k': 'moonshot/moonshot-v1-128k',
38
+ // ── MiniMax ───────────────────────────────────────────────────────────────────
39
+ 'minimax-text-01': 'MiniMax-Text-01',
40
+ 'mini-max-m2.7-highspeed': 'mini-max-m2.7-highspeed',
41
+ // ── Mistral / Codestral ─────────────────────────────────────────────────────
42
+ 'codestral-latest': 'mistral/codestral-latest',
43
+ // ── ILMU ─────────────────────────────────────────────────────────────────────
44
+ ilmu: 'ilmu/ilmu-glm-5.1',
45
+ 'ilmu-glm': 'ilmu/ilmu-glm-5.1',
46
+ 'ilmu-glm-5.1': 'ilmu/ilmu-glm-5.1',
47
+ // ── Gemini ────────────────────────────────────────────────────────────────────────
48
+ 'gemini-3-flash-preview': 'google/gemini-3-flash-preview',
49
+ };
50
+ export const PROVIDER_MAPPING = {
51
+ // ── Kilo free-tier / openrouter ────────────────────────────────────────────────
52
+ 'tencent hy3': 'kilo/tencent/hy3-preview:free',
53
+ 'tencent/hy3-preview:free': 'kilo/tencent/hy3-preview:free',
54
+ 'step 3.5 flash': 'kilo/stepfun/step-3.5-flash:free',
55
+ 'stepfun/step-3.5-flash:free': 'kilo/stepfun/step-3.5-flash:free',
56
+ 'grok code': 'kilo/x-ai/grok-code-fast-1:optimized:free',
57
+ 'grok code fast 1 optimised': 'kilo/x-ai/grok-code-fast-1:optimized:free',
58
+ elephant: 'kilo/openrouter/elephant-alpha',
59
+ free: 'kilo/openrouter/free',
60
+ // ── ILMU ─────────────────────────────────────────────────────────────────────
61
+ ilmu: 'ilmu/ilmu-glm-5.1',
62
+ 'ilmu-glm': 'ilmu/ilmu-glm-5.1',
63
+ 'ilmu-glm-5.1': 'ilmu/ilmu-glm-5.1',
64
+ // ── GLM / z.ai ───────────────────────────────────────────────────────────────
65
+ glm: 'z-ai/glm-4.7',
66
+ 'z ai': 'z-ai/glm-4.7',
67
+ // ── MiniMax ──────────────────────────────────────────────────────────────────
68
+ minimax: 'MiniMax-Text-01',
69
+ 'minimax-text-01': 'MiniMax-Text-01',
70
+ 'mini-max-m2.7-highspeed': 'anthropic/mini-max-m2.7-highspeed',
71
+ // ── DeepSeek ─────────────────────────────────────────────────────────────────
72
+ 'deepseek-reasoner': 'deepseek/deepseek-reasoner',
73
+ // ── Moonshot ─────────────────────────────────────────────────────────────────
74
+ 'moonshot-v1-32k': 'moonshot/moonshot-v1-32k',
75
+ // ── Mistral ──────────────────────────────────────────────────────────────────
76
+ devstral: 'mistral/devstral-medium-latest',
77
+ 'codestral-latest': 'mistral/codestral-latest',
78
+ };
79
+ /** Resolve a model value for Anthropic-compatible API calls (ClaudeRunner). */
80
+ export function resolveModel(model) {
81
+ return NICKNAME_TO_MODEL[model.toLowerCase()] ?? model;
82
+ }
83
+ /** Resolve a model value for Kilo CLI calls (KiloRunner). */
84
+ export function resolveKiloModel(model) {
85
+ const lower = model.toLowerCase();
86
+ return PROVIDER_MAPPING[lower] ?? NICKNAME_TO_MODEL[lower] ?? model;
87
+ }
88
+ //# sourceMappingURL=modelMapping.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modelMapping.js","sourceRoot":"","sources":["../../src/lib/modelMapping.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAA2B;IACvD,iFAAiF;IACjF,4BAA4B,EAAE,4BAA4B;IAC1D,iBAAiB,EAAE,iBAAiB;IACpC,mBAAmB,EAAE,mBAAmB;IACxC,wBAAwB;IACxB,oBAAoB,EAAE,iBAAiB;IACvC,cAAc,EAAE,iBAAiB;IACjC,eAAe,EAAE,iBAAiB;IAClC,mBAAmB,EAAE,mBAAmB;IACxC,aAAa,EAAE,mBAAmB;IAClC,kBAAkB,EAAE,mBAAmB;IACvC,kDAAkD;IAClD,eAAe,EAAE,oBAAoB;IACrC,SAAS,EAAE,cAAc;IACzB,SAAS,EAAE,cAAc;IACzB,aAAa,EAAE,kBAAkB;IACjC,kFAAkF;IAClF,wBAAwB,EAAE,+BAA+B;IACzD,uFAAuF;IACvF,eAAe,EAAE,wBAAwB;IACzC,mBAAmB,EAAE,4BAA4B;IACjD,iFAAiF;IACjF,gBAAgB,EAAE,yBAAyB;IAC3C,iBAAiB,EAAE,0BAA0B;IAC7C,kBAAkB,EAAE,2BAA2B;IAC/C,iFAAiF;IACjF,iBAAiB,EAAE,iBAAiB;IACpC,yBAAyB,EAAE,yBAAyB;IACpD,+EAA+E;IAC/E,kBAAkB,EAAE,0BAA0B;IAC9C,gFAAgF;IAChF,IAAI,EAAE,mBAAmB;IACzB,UAAU,EAAE,mBAAmB;IAC/B,cAAc,EAAE,mBAAmB;IACnC,qFAAqF;IACrF,wBAAwB,EAAE,+BAA+B;CAC1D,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAA2B;IACtD,kFAAkF;IAClF,aAAa,EAAE,+BAA+B;IAC9C,0BAA0B,EAAE,+BAA+B;IAC3D,gBAAgB,EAAE,kCAAkC;IACpD,6BAA6B,EAAE,kCAAkC;IACjE,WAAW,EAAE,2CAA2C;IACxD,4BAA4B,EAAE,2CAA2C;IACzE,QAAQ,EAAE,gCAAgC;IAC1C,IAAI,EAAE,sBAAsB;IAC5B,gFAAgF;IAChF,IAAI,EAAE,mBAAmB;IACzB,UAAU,EAAE,mBAAmB;IAC/B,cAAc,EAAE,mBAAmB;IACnC,gFAAgF;IAChF,GAAG,EAAE,cAAc;IACnB,MAAM,EAAE,cAAc;IACtB,gFAAgF;IAChF,OAAO,EAAE,iBAAiB;IAC1B,iBAAiB,EAAE,iBAAiB;IACpC,yBAAyB,EAAE,mCAAmC;IAC9D,gFAAgF;IAChF,mBAAmB,EAAE,4BAA4B;IACjD,gFAAgF;IAChF,iBAAiB,EAAE,0BAA0B;IAC7C,gFAAgF;IAChF,QAAQ,EAAE,gCAAgC;IAC1C,kBAAkB,EAAE,0BAA0B;CAC/C,CAAC;AAEF,+EAA+E;AAC/E,MAAM,UAAU,YAAY,CAAC,KAAa;IACxC,OAAO,iBAAiB,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,KAAK,CAAC;AACzD,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,OAAO,gBAAgB,CAAC,KAAK,CAAC,IAAI,iBAAiB,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;AACtE,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function getLastSessionId(agentName: string, workspaceDir?: string, runner?: string): Promise<string | null>;
2
+ export declare function saveSessionId(agentName: string, sessionId: string, workspaceDir?: string, runner?: string): Promise<void>;
3
+ export declare function deleteSessionId(agentName: string, workspaceDir?: string, runner?: string): Promise<void>;
4
+ //# sourceMappingURL=sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/lib/sessions.ts"],"names":[],"mappings":"AAiDA,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiBxB;AAED,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAwBf;AAED,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,YAAY,CAAC,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CA0Bf"}
@@ -0,0 +1,108 @@
1
+ import fs from 'fs/promises';
2
+ import path from 'path';
3
+ import { Mutex } from 'async-mutex';
4
+ import { getWorkspaceDir } from './config.js';
5
+ const sessionMutex = new Mutex();
6
+ const SESSIONS_FILE = '.claude/sessions.json';
7
+ const SESSION_TTL_MS = 30 * 24 * 60 * 60 * 1000;
8
+ function getSessionsPath(workspaceDir) {
9
+ return path.resolve(workspaceDir || getWorkspaceDir(), SESSIONS_FILE);
10
+ }
11
+ function buildKey(runner, agentName) {
12
+ return runner ? `${runner}:${agentName}` : agentName;
13
+ }
14
+ async function purgeExpired(sessions) {
15
+ const now = Date.now();
16
+ const purged = {};
17
+ let changed = false;
18
+ for (const [key, val] of Object.entries(sessions)) {
19
+ if (typeof val === 'object' && val !== null && 'ts' in val) {
20
+ if (now - val.ts < SESSION_TTL_MS) {
21
+ purged[key] = val;
22
+ }
23
+ else {
24
+ changed = true;
25
+ }
26
+ }
27
+ else {
28
+ purged[key] = val;
29
+ }
30
+ }
31
+ return changed ? purged : sessions;
32
+ }
33
+ function extractId(val) {
34
+ if (!val)
35
+ return null;
36
+ if (typeof val === 'string')
37
+ return val;
38
+ return val.id || null;
39
+ }
40
+ export async function getLastSessionId(agentName, workspaceDir, runner) {
41
+ return sessionMutex.runExclusive(async () => {
42
+ try {
43
+ const filePath = getSessionsPath(workspaceDir);
44
+ const content = await fs.readFile(filePath, 'utf-8');
45
+ let sessions = JSON.parse(content);
46
+ sessions = await purgeExpired(sessions);
47
+ const namespacedKey = buildKey(runner, agentName);
48
+ if (sessions[namespacedKey]) {
49
+ return extractId(sessions[namespacedKey]);
50
+ }
51
+ return extractId(sessions[agentName]) || null;
52
+ }
53
+ catch (_error) {
54
+ return null;
55
+ }
56
+ });
57
+ }
58
+ export async function saveSessionId(agentName, sessionId, workspaceDir, runner) {
59
+ return sessionMutex.runExclusive(async () => {
60
+ const filePath = getSessionsPath(workspaceDir);
61
+ const dir = path.dirname(filePath);
62
+ try {
63
+ await fs.mkdir(dir, { recursive: true });
64
+ let sessions = {};
65
+ try {
66
+ const content = await fs.readFile(filePath, 'utf-8');
67
+ sessions = JSON.parse(content);
68
+ sessions = await purgeExpired(sessions);
69
+ }
70
+ catch (_e) {
71
+ // Ignore error (file new)
72
+ }
73
+ const key = buildKey(runner, agentName);
74
+ sessions[key] = { id: sessionId, ts: Date.now() };
75
+ await fs.writeFile(filePath, JSON.stringify(sessions, null, 2), 'utf-8');
76
+ }
77
+ catch (error) {
78
+ console.error(`Failed to save session ID for ${agentName}:`, error);
79
+ }
80
+ });
81
+ }
82
+ export async function deleteSessionId(agentName, workspaceDir, runner) {
83
+ return sessionMutex.runExclusive(async () => {
84
+ const filePath = getSessionsPath(workspaceDir);
85
+ try {
86
+ const content = await fs.readFile(filePath, 'utf-8');
87
+ let sessions = JSON.parse(content);
88
+ const namespacedKey = buildKey(runner, agentName);
89
+ let deleted = false;
90
+ if (sessions[namespacedKey]) {
91
+ delete sessions[namespacedKey];
92
+ deleted = true;
93
+ }
94
+ if (sessions[agentName]) {
95
+ delete sessions[agentName];
96
+ deleted = true;
97
+ }
98
+ if (deleted) {
99
+ sessions = await purgeExpired(sessions);
100
+ await fs.writeFile(filePath, JSON.stringify(sessions, null, 2), 'utf-8');
101
+ }
102
+ }
103
+ catch (_e) {
104
+ // Ignore
105
+ }
106
+ });
107
+ }
108
+ //# sourceMappingURL=sessions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/lib/sessions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { MemoryProvider, StoreRunParams } from './types.js';
2
+ /**
3
+ * Gets the PostgreSQL Memory Provider.
4
+ * SQLite support has been removed to streamline the codebase.
5
+ */
6
+ export declare function getMemoryProvider(): MemoryProvider;
7
+ /**
8
+ * Convenience helper for runners to record activity without fetching the provider manually.
9
+ */
10
+ export declare function storeRun(params: StoreRunParams): Promise<string> | string;
11
+ //# sourceMappingURL=MemoryFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryFactory.d.ts","sourceRoot":"","sources":["../../src/memory/MemoryFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAK5D;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,CAIlD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,MAAM,CAEzE"}
@@ -0,0 +1,19 @@
1
+ import { PostgresMemoryProvider } from './PostgresMemoryProvider.js';
2
+ let _provider = null;
3
+ /**
4
+ * Gets the PostgreSQL Memory Provider.
5
+ * SQLite support has been removed to streamline the codebase.
6
+ */
7
+ export function getMemoryProvider() {
8
+ if (_provider)
9
+ return _provider;
10
+ _provider = new PostgresMemoryProvider();
11
+ return _provider;
12
+ }
13
+ /**
14
+ * Convenience helper for runners to record activity without fetching the provider manually.
15
+ */
16
+ export function storeRun(params) {
17
+ return getMemoryProvider().storeRun(params);
18
+ }
19
+ //# sourceMappingURL=MemoryFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MemoryFactory.js","sourceRoot":"","sources":["../../src/memory/MemoryFactory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE,IAAI,SAAS,GAA0B,IAAI,CAAC;AAE5C;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,IAAI,SAAS;QAAE,OAAO,SAAS,CAAC;IAChC,SAAS,GAAG,IAAI,sBAAsB,EAAE,CAAC;IACzC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,QAAQ,CAAC,MAAsB;IAC7C,OAAO,iBAAiB,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,29 @@
1
+ import { MemoryProvider, AgentRun, SearchResult, MemoryStats, StoreRunParams, SearchMemoryParams } from './types.js';
2
+ export declare class PostgresMemoryProvider implements MemoryProvider {
3
+ private pools;
4
+ private initializedDbs;
5
+ private maintenancePool;
6
+ private coreDbName;
7
+ private dbVectorSupport;
8
+ private dbCreationInProgress;
9
+ constructor();
10
+ private sanitizeIdentifier;
11
+ private getDbName;
12
+ private getPoolFor;
13
+ private ensureDatabaseExists;
14
+ private initializeDb;
15
+ storeRun(params: StoreRunParams): Promise<string>;
16
+ storeKnowledge(params: {
17
+ text: string;
18
+ source?: string;
19
+ agentName?: string;
20
+ }): Promise<string>;
21
+ searchMemory(params: SearchMemoryParams): Promise<SearchResult[]>;
22
+ getRecentRuns(params: {
23
+ runner?: string;
24
+ limit?: number;
25
+ agentName?: string;
26
+ }): Promise<AgentRun[]>;
27
+ getStats(agentName?: string): Promise<MemoryStats>;
28
+ }
29
+ //# sourceMappingURL=PostgresMemoryProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PostgresMemoryProvider.d.ts","sourceRoot":"","sources":["../../src/memory/PostgresMemoryProvider.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,cAAc,EACd,kBAAkB,EACnB,MAAM,YAAY,CAAC;AAcpB,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,OAAO,CAAC,KAAK,CAA2B;IACxC,OAAO,CAAC,cAAc,CAAqB;IAC3C,OAAO,CAAC,eAAe,CAAO;IAC9B,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,oBAAoB,CAAqB;;IAOjD,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,SAAS;YAKH,UAAU;YA6CV,oBAAoB;YA+FpB,YAAY;IAmGpB,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBjD,cAAc,CAAC,MAAM,EAAE;QAC3B,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,MAAM,CAAC;IA4Bb,YAAY,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAkEjE,aAAa,CAAC,MAAM,EAAE;QAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAsBjB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;CAuBzD"}