overmind-mcp 2.3.4 → 2.4.1
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.
- package/README.md +80 -107
- package/assets/overmind_mcp_pro_banner_v3.png +0 -0
- package/dist/bin/cli.js +7 -438
- package/dist/bin/cli.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/config.d.ts +1 -31
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +27 -19
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/sessions.d.ts +2 -3
- package/dist/lib/sessions.d.ts.map +1 -1
- package/dist/lib/sessions.js +25 -94
- package/dist/lib/sessions.js.map +1 -1
- package/dist/memory/MemoryFactory.d.ts +1 -15
- package/dist/memory/MemoryFactory.d.ts.map +1 -1
- package/dist/memory/MemoryFactory.js +3 -53
- package/dist/memory/MemoryFactory.js.map +1 -1
- package/dist/memory/PostgresMemoryProvider.d.ts +0 -7
- package/dist/memory/PostgresMemoryProvider.d.ts.map +1 -1
- package/dist/memory/PostgresMemoryProvider.js +105 -180
- package/dist/memory/PostgresMemoryProvider.js.map +1 -1
- package/dist/server.d.ts +0 -41
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +26 -152
- package/dist/server.js.map +1 -1
- package/dist/services/AgentManager.d.ts.map +1 -1
- package/dist/services/AgentManager.js +11 -67
- package/dist/services/AgentManager.js.map +1 -1
- package/dist/services/ClaudeRunner.d.ts +0 -8
- package/dist/services/ClaudeRunner.d.ts.map +1 -1
- package/dist/services/ClaudeRunner.js +213 -514
- package/dist/services/ClaudeRunner.js.map +1 -1
- package/dist/services/ClineRunner.d.ts +0 -7
- package/dist/services/ClineRunner.d.ts.map +1 -1
- package/dist/services/ClineRunner.js +11 -80
- package/dist/services/ClineRunner.js.map +1 -1
- package/dist/services/GeminiRunner.d.ts +0 -6
- package/dist/services/GeminiRunner.d.ts.map +1 -1
- package/dist/services/GeminiRunner.js +58 -285
- package/dist/services/GeminiRunner.js.map +1 -1
- package/dist/services/KiloRunner.d.ts +0 -12
- package/dist/services/KiloRunner.d.ts.map +1 -1
- package/dist/services/KiloRunner.js +57 -441
- package/dist/services/KiloRunner.js.map +1 -1
- package/dist/services/OpenClawRunner.d.ts +0 -7
- package/dist/services/OpenClawRunner.d.ts.map +1 -1
- package/dist/services/OpenClawRunner.js +11 -79
- package/dist/services/OpenClawRunner.js.map +1 -1
- package/dist/services/OpenCodeRunner.d.ts +0 -7
- package/dist/services/OpenCodeRunner.d.ts.map +1 -1
- package/dist/services/OpenCodeRunner.js +11 -79
- package/dist/services/OpenCodeRunner.js.map +1 -1
- package/dist/services/QwenRunner.d.ts +19 -0
- package/dist/services/QwenRunner.d.ts.map +1 -0
- package/dist/services/QwenRunner.js +87 -0
- package/dist/services/QwenRunner.js.map +1 -0
- package/dist/services/TraeRunner.d.ts +19 -0
- package/dist/services/TraeRunner.d.ts.map +1 -0
- package/dist/services/TraeRunner.js +88 -0
- package/dist/services/TraeRunner.js.map +1 -0
- package/dist/tools/config_example.d.ts +4 -7
- package/dist/tools/config_example.d.ts.map +1 -1
- package/dist/tools/config_example.js +86 -191
- package/dist/tools/config_example.js.map +1 -1
- package/dist/tools/create_agent.d.ts +9 -15
- package/dist/tools/create_agent.d.ts.map +1 -1
- package/dist/tools/create_agent.js +9 -8
- package/dist/tools/create_agent.js.map +1 -1
- package/dist/tools/get_agent_configs.d.ts +4 -10
- package/dist/tools/get_agent_configs.d.ts.map +1 -1
- package/dist/tools/get_agent_configs.js.map +1 -1
- package/dist/tools/manage_agents.d.ts +18 -36
- package/dist/tools/manage_agents.d.ts.map +1 -1
- package/dist/tools/manage_agents.js +2 -2
- package/dist/tools/manage_agents.js.map +1 -1
- package/dist/tools/manage_prompts.d.ts +8 -13
- package/dist/tools/manage_prompts.d.ts.map +1 -1
- package/dist/tools/manage_prompts.js.map +1 -1
- package/dist/tools/memory_runs.d.ts +4 -3
- package/dist/tools/memory_runs.d.ts.map +1 -1
- package/dist/tools/memory_runs.js.map +1 -1
- package/dist/tools/memory_search.d.ts +4 -3
- package/dist/tools/memory_search.d.ts.map +1 -1
- package/dist/tools/memory_search.js.map +1 -1
- package/dist/tools/memory_store.d.ts +5 -11
- package/dist/tools/memory_store.d.ts.map +1 -1
- package/dist/tools/memory_store.js.map +1 -1
- package/dist/tools/run_agent.d.ts +16 -15
- package/dist/tools/run_agent.d.ts.map +1 -1
- package/dist/tools/run_agent.js +160 -128
- package/dist/tools/run_agent.js.map +1 -1
- package/dist/tools/run_claude.d.ts +3 -8
- package/dist/tools/run_claude.d.ts.map +1 -1
- package/dist/tools/run_claude.js +41 -59
- package/dist/tools/run_claude.js.map +1 -1
- package/dist/tools/run_cline.d.ts +4 -13
- package/dist/tools/run_cline.d.ts.map +1 -1
- package/dist/tools/run_cline.js +43 -55
- package/dist/tools/run_cline.js.map +1 -1
- package/dist/tools/run_gemini.d.ts +4 -13
- package/dist/tools/run_gemini.d.ts.map +1 -1
- package/dist/tools/run_gemini.js +33 -53
- package/dist/tools/run_gemini.js.map +1 -1
- package/dist/tools/run_kilo.d.ts +7 -17
- package/dist/tools/run_kilo.d.ts.map +1 -1
- package/dist/tools/run_kilo.js +41 -68
- package/dist/tools/run_kilo.js.map +1 -1
- package/dist/tools/run_openclaw.d.ts +4 -13
- package/dist/tools/run_openclaw.d.ts.map +1 -1
- package/dist/tools/run_openclaw.js +44 -52
- package/dist/tools/run_openclaw.js.map +1 -1
- package/dist/tools/run_opencode.d.ts +4 -13
- package/dist/tools/run_opencode.d.ts.map +1 -1
- package/dist/tools/run_opencode.js +39 -52
- package/dist/tools/run_opencode.js.map +1 -1
- package/dist/tools/run_qwen.d.ts +15 -0
- package/dist/tools/run_qwen.d.ts.map +1 -0
- package/dist/tools/run_qwen.js +61 -0
- package/dist/tools/run_qwen.js.map +1 -0
- package/dist/tools/run_trae.d.ts +15 -0
- package/dist/tools/run_trae.d.ts.map +1 -0
- package/dist/tools/run_trae.js +66 -0
- package/dist/tools/run_trae.js.map +1 -0
- package/dist/tools/shell_execute.d.ts +10 -0
- package/dist/tools/shell_execute.d.ts.map +1 -0
- package/dist/tools/shell_execute.js +24 -0
- package/dist/tools/shell_execute.js.map +1 -0
- package/package.json +25 -55
- package/.mcp.json.example +0 -21
- package/assets/overmind.png +0 -0
- package/bin/.gitkeep +0 -0
- package/bin/README.md +0 -34
- package/bin/install-overmind-unix.sh +0 -412
- package/bin/install-overmind-windows.bat +0 -407
- package/docs/README.md +0 -128
- package/docs/agent_control.md +0 -656
- package/docs/index.html +0 -493
- package/docs/library.html +0 -239
- package/docs/prompt.html +0 -1212
- package/docs/script.js +0 -428
- package/docs/styles.css +0 -2816
- package/scripts/auto-changelog.mjs +0 -132
- package/scripts/auto-install.mjs +0 -322
- package/scripts/install-dependencies.mjs +0 -462
- package/scripts/postgres-manager.mjs +0 -219
- package/scripts/postinstall.mjs +0 -538
- package/scripts/setup-overmind-db.mjs +0 -199
- package/scripts/setup-windows.js +0 -266
- package/scripts/setup.mjs +0 -397
- package/scripts/test-installation.mjs +0 -158
- package/scripts/uninstall.mjs +0 -238
package/dist/lib/config.js
CHANGED
|
@@ -2,13 +2,10 @@ import os from 'os';
|
|
|
2
2
|
import path from 'path';
|
|
3
3
|
import fs from 'fs';
|
|
4
4
|
import { fileURLToPath } from 'url';
|
|
5
|
-
import { loadEnvQuietly } from './loadEnv.js';
|
|
6
5
|
const __filename = fileURLToPath(import.meta.url);
|
|
7
6
|
const __dirname = path.dirname(__filename);
|
|
8
7
|
export const DEFAULT_CONFIG = {
|
|
9
|
-
TIMEOUT_MS:
|
|
10
|
-
KEEPALIVE_INTERVAL_MS: 900000, // 15 minutes
|
|
11
|
-
HARD_TIMEOUT_MS: 60000, // 1 minute extra after keepalive
|
|
8
|
+
TIMEOUT_MS: 300000, // 5 minutes
|
|
12
9
|
CLAUDE: {
|
|
13
10
|
CORE: '--output-format json',
|
|
14
11
|
PERMISSIONS: '--dangerously-skip-permissions',
|
|
@@ -17,21 +14,32 @@ export const DEFAULT_CONFIG = {
|
|
|
17
14
|
MCP: '.mcp.json', // Will be resolved dynamically
|
|
18
15
|
},
|
|
19
16
|
},
|
|
20
|
-
KILO: {
|
|
21
|
-
CORE: '--auto',
|
|
22
|
-
DEFAULT_MODEL: 'step 3.5 flash',
|
|
23
|
-
PATHS: {
|
|
24
|
-
SETTINGS: './.claude/settings.json',
|
|
25
|
-
},
|
|
26
|
-
},
|
|
27
|
-
HERMES: {
|
|
28
|
-
CORE: 'chat -q',
|
|
29
|
-
PATHS: {
|
|
30
|
-
SETTINGS: './.hermes/settings.json',
|
|
31
|
-
},
|
|
32
|
-
},
|
|
33
17
|
};
|
|
34
18
|
export const CONFIG = { ...DEFAULT_CONFIG };
|
|
19
|
+
// Helper to manually parse .env without any noisy console.logs
|
|
20
|
+
function loadEnvQuietly(envPath) {
|
|
21
|
+
try {
|
|
22
|
+
if (fs.existsSync(envPath)) {
|
|
23
|
+
const content = fs.readFileSync(envPath, 'utf8');
|
|
24
|
+
content.split('\n').forEach((line) => {
|
|
25
|
+
const match = line.match(/^\s*([\w.-]+)\s*=\s*(.*)?\s*$/);
|
|
26
|
+
if (match) {
|
|
27
|
+
const key = match[1];
|
|
28
|
+
let value = (match[2] || '').replace(/\s*#.*$/, '').trim();
|
|
29
|
+
if (value.startsWith('"') && value.endsWith('"'))
|
|
30
|
+
value = value.slice(1, -1);
|
|
31
|
+
else if (value.startsWith("'") && value.endsWith("'"))
|
|
32
|
+
value = value.slice(1, -1);
|
|
33
|
+
if (!process.env[key])
|
|
34
|
+
process.env[key] = value;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch (_e) {
|
|
40
|
+
// Ignore .env parsing errors
|
|
41
|
+
}
|
|
42
|
+
}
|
|
35
43
|
let cachedWorkspaceDir = null;
|
|
36
44
|
export function resetWorkspaceCache() {
|
|
37
45
|
cachedWorkspaceDir = null;
|
|
@@ -88,10 +96,10 @@ export function getWorkspaceDir() {
|
|
|
88
96
|
}
|
|
89
97
|
// Trigger initial environment loading on module import
|
|
90
98
|
getWorkspaceDir();
|
|
91
|
-
export function resolveConfigPath(configPath
|
|
99
|
+
export function resolveConfigPath(configPath) {
|
|
92
100
|
if (path.isAbsolute(configPath))
|
|
93
101
|
return configPath;
|
|
94
|
-
const workspaceDir =
|
|
102
|
+
const workspaceDir = getWorkspaceDir();
|
|
95
103
|
const fullPath = path.resolve(workspaceDir, configPath);
|
|
96
104
|
// Special handling for MCP config to support .local variant
|
|
97
105
|
if (configPath === '.mcp.json' && !fs.existsSync(fullPath)) {
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAcpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAE3C,MAAM,CAAC,MAAM,cAAc,GAAe;IACxC,UAAU,EAAE,MAAM,EAAE,YAAY;IAChC,MAAM,EAAE;QACN,IAAI,EAAE,sBAAsB;QAC5B,WAAW,EAAE,gCAAgC;QAC7C,KAAK,EAAE;YACL,QAAQ,EAAE,yBAAyB;YACnC,GAAG,EAAE,WAAW,EAAE,+BAA+B;SAClD;KACF;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,CAAC;AAE5C,+DAA+D;AAC/D,SAAS,cAAc,CAAC,OAAe;IACrC,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBAC1D,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACrB,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBAC3D,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;wBAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;yBACxE,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;wBAAE,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;oBAClF,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;wBAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAClD,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,6BAA6B;IAC/B,CAAC;AACH,CAAC;AAED,IAAI,kBAAkB,GAAkB,IAAI,CAAC;AAE7C,MAAM,UAAU,mBAAmB;IACjC,kBAAkB,GAAG,IAAI,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,IAAI,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM;QAAE,OAAO,kBAAkB,CAAC;IAErF,IAAI,YAAY,GAAG,EAAE,CAAC;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;QACnC,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;IAC9D,CAAC;SAAM,CAAC;QACN,sEAAsE;QACtE,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;QAC1B,IACE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAC1C,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,iBAAiB,CAAC,CAAC,EAChD,CAAC;YACD,YAAY,GAAG,GAAG,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,wBAAwB;YACxB,IAAI,OAAO,GAAG,GAAG,CAAC;YAClB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,EAAE,CAAC;gBACzC,IACE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;oBAC9C,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,EACpD,CAAC;oBACD,YAAY,GAAG,OAAO,CAAC;oBACvB,MAAM;gBACR,CAAC;gBACD,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;YAED,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,oCAAoC;gBACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAClD,IACE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;oBAC/C,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC,EACrD,CAAC;oBACD,YAAY,GAAG,QAAQ,CAAC;gBAC1B,CAAC;qBAAM,CAAC;oBACN,qBAAqB;oBACrB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;oBAC7B,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;oBACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;wBACjC,EAAE,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;wBAChD,EAAE,CAAC,aAAa,CACd,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EACpC,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC5C,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,uDAAuD;IACvD,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC;IAChD,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,4BAA4B,CAAC,CAAC,CAAC;IAEzE,kBAAkB,GAAG,YAAY,CAAC;IAClC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,uDAAuD;AACvD,eAAe,EAAE,CAAC;AAElB,MAAM,UAAU,iBAAiB,CAAC,UAAkB;IAClD,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,UAAU,CAAC;IAEnD,MAAM,YAAY,GAAG,eAAe,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAExD,4DAA4D;IAC5D,IAAI,UAAU,KAAK,WAAW,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;QAChE,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACjD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,eAAwB,EAAE,UAAmB;IACxE,IAAI,eAAe;QAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,eAAe,CAAC;IACpE,IAAI,UAAU;QAAE,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,UAAU,CAAC;AACvD,CAAC"}
|
package/dist/lib/sessions.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export declare function getLastSessionId(agentName: string
|
|
2
|
-
export declare function saveSessionId(agentName: string, sessionId: string
|
|
3
|
-
export declare function deleteSessionId(agentName: string, workspaceDir?: string, runner?: string): Promise<void>;
|
|
1
|
+
export declare function getLastSessionId(agentName: string): Promise<string | null>;
|
|
2
|
+
export declare function saveSessionId(agentName: string, sessionId: string): Promise<void>;
|
|
4
3
|
//# sourceMappingURL=sessions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/lib/sessions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../src/lib/sessions.ts"],"names":[],"mappings":"AAUA,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAShF;AAED,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBvF"}
|
package/dist/lib/sessions.js
CHANGED
|
@@ -1,108 +1,39 @@
|
|
|
1
1
|
import fs from 'fs/promises';
|
|
2
2
|
import path from 'path';
|
|
3
|
-
import { Mutex } from 'async-mutex';
|
|
4
3
|
import { getWorkspaceDir } from './config.js';
|
|
5
|
-
const sessionMutex = new Mutex();
|
|
6
4
|
const SESSIONS_FILE = '.claude/sessions.json';
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return path.resolve(workspaceDir || getWorkspaceDir(), SESSIONS_FILE);
|
|
5
|
+
function getSessionsPath() {
|
|
6
|
+
return path.resolve(getWorkspaceDir(), SESSIONS_FILE);
|
|
10
7
|
}
|
|
11
|
-
function
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
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
|
-
}
|
|
8
|
+
export async function getLastSessionId(agentName) {
|
|
9
|
+
try {
|
|
10
|
+
const filePath = getSessionsPath();
|
|
11
|
+
const content = await fs.readFile(filePath, 'utf-8');
|
|
12
|
+
const sessions = JSON.parse(content);
|
|
13
|
+
return sessions[agentName] || null;
|
|
14
|
+
}
|
|
15
|
+
catch (_error) {
|
|
16
|
+
return null; // File doesn't exist or error reading
|
|
30
17
|
}
|
|
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
18
|
}
|
|
82
|
-
export async function
|
|
83
|
-
|
|
84
|
-
|
|
19
|
+
export async function saveSessionId(agentName, sessionId) {
|
|
20
|
+
const filePath = getSessionsPath();
|
|
21
|
+
const dir = path.dirname(filePath);
|
|
22
|
+
try {
|
|
23
|
+
await fs.mkdir(dir, { recursive: true });
|
|
24
|
+
let sessions = {};
|
|
85
25
|
try {
|
|
86
26
|
const content = await fs.readFile(filePath, 'utf-8');
|
|
87
|
-
|
|
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
|
-
}
|
|
27
|
+
sessions = JSON.parse(content);
|
|
102
28
|
}
|
|
103
29
|
catch (_e) {
|
|
104
|
-
// Ignore
|
|
30
|
+
// Ignore error (file new)
|
|
105
31
|
}
|
|
106
|
-
|
|
32
|
+
sessions[agentName] = sessionId;
|
|
33
|
+
await fs.writeFile(filePath, JSON.stringify(sessions, null, 2), 'utf-8');
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
console.error(`Failed to save session ID for ${agentName}:`, error);
|
|
37
|
+
}
|
|
107
38
|
}
|
|
108
39
|
//# sourceMappingURL=sessions.js.map
|
package/dist/lib/sessions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/lib/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"sessions.js","sourceRoot":"","sources":["../../src/lib/sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAE9C,SAAS,eAAe;IACtB,OAAO,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,aAAa,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,SAAiB;IACtD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QACnC,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACrC,OAAO,QAAQ,CAAC,SAAS,CAAC,IAAI,IAAI,CAAC;IACrC,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC,CAAC,sCAAsC;IACrD,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,SAAiB,EAAE,SAAiB;IACtE,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEnC,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzC,IAAI,QAAQ,GAA2B,EAAE,CAAC;QAC1C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,EAAE,EAAE,CAAC;YACZ,0BAA0B;QAC5B,CAAC;QAED,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;QAChC,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,iCAAiC,SAAS,GAAG,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;AACH,CAAC"}
|
|
@@ -1,25 +1,11 @@
|
|
|
1
1
|
import { MemoryProvider, StoreRunParams } from './types.js';
|
|
2
|
-
export { registerMemoryAlertCallback, unregisterMemoryAlertCallback } from './PostgresMemoryProvider.js';
|
|
3
2
|
/**
|
|
4
3
|
* Gets the PostgreSQL Memory Provider.
|
|
5
4
|
* SQLite support has been removed to streamline the codebase.
|
|
6
5
|
*/
|
|
7
6
|
export declare function getMemoryProvider(): MemoryProvider;
|
|
8
|
-
/**
|
|
9
|
-
* Check if memory database is available.
|
|
10
|
-
*/
|
|
11
|
-
export declare function isMemoryAvailable(): boolean;
|
|
12
|
-
/**
|
|
13
|
-
* Get last database error message.
|
|
14
|
-
*/
|
|
15
|
-
export declare function getLastMemoryError(): string | null;
|
|
16
|
-
/**
|
|
17
|
-
* Initialize memory factory and register alert callbacks.
|
|
18
|
-
*/
|
|
19
|
-
export declare function initMemoryFactory(): void;
|
|
20
7
|
/**
|
|
21
8
|
* Convenience helper for runners to record activity without fetching the provider manually.
|
|
22
|
-
* THROWS on DB failure to alert the caller - memory failures should not be silent!
|
|
23
9
|
*/
|
|
24
|
-
export declare function storeRun(params: StoreRunParams): Promise<string
|
|
10
|
+
export declare function storeRun(params: StoreRunParams): Promise<string> | string;
|
|
25
11
|
//# sourceMappingURL=MemoryFactory.d.ts.map
|
|
@@ -1 +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;
|
|
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"}
|
|
@@ -1,11 +1,5 @@
|
|
|
1
|
-
import { PostgresMemoryProvider
|
|
2
|
-
import pino from 'pino';
|
|
3
|
-
const logger = pino({ name: 'MemoryFactory' });
|
|
1
|
+
import { PostgresMemoryProvider } from './PostgresMemoryProvider.js';
|
|
4
2
|
let _provider = null;
|
|
5
|
-
let _isDbAvailable = true;
|
|
6
|
-
let _lastDbError = null;
|
|
7
|
-
// Re-export for external use
|
|
8
|
-
export { registerMemoryAlertCallback, unregisterMemoryAlertCallback } from './PostgresMemoryProvider.js';
|
|
9
3
|
/**
|
|
10
4
|
* Gets the PostgreSQL Memory Provider.
|
|
11
5
|
* SQLite support has been removed to streamline the codebase.
|
|
@@ -16,54 +10,10 @@ export function getMemoryProvider() {
|
|
|
16
10
|
_provider = new PostgresMemoryProvider();
|
|
17
11
|
return _provider;
|
|
18
12
|
}
|
|
19
|
-
/**
|
|
20
|
-
* Check if memory database is available.
|
|
21
|
-
*/
|
|
22
|
-
export function isMemoryAvailable() {
|
|
23
|
-
return _isDbAvailable;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Get last database error message.
|
|
27
|
-
*/
|
|
28
|
-
export function getLastMemoryError() {
|
|
29
|
-
return _lastDbError;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Initialize memory factory and register alert callbacks.
|
|
33
|
-
*/
|
|
34
|
-
export function initMemoryFactory() {
|
|
35
|
-
registerMemoryAlertCallback((message, error) => {
|
|
36
|
-
_isDbAvailable = false;
|
|
37
|
-
_lastDbError = error?.message || message;
|
|
38
|
-
logger.error({ message, error: error?.message }, 'MEMORY ALERT: Database unavailable!');
|
|
39
|
-
// Could trigger additional alerts here (webhooks, notifications, etc.)
|
|
40
|
-
});
|
|
41
|
-
logger.info('MemoryFactory initialized with alert callbacks');
|
|
42
|
-
}
|
|
43
|
-
// Initialize on module load
|
|
44
|
-
initMemoryFactory();
|
|
45
13
|
/**
|
|
46
14
|
* Convenience helper for runners to record activity without fetching the provider manually.
|
|
47
|
-
* THROWS on DB failure to alert the caller - memory failures should not be silent!
|
|
48
15
|
*/
|
|
49
|
-
export
|
|
50
|
-
|
|
51
|
-
try {
|
|
52
|
-
_isDbAvailable = true;
|
|
53
|
-
_lastDbError = null;
|
|
54
|
-
return await provider.storeRun(params);
|
|
55
|
-
}
|
|
56
|
-
catch (error) {
|
|
57
|
-
_isDbAvailable = false;
|
|
58
|
-
const err = error instanceof Error ? error : new Error(String(error));
|
|
59
|
-
_lastDbError = err.message;
|
|
60
|
-
logger.error({
|
|
61
|
-
error: err.message,
|
|
62
|
-
runner: params.runner,
|
|
63
|
-
agentName: params.agentName,
|
|
64
|
-
}, 'CRITICAL: Failed to store run in memory - database may be unavailable!');
|
|
65
|
-
// Re-throw so the runner can report this to the user
|
|
66
|
-
throw new Error(`MEMORY_UNAVAILABLE: ${err.message}`, { cause: error });
|
|
67
|
-
}
|
|
16
|
+
export function storeRun(params) {
|
|
17
|
+
return getMemoryProvider().storeRun(params);
|
|
68
18
|
}
|
|
69
19
|
//# sourceMappingURL=MemoryFactory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryFactory.js","sourceRoot":"","sources":["../../src/memory/MemoryFactory.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
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"}
|
|
@@ -1,16 +1,10 @@
|
|
|
1
1
|
import { MemoryProvider, AgentRun, SearchResult, MemoryStats, StoreRunParams, SearchMemoryParams } from './types.js';
|
|
2
|
-
interface AlertCallback {
|
|
3
|
-
(message: string, error?: Error): void;
|
|
4
|
-
}
|
|
5
|
-
export declare function registerMemoryAlertCallback(callback: AlertCallback): void;
|
|
6
|
-
export declare function unregisterMemoryAlertCallback(callback: AlertCallback): void;
|
|
7
2
|
export declare class PostgresMemoryProvider implements MemoryProvider {
|
|
8
3
|
private pools;
|
|
9
4
|
private initializedDbs;
|
|
10
5
|
private maintenancePool;
|
|
11
6
|
private coreDbName;
|
|
12
7
|
private dbVectorSupport;
|
|
13
|
-
private dbCreationInProgress;
|
|
14
8
|
constructor();
|
|
15
9
|
private sanitizeIdentifier;
|
|
16
10
|
private getDbName;
|
|
@@ -31,5 +25,4 @@ export declare class PostgresMemoryProvider implements MemoryProvider {
|
|
|
31
25
|
}): Promise<AgentRun[]>;
|
|
32
26
|
getStats(agentName?: string): Promise<MemoryStats>;
|
|
33
27
|
}
|
|
34
|
-
export {};
|
|
35
28
|
//# sourceMappingURL=PostgresMemoryProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PostgresMemoryProvider.d.ts","sourceRoot":"","sources":["../../src/memory/PostgresMemoryProvider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PostgresMemoryProvider.d.ts","sourceRoot":"","sources":["../../src/memory/PostgresMemoryProvider.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,cAAc,EACd,kBAAkB,EACnB,MAAM,YAAY,CAAC;AA4DpB,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;;IAerD,OAAO,CAAC,kBAAkB;IAI1B,OAAO,CAAC,SAAS;YAKH,UAAU;YA4BV,oBAAoB;YAmCpB,YAAY;IAoGpB,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"}
|