funolio-agent 1.0.7 → 1.0.48
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/dist/agent-config.d.ts +9 -1
- package/dist/agent-config.d.ts.map +1 -1
- package/dist/agent-config.js +4 -1
- package/dist/agent-config.js.map +1 -1
- package/dist/approval.d.ts +1 -0
- package/dist/approval.d.ts.map +1 -1
- package/dist/approval.js +12 -0
- package/dist/approval.js.map +1 -1
- package/dist/auth/auto-detect.d.ts +11 -3
- package/dist/auth/auto-detect.d.ts.map +1 -1
- package/dist/auth/auto-detect.js +136 -168
- package/dist/auth/auto-detect.js.map +1 -1
- package/dist/auth/subscription-runtime.js +1 -1
- package/dist/auth/subscription-runtime.js.map +1 -1
- package/dist/auto-organizer.d.ts.map +1 -1
- package/dist/auto-organizer.js +4 -3
- package/dist/auto-organizer.js.map +1 -1
- package/dist/backfill.d.ts.map +1 -1
- package/dist/backfill.js +34 -30
- package/dist/backfill.js.map +1 -1
- package/dist/bot-manager.d.ts +4 -8
- package/dist/bot-manager.d.ts.map +1 -1
- package/dist/bot-manager.js +31 -160
- package/dist/bot-manager.js.map +1 -1
- package/dist/clerk-model.d.ts +15 -7
- package/dist/clerk-model.d.ts.map +1 -1
- package/dist/clerk-model.js +78 -43
- package/dist/clerk-model.js.map +1 -1
- package/dist/cli-session-epoch.d.ts +10 -0
- package/dist/cli-session-epoch.d.ts.map +1 -0
- package/dist/cli-session-epoch.js +61 -0
- package/dist/cli-session-epoch.js.map +1 -0
- package/dist/cli.js +7 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/import-history.js +5 -1
- package/dist/commands/import-history.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +30 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/pool.js +1 -1
- package/dist/commands/pool.js.map +1 -1
- package/dist/commands/setup.d.ts +37 -0
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +146 -43
- package/dist/commands/setup.js.map +1 -1
- package/dist/commands/start.d.ts.map +1 -1
- package/dist/commands/start.js +117 -255
- package/dist/commands/start.js.map +1 -1
- package/dist/config-cleanup.d.ts.map +1 -1
- package/dist/config-cleanup.js +2 -1
- package/dist/config-cleanup.js.map +1 -1
- package/dist/config.d.ts +6 -9
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +7 -18
- package/dist/config.js.map +1 -1
- package/dist/context-window.d.ts +33 -5
- package/dist/context-window.d.ts.map +1 -1
- package/dist/context-window.js +122 -21
- package/dist/context-window.js.map +1 -1
- package/dist/eval/orchestrator-front-door-replay.js +1 -1
- package/dist/eval/orchestrator-front-door-replay.js.map +1 -1
- package/dist/eval/policy-detection-replay.js +1 -1
- package/dist/eval/policy-detection-replay.js.map +1 -1
- package/dist/import-parser-core.d.ts.map +1 -1
- package/dist/import-parser-core.js +74 -8
- package/dist/import-parser-core.js.map +1 -1
- package/dist/integration-tokens.d.ts +1 -6
- package/dist/integration-tokens.d.ts.map +1 -1
- package/dist/integration-tokens.js +38 -40
- package/dist/integration-tokens.js.map +1 -1
- package/dist/local-cli-pty-manager.d.ts +50 -0
- package/dist/local-cli-pty-manager.d.ts.map +1 -0
- package/dist/local-cli-pty-manager.js +645 -0
- package/dist/local-cli-pty-manager.js.map +1 -0
- package/dist/local-data.d.ts +89 -6
- package/dist/local-data.d.ts.map +1 -1
- package/dist/local-data.js +600 -63
- package/dist/local-data.js.map +1 -1
- package/dist/local-db.d.ts.map +1 -1
- package/dist/local-db.js +74 -1
- package/dist/local-db.js.map +1 -1
- package/dist/local-funnel.d.ts +0 -7
- package/dist/local-funnel.d.ts.map +1 -1
- package/dist/local-funnel.js +22 -30
- package/dist/local-funnel.js.map +1 -1
- package/dist/local-import-worker.d.ts.map +1 -1
- package/dist/local-import-worker.js +49 -4
- package/dist/local-import-worker.js.map +1 -1
- package/dist/local-memory-search.d.ts +1 -0
- package/dist/local-memory-search.d.ts.map +1 -1
- package/dist/local-memory-search.js +107 -21
- package/dist/local-memory-search.js.map +1 -1
- package/dist/local-server.d.ts +21 -0
- package/dist/local-server.d.ts.map +1 -1
- package/dist/local-server.js +1057 -501
- package/dist/local-server.js.map +1 -1
- package/dist/mcp/bridge-server.d.ts.map +1 -1
- package/dist/mcp/bridge-server.js +2 -1
- package/dist/mcp/bridge-server.js.map +1 -1
- package/dist/mcp/local-memory-server.d.ts +6 -1
- package/dist/mcp/local-memory-server.d.ts.map +1 -1
- package/dist/mcp/local-memory-server.js +38 -13
- package/dist/mcp/local-memory-server.js.map +1 -1
- package/dist/mcp/manager.d.ts +3 -22
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +66 -320
- package/dist/mcp/manager.js.map +1 -1
- package/dist/memory-extraction.d.ts +2 -0
- package/dist/memory-extraction.d.ts.map +1 -1
- package/dist/memory-extraction.js +3 -1
- package/dist/memory-extraction.js.map +1 -1
- package/dist/message-loop.d.ts +1 -3
- package/dist/message-loop.d.ts.map +1 -1
- package/dist/message-loop.js +220 -437
- package/dist/message-loop.js.map +1 -1
- package/dist/mqtt-client.d.ts +2 -28
- package/dist/mqtt-client.d.ts.map +1 -1
- package/dist/mqtt-client.js +2 -2
- package/dist/mqtt-client.js.map +1 -1
- package/dist/oauth.d.ts +6 -0
- package/dist/oauth.d.ts.map +1 -1
- package/dist/oauth.js +91 -0
- package/dist/oauth.js.map +1 -1
- package/dist/orchestration/front-door-policy.d.ts +5 -2
- package/dist/orchestration/front-door-policy.d.ts.map +1 -1
- package/dist/orchestration/front-door-policy.js +25 -28
- package/dist/orchestration/front-door-policy.js.map +1 -1
- package/dist/orchestration/orchestrator-blocked-prompt.d.ts +2 -1
- package/dist/orchestration/orchestrator-blocked-prompt.d.ts.map +1 -1
- package/dist/orchestration/orchestrator-blocked-prompt.js +12 -1
- package/dist/orchestration/orchestrator-blocked-prompt.js.map +1 -1
- package/dist/orchestration/orchestrator-final-response-prompt.d.ts +4 -1
- package/dist/orchestration/orchestrator-final-response-prompt.d.ts.map +1 -1
- package/dist/orchestration/orchestrator-final-response-prompt.js +9 -7
- package/dist/orchestration/orchestrator-final-response-prompt.js.map +1 -1
- package/dist/orchestration/orchestrator-operating-prompt.d.ts +11 -0
- package/dist/orchestration/orchestrator-operating-prompt.d.ts.map +1 -1
- package/dist/orchestration/orchestrator-operating-prompt.js +67 -44
- package/dist/orchestration/orchestrator-operating-prompt.js.map +1 -1
- package/dist/orchestration/worker-operating-prompt.d.ts +2 -0
- package/dist/orchestration/worker-operating-prompt.d.ts.map +1 -1
- package/dist/orchestration/worker-operating-prompt.js +41 -2
- package/dist/orchestration/worker-operating-prompt.js.map +1 -1
- package/dist/orchestrator.d.ts +17 -0
- package/dist/orchestrator.d.ts.map +1 -1
- package/dist/orchestrator.js +328 -166
- package/dist/orchestrator.js.map +1 -1
- package/dist/prompt-template.js +3 -3
- package/dist/prompt-template.js.map +1 -1
- package/dist/providers/anthropic.d.ts +0 -5
- package/dist/providers/anthropic.d.ts.map +1 -1
- package/dist/providers/anthropic.js +29 -75
- package/dist/providers/anthropic.js.map +1 -1
- package/dist/providers/claude-cli-prompt.d.ts.map +1 -1
- package/dist/providers/claude-cli-prompt.js +22 -6
- package/dist/providers/claude-cli-prompt.js.map +1 -1
- package/dist/providers/claude-cli.d.ts.map +1 -1
- package/dist/providers/claude-cli.js +36 -142
- package/dist/providers/claude-cli.js.map +1 -1
- package/dist/providers/codex-cli.d.ts.map +1 -1
- package/dist/providers/codex-cli.js +148 -74
- package/dist/providers/codex-cli.js.map +1 -1
- package/dist/providers/google.d.ts.map +1 -1
- package/dist/providers/google.js +4 -2
- package/dist/providers/google.js.map +1 -1
- package/dist/providers/index.d.ts +13 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/openai.d.ts.map +1 -1
- package/dist/providers/openai.js +27 -2
- package/dist/providers/openai.js.map +1 -1
- package/dist/runtime-context.d.ts +10 -0
- package/dist/runtime-context.d.ts.map +1 -0
- package/dist/runtime-context.js +30 -0
- package/dist/runtime-context.js.map +1 -0
- package/dist/storage-mode.d.ts +5 -0
- package/dist/storage-mode.d.ts.map +1 -0
- package/dist/storage-mode.js +21 -0
- package/dist/storage-mode.js.map +1 -0
- package/dist/subagent/queue.d.ts.map +1 -1
- package/dist/subagent/queue.js +1 -0
- package/dist/subagent/queue.js.map +1 -1
- package/dist/summarization-pipeline.d.ts +10 -0
- package/dist/summarization-pipeline.d.ts.map +1 -1
- package/dist/summarization-pipeline.js +147 -34
- package/dist/summarization-pipeline.js.map +1 -1
- package/dist/tool-permissions.d.ts +2 -0
- package/dist/tool-permissions.d.ts.map +1 -0
- package/dist/tool-permissions.js +25 -0
- package/dist/tool-permissions.js.map +1 -0
- package/dist/tools/analyze-image.js +2 -2
- package/dist/tools/analyze-image.js.map +1 -1
- package/dist/tools/edit-file.js +3 -3
- package/dist/tools/edit-file.js.map +1 -1
- package/dist/tools/index.d.ts +7 -8
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +106 -60
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/list-directory.js +7 -4
- package/dist/tools/list-directory.js.map +1 -1
- package/dist/tools/read-file.js +3 -3
- package/dist/tools/read-file.js.map +1 -1
- package/dist/tools/run-command.js +3 -3
- package/dist/tools/run-command.js.map +1 -1
- package/dist/tools/sandbox.d.ts +10 -5
- package/dist/tools/sandbox.d.ts.map +1 -1
- package/dist/tools/sandbox.js +41 -13
- package/dist/tools/sandbox.js.map +1 -1
- package/dist/tools/search-codebase.js +2 -2
- package/dist/tools/search-codebase.js.map +1 -1
- package/dist/tools/search-local-memory.d.ts.map +1 -1
- package/dist/tools/search-local-memory.js +19 -8
- package/dist/tools/search-local-memory.js.map +1 -1
- package/dist/tools/search-memory.d.ts.map +1 -1
- package/dist/tools/search-memory.js +9 -3
- package/dist/tools/search-memory.js.map +1 -1
- package/dist/tools/spawn-subagent.d.ts.map +1 -1
- package/dist/tools/spawn-subagent.js +1 -0
- package/dist/tools/spawn-subagent.js.map +1 -1
- package/dist/tools/write-file.js +3 -3
- package/dist/tools/write-file.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +0 -3
- package/dist/types.js.map +1 -1
- package/dist/verification/index.js +2 -2
- package/dist/verification/index.js.map +1 -1
- package/dist/wizard-state.d.ts.map +1 -1
- package/dist/wizard-state.js +16 -2
- package/dist/wizard-state.js.map +1 -1
- package/dist/wizard-support.d.ts +2 -2
- package/dist/wizard-support.d.ts.map +1 -1
- package/dist/wizard-support.js +88 -99
- package/dist/wizard-support.js.map +1 -1
- package/dist/workflow-engine.d.ts +9 -3
- package/dist/workflow-engine.d.ts.map +1 -1
- package/dist/workflow-engine.js +378 -82
- package/dist/workflow-engine.js.map +1 -1
- package/package.json +2 -1
package/dist/mcp/manager.js
CHANGED
|
@@ -40,20 +40,22 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
40
40
|
return result;
|
|
41
41
|
};
|
|
42
42
|
})();
|
|
43
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
44
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
45
|
-
};
|
|
46
43
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
44
|
exports.MCPManager = void 0;
|
|
48
45
|
const child_process_1 = require("child_process");
|
|
49
46
|
const fs = __importStar(require("fs"));
|
|
50
47
|
const path = __importStar(require("path"));
|
|
51
48
|
const events_1 = require("events");
|
|
52
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
53
49
|
const config_1 = require("../config");
|
|
54
50
|
const registry_1 = require("./registry");
|
|
55
51
|
const stdio_protocol_1 = require("./stdio-protocol");
|
|
56
|
-
const
|
|
52
|
+
const GOOGLE_INTEGRATION_SERVER_IDS = new Set([
|
|
53
|
+
'google-workspace',
|
|
54
|
+
'google-drive',
|
|
55
|
+
'google-calendar',
|
|
56
|
+
'google-chat',
|
|
57
|
+
'gmail',
|
|
58
|
+
]);
|
|
57
59
|
/**
|
|
58
60
|
* MCP Manager — singleton per agent instance.
|
|
59
61
|
*/
|
|
@@ -140,67 +142,16 @@ class MCPManager extends events_1.EventEmitter {
|
|
|
140
142
|
? ['-y', config.npmPackage, ...config.args]
|
|
141
143
|
: ['run', config.pipPackage, ...config.args];
|
|
142
144
|
// Inject integration tokens for known MCP servers (e.g. google-drive → Google OAuth tokens)
|
|
143
|
-
const GOOGLE_MCP_IDS = new Set(['google-workspace', 'google-drive', 'google-calendar', 'gmail']);
|
|
144
145
|
let integrationEnv = {};
|
|
145
146
|
try {
|
|
146
|
-
const { getIntegrationEnvVars } = require('../integration-tokens');
|
|
147
|
-
if (
|
|
147
|
+
const { getIntegrationEnvVars, writeGoogleWorkspaceFiles } = require('../integration-tokens');
|
|
148
|
+
if (GOOGLE_INTEGRATION_SERVER_IDS.has(config.id)) {
|
|
149
|
+
writeGoogleWorkspaceFiles();
|
|
148
150
|
integrationEnv = getIntegrationEnvVars('google');
|
|
149
151
|
}
|
|
150
152
|
}
|
|
151
153
|
catch { }
|
|
152
|
-
|
|
153
|
-
const mergedEnv = { ...process.env, ...integrationEnv, ...config.envVars };
|
|
154
|
-
// For Google MCP servers that use file-based auth (e.g. @piotr-agier/google-drive-mcp),
|
|
155
|
-
// write the credentials and tokens to the expected file locations. These packages read
|
|
156
|
-
// from gcp-oauth.keys.json + ~/.config/google-drive-mcp/tokens.json rather than env vars.
|
|
157
|
-
if (GOOGLE_MCP_IDS.has(config.id)) {
|
|
158
|
-
const clientId = mergedEnv.GOOGLE_CLIENT_ID;
|
|
159
|
-
const clientSecret = mergedEnv.GOOGLE_CLIENT_SECRET;
|
|
160
|
-
const refreshToken = mergedEnv.GOOGLE_REFRESH_TOKEN;
|
|
161
|
-
if (clientId && clientSecret && refreshToken) {
|
|
162
|
-
try {
|
|
163
|
-
const os = require('os');
|
|
164
|
-
const configDir = path.join(os.homedir(), '.config', 'google-drive-mcp');
|
|
165
|
-
if (!fs.existsSync(configDir)) {
|
|
166
|
-
fs.mkdirSync(configDir, { recursive: true, mode: 0o700 });
|
|
167
|
-
}
|
|
168
|
-
// Write credentials file (gcp-oauth.keys.json)
|
|
169
|
-
const keysFile = path.join(configDir, 'gcp-oauth.keys.json');
|
|
170
|
-
fs.writeFileSync(keysFile, JSON.stringify({
|
|
171
|
-
installed: {
|
|
172
|
-
client_id: clientId,
|
|
173
|
-
client_secret: clientSecret,
|
|
174
|
-
redirect_uris: ['http://localhost:3000/oauth2callback'],
|
|
175
|
-
},
|
|
176
|
-
}, null, 2), { mode: 0o600 });
|
|
177
|
-
// Write tokens file. The MCP package validates access_token is truthy
|
|
178
|
-
// before attempting refresh, so we must provide a non-empty value.
|
|
179
|
-
// Setting expiry_date in the past forces an immediate refresh using
|
|
180
|
-
// the refresh_token, which gets a fresh access_token from Google.
|
|
181
|
-
const tokensFile = path.join(configDir, 'tokens.json');
|
|
182
|
-
fs.writeFileSync(tokensFile, JSON.stringify({
|
|
183
|
-
access_token: mergedEnv.GOOGLE_ACCESS_TOKEN || 'needs-refresh',
|
|
184
|
-
refresh_token: refreshToken,
|
|
185
|
-
scope: 'https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/calendar https://www.googleapis.com/auth/gmail.modify https://www.googleapis.com/auth/chat.spaces https://www.googleapis.com/auth/chat.messages',
|
|
186
|
-
token_type: 'Bearer',
|
|
187
|
-
expiry_date: Date.now() - 1000, // Force refresh on first use
|
|
188
|
-
}, null, 2), { mode: 0o600 });
|
|
189
|
-
// Also set the env var so the package can find its config
|
|
190
|
-
mergedEnv.GOOGLE_DRIVE_MCP_TOKEN_PATH = tokensFile;
|
|
191
|
-
mergedEnv.GOOGLE_CLIENT_SECRET_PATH = keysFile;
|
|
192
|
-
console.log(chalk_1.default.green(` ✓ Wrote Google credentials for ${config.id} to ${configDir}`));
|
|
193
|
-
}
|
|
194
|
-
catch (err) {
|
|
195
|
-
console.error(chalk_1.default.red(` ✗ Failed to write Google credential files: ${err.message}`));
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
else {
|
|
199
|
-
console.warn(chalk_1.default.yellow(` ⚠ Missing Google credentials for ${config.id} (need CLIENT_ID, CLIENT_SECRET, REFRESH_TOKEN)`));
|
|
200
|
-
console.warn(chalk_1.default.yellow(` Install via the Funolio marketplace and provide your Google OAuth credentials.`));
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
const env = mergedEnv;
|
|
154
|
+
const env = { ...process.env, ...integrationEnv, ...config.envVars };
|
|
204
155
|
const child = (0, child_process_1.spawn)(cmd, args, {
|
|
205
156
|
stdio: ['pipe', 'pipe', 'pipe'],
|
|
206
157
|
env,
|
|
@@ -213,7 +164,6 @@ class MCPManager extends events_1.EventEmitter {
|
|
|
213
164
|
ready: false,
|
|
214
165
|
requestId: 0,
|
|
215
166
|
pendingRequests: new Map(),
|
|
216
|
-
stderrBuffer: [],
|
|
217
167
|
};
|
|
218
168
|
this.servers.set(config.id, instance);
|
|
219
169
|
const reader = new stdio_protocol_1.McpStdioMessageReader((msg) => {
|
|
@@ -231,19 +181,11 @@ class MCPManager extends events_1.EventEmitter {
|
|
|
231
181
|
child.stdout?.on('data', (chunk) => {
|
|
232
182
|
reader.feed(chunk);
|
|
233
183
|
});
|
|
234
|
-
// Capture recent stderr for error enrichment (ring buffer, last 5 messages)
|
|
235
|
-
const stderrBuffer = [];
|
|
236
|
-
const MAX_STDERR_LINES = 5;
|
|
237
184
|
child.stderr?.on('data', (data) => {
|
|
238
185
|
const msg = data.toString().trim();
|
|
239
|
-
if (msg)
|
|
186
|
+
if (msg)
|
|
240
187
|
console.error(`[MCP:${config.id}] ${msg}`);
|
|
241
|
-
stderrBuffer.push(msg);
|
|
242
|
-
if (stderrBuffer.length > MAX_STDERR_LINES)
|
|
243
|
-
stderrBuffer.shift();
|
|
244
|
-
}
|
|
245
188
|
});
|
|
246
|
-
instance.stderrBuffer = stderrBuffer;
|
|
247
189
|
child.on('exit', (code) => {
|
|
248
190
|
const error = new Error(`MCP server ${config.id} exited with code ${code}`);
|
|
249
191
|
for (const [requestId, pending] of instance.pendingRequests.entries()) {
|
|
@@ -254,17 +196,6 @@ class MCPManager extends events_1.EventEmitter {
|
|
|
254
196
|
this.servers.delete(config.id);
|
|
255
197
|
this.rebuildToolList();
|
|
256
198
|
this.emit('server-stopped', config.id);
|
|
257
|
-
// Fix 2: MCP crash recovery — attempt one restart for always-on servers
|
|
258
|
-
if (config.alwaysOn && entry) {
|
|
259
|
-
console.log(`[MCP] Attempting auto-restart of ${config.id}...`);
|
|
260
|
-
this.launchServer(config, entry).then((tools) => {
|
|
261
|
-
console.log(`[MCP] ✓ Auto-restarted ${config.id} — ${tools.length} tools recovered`);
|
|
262
|
-
this.emit('server-restarted', config.id, tools);
|
|
263
|
-
}).catch((err) => {
|
|
264
|
-
console.error(`[MCP] ✗ Auto-restart of ${config.id} failed: ${err.message}`);
|
|
265
|
-
this.emit('server-restart-failed', config.id, err.message);
|
|
266
|
-
});
|
|
267
|
-
}
|
|
268
199
|
});
|
|
269
200
|
// MCP handshake: initialize
|
|
270
201
|
try {
|
|
@@ -283,15 +214,10 @@ class MCPManager extends events_1.EventEmitter {
|
|
|
283
214
|
inputSchema: t.inputSchema || {},
|
|
284
215
|
serverId: config.id,
|
|
285
216
|
}));
|
|
286
|
-
|
|
287
|
-
const groupedTools = (0, tool_grouping_1.groupMcpTools)(tools, config.id, entry.name);
|
|
288
|
-
if (groupedTools.length < tools.length) {
|
|
289
|
-
console.log(`[MCP] ${entry.name}: grouped ${tools.length} tools into ${groupedTools.length} meta-tool(s)`);
|
|
290
|
-
}
|
|
291
|
-
instance.tools = groupedTools;
|
|
217
|
+
instance.tools = tools;
|
|
292
218
|
instance.ready = true;
|
|
293
219
|
this.rebuildToolList();
|
|
294
|
-
console.log(`[MCP] ${entry.name} launched — ${tools.length} tools discovered
|
|
220
|
+
console.log(`[MCP] ${entry.name} launched — ${tools.length} tools discovered`);
|
|
295
221
|
this.emit('server-ready', config.id, tools);
|
|
296
222
|
return tools;
|
|
297
223
|
}
|
|
@@ -309,14 +235,13 @@ class MCPManager extends events_1.EventEmitter {
|
|
|
309
235
|
const msg = (0, stdio_protocol_1.encodeMcpStdioMessage)({ jsonrpc: '2.0', id, method, params });
|
|
310
236
|
instance.pendingRequests.set(id, { resolve, reject });
|
|
311
237
|
instance.process.stdin.write(msg);
|
|
312
|
-
// Timeout
|
|
313
|
-
const timeoutMs = method === 'initialize' ? 120_000 : 30_000;
|
|
238
|
+
// Timeout after 30s
|
|
314
239
|
setTimeout(() => {
|
|
315
240
|
if (instance.pendingRequests.has(id)) {
|
|
316
241
|
instance.pendingRequests.delete(id);
|
|
317
|
-
reject(new Error(`MCP request ${method} timed out
|
|
242
|
+
reject(new Error(`MCP request ${method} timed out`));
|
|
318
243
|
}
|
|
319
|
-
},
|
|
244
|
+
}, 30_000);
|
|
320
245
|
});
|
|
321
246
|
}
|
|
322
247
|
/** Send a JSON-RPC notification (no response expected) */
|
|
@@ -324,106 +249,8 @@ class MCPManager extends events_1.EventEmitter {
|
|
|
324
249
|
const msg = (0, stdio_protocol_1.encodeMcpStdioMessage)({ jsonrpc: '2.0', method, params });
|
|
325
250
|
instance.process.stdin.write(msg);
|
|
326
251
|
}
|
|
327
|
-
/**
|
|
328
|
-
enrichErrorResult(result, toolName, args) {
|
|
329
|
-
if (!result?.isError)
|
|
330
|
-
return result;
|
|
331
|
-
const contentText = result.content
|
|
332
|
-
? result.content.map((c) => c.text || JSON.stringify(c)).join('\n')
|
|
333
|
-
: '';
|
|
334
|
-
// Detect unhelpful errors and add context
|
|
335
|
-
const isUnhelpful = !contentText || contentText === 'Unknown error' || contentText.length < 20;
|
|
336
|
-
// Check for file-type-specific hints
|
|
337
|
-
const fileId = (args.fileId || args.file_id || '');
|
|
338
|
-
const mimeType = (args.mimeType || args.mime_type || '');
|
|
339
|
-
const actionName = toolName.replace(/^mcp_[^_]+_/, '');
|
|
340
|
-
let hint = '';
|
|
341
|
-
if (actionName === 'downloadFile' || actionName === 'readSpreadsheet' || actionName === 'readDocument') {
|
|
342
|
-
const uploadedFormats = ['.xlsx', '.docx', '.pptx', '.csv', '.pdf'];
|
|
343
|
-
const uploadedMimes = ['application/vnd.openxmlformats', 'application/msword', 'application/pdf'];
|
|
344
|
-
const isUploaded = uploadedFormats.some(f => mimeType.includes(f)) ||
|
|
345
|
-
uploadedMimes.some(m => mimeType.includes(m));
|
|
346
|
-
if (isUploaded && actionName === 'readSpreadsheet') {
|
|
347
|
-
hint = '\nHINT: This file appears to be an uploaded .xlsx file, NOT a native Google Sheet. ' +
|
|
348
|
-
'Use downloadFile to save it locally, then read with run_command (e.g., python with openpyxl).';
|
|
349
|
-
}
|
|
350
|
-
else if (isUploaded && actionName === 'downloadFile' && isUnhelpful) {
|
|
351
|
-
hint = '\nHINT: downloadFile failed. Try using copyFile with convert=true to convert to native Google format first, then use the appropriate read tool.';
|
|
352
|
-
}
|
|
353
|
-
}
|
|
354
|
-
if (hint && result.content) {
|
|
355
|
-
result.content = [
|
|
356
|
-
...result.content,
|
|
357
|
-
{ type: 'text', text: hint },
|
|
358
|
-
];
|
|
359
|
-
}
|
|
360
|
-
return result;
|
|
361
|
-
}
|
|
362
|
-
/** Call a tool on an MCP server (handles both regular and meta-tools) */
|
|
252
|
+
/** Call a tool on an MCP server */
|
|
363
253
|
async callTool(toolName, args) {
|
|
364
|
-
// Handle meta-tool calls: resolve to the real tool name and args
|
|
365
|
-
if ((0, tool_grouping_1.isMetaTool)(toolName)) {
|
|
366
|
-
const action = args.action;
|
|
367
|
-
const params = (args.params || {});
|
|
368
|
-
if (!action)
|
|
369
|
-
throw new Error(`Meta-tool "${toolName}" requires an "action" parameter`);
|
|
370
|
-
const { originalToolName, originalArgs } = (0, tool_grouping_1.resolveMetaTool)(toolName, action, params);
|
|
371
|
-
// Find the server for this meta-tool
|
|
372
|
-
const metaTool = this.allDiscoveredTools.find((t) => t.name === toolName);
|
|
373
|
-
if (!metaTool)
|
|
374
|
-
throw new Error(`Meta-tool not found: ${toolName}`);
|
|
375
|
-
const instance = this.servers.get(metaTool.serverId);
|
|
376
|
-
if (!instance || !instance.ready)
|
|
377
|
-
throw new Error(`MCP server ${metaTool.serverId} not running`);
|
|
378
|
-
// Strip prefix to get the raw MCP tool name
|
|
379
|
-
const rawName = originalToolName.replace(`mcp_${metaTool.serverId}_`, '');
|
|
380
|
-
// Auto-create parent directories for downloadFile to avoid "Parent directory does not exist"
|
|
381
|
-
if (rawName === 'downloadFile' || rawName === 'download_file') {
|
|
382
|
-
const localPath = originalArgs.localPath || originalArgs.local_path;
|
|
383
|
-
if (typeof localPath === 'string') {
|
|
384
|
-
const parentDir = path.dirname(localPath);
|
|
385
|
-
if (!fs.existsSync(parentDir)) {
|
|
386
|
-
fs.mkdirSync(parentDir, { recursive: true });
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
}
|
|
390
|
-
try {
|
|
391
|
-
const result = await this.sendRequest(instance, 'tools/call', { name: rawName, arguments: originalArgs });
|
|
392
|
-
// Bug 4: Enrich meta-tool errors with stderr
|
|
393
|
-
if (result?.isError) {
|
|
394
|
-
const recentStderr = instance.stderrBuffer?.slice(-3)
|
|
395
|
-
.filter((s) => s.includes('Error') || s.includes('error') || s.includes('fail') || s.includes('not exist') || s.includes('Invalid'))
|
|
396
|
-
.join(' | ');
|
|
397
|
-
if (recentStderr) {
|
|
398
|
-
const existingText = result.content?.map((c) => c.text || '').join(' ') || '';
|
|
399
|
-
result.content = [{ type: 'text', text: `${existingText || 'Unknown error'}. Server details: ${recentStderr}` }];
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
// Bug 1: Validate downloadFile results — detect Google sign-in pages
|
|
403
|
-
if ((rawName === 'downloadFile' || rawName === 'download_file') && !result?.isError) {
|
|
404
|
-
const localPath = (originalArgs.localPath || originalArgs.local_path);
|
|
405
|
-
if (localPath && fs.existsSync(localPath)) {
|
|
406
|
-
const header = Buffer.alloc(500);
|
|
407
|
-
const fd = fs.openSync(localPath, 'r');
|
|
408
|
-
fs.readSync(fd, header, 0, 500, 0);
|
|
409
|
-
fs.closeSync(fd);
|
|
410
|
-
const headerStr = header.toString('utf8').toLowerCase();
|
|
411
|
-
if (headerStr.includes('accounts.google.com') ||
|
|
412
|
-
(headerStr.startsWith('<!doctype html>') && !localPath.endsWith('.html'))) {
|
|
413
|
-
fs.unlinkSync(localPath);
|
|
414
|
-
return {
|
|
415
|
-
content: [{ type: 'text', text: 'ERROR: Download failed — received Google sign-in page instead of actual file content. The OAuth token may have expired. The file was NOT saved. Try using run_command to download via curl with a fresh token, or ask the user to re-authenticate Google Workspace.' }],
|
|
416
|
-
isError: true,
|
|
417
|
-
};
|
|
418
|
-
}
|
|
419
|
-
}
|
|
420
|
-
}
|
|
421
|
-
return this.enrichErrorResult(result, originalToolName, originalArgs);
|
|
422
|
-
}
|
|
423
|
-
catch (err) {
|
|
424
|
-
throw new Error(`MCP tool ${rawName} failed: ${err.message}${err.stack ? '\n' + err.stack.split('\n').slice(0, 3).join('\n') : ''}`);
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
254
|
const tool = this.allDiscoveredTools.find((t) => t.name === toolName);
|
|
428
255
|
if (!tool)
|
|
429
256
|
throw new Error(`MCP tool not found: ${toolName}`);
|
|
@@ -432,45 +259,11 @@ class MCPManager extends events_1.EventEmitter {
|
|
|
432
259
|
throw new Error(`MCP server ${tool.serverId} not running`);
|
|
433
260
|
// Strip the mcp_{serverId}_ prefix to get the original tool name
|
|
434
261
|
const originalName = toolName.replace(`mcp_${tool.serverId}_`, '');
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
if (!fs.existsSync(parentDir)) {
|
|
441
|
-
fs.mkdirSync(parentDir, { recursive: true });
|
|
442
|
-
}
|
|
443
|
-
}
|
|
444
|
-
}
|
|
445
|
-
try {
|
|
446
|
-
const result = await this.sendRequest(instance, 'tools/call', {
|
|
447
|
-
name: originalName,
|
|
448
|
-
arguments: args,
|
|
449
|
-
});
|
|
450
|
-
// Bug 1: Validate downloadFile results — detect Google sign-in pages
|
|
451
|
-
if ((originalName === 'downloadFile' || originalName === 'download_file') && !result?.isError) {
|
|
452
|
-
const localPath = (args.localPath || args.local_path);
|
|
453
|
-
if (localPath && fs.existsSync(localPath)) {
|
|
454
|
-
const header = Buffer.alloc(500);
|
|
455
|
-
const fd = fs.openSync(localPath, 'r');
|
|
456
|
-
fs.readSync(fd, header, 0, 500, 0);
|
|
457
|
-
fs.closeSync(fd);
|
|
458
|
-
const headerStr = header.toString('utf8').toLowerCase();
|
|
459
|
-
if (headerStr.includes('accounts.google.com') ||
|
|
460
|
-
(headerStr.startsWith('<!doctype html>') && !localPath.endsWith('.html'))) {
|
|
461
|
-
fs.unlinkSync(localPath);
|
|
462
|
-
return {
|
|
463
|
-
content: [{ type: 'text', text: 'ERROR: Download failed — received Google sign-in page instead of actual file content. The OAuth token may have expired. The file was NOT saved. Try using run_command to download via curl with a fresh token, or ask the user to re-authenticate Google Workspace.' }],
|
|
464
|
-
isError: true,
|
|
465
|
-
};
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
}
|
|
469
|
-
return this.enrichErrorResult(result, toolName, args);
|
|
470
|
-
}
|
|
471
|
-
catch (err) {
|
|
472
|
-
throw new Error(`MCP tool ${originalName} failed: ${err.message}${err.stack ? '\n' + err.stack.split('\n').slice(0, 3).join('\n') : ''}`);
|
|
473
|
-
}
|
|
262
|
+
const result = await this.sendRequest(instance, 'tools/call', {
|
|
263
|
+
name: originalName,
|
|
264
|
+
arguments: args,
|
|
265
|
+
});
|
|
266
|
+
return result;
|
|
474
267
|
}
|
|
475
268
|
/** Rebuild the merged list of all discovered tools */
|
|
476
269
|
rebuildToolList() {
|
|
@@ -493,40 +286,22 @@ class MCPManager extends events_1.EventEmitter {
|
|
|
493
286
|
const output = result?.content
|
|
494
287
|
? result.content.map((c) => c.text || JSON.stringify(c)).join('\n')
|
|
495
288
|
: JSON.stringify(result);
|
|
496
|
-
let errorOutput = output;
|
|
497
|
-
if (result?.isError) {
|
|
498
|
-
// Enrich error with recent stderr from the MCP server
|
|
499
|
-
const srv = this.servers.get(t.serverId);
|
|
500
|
-
const recentStderr = srv?.stderrBuffer?.slice(-3)
|
|
501
|
-
.filter((s) => s.includes('Error') || s.includes('error') || s.includes('fail') || s.includes('not exist'))
|
|
502
|
-
.join('\n');
|
|
503
|
-
const parts = ['ERROR:'];
|
|
504
|
-
if (output && output !== 'Unknown error')
|
|
505
|
-
parts.push(output);
|
|
506
|
-
if (recentStderr)
|
|
507
|
-
parts.push(`Server details: ${recentStderr}`);
|
|
508
|
-
if (parts.length === 1)
|
|
509
|
-
parts.push('Unknown error from MCP server');
|
|
510
|
-
errorOutput = parts.join(' ');
|
|
511
|
-
}
|
|
512
289
|
return {
|
|
513
290
|
tool_call_id: '',
|
|
514
291
|
name: t.name,
|
|
515
292
|
success: !result?.isError,
|
|
516
|
-
output
|
|
293
|
+
output,
|
|
517
294
|
verified: true,
|
|
518
295
|
verification_details: 'MCP tool execution',
|
|
519
296
|
};
|
|
520
297
|
}
|
|
521
298
|
catch (err) {
|
|
522
|
-
const errorDetail = err.message || 'Unknown error';
|
|
523
|
-
const stackHint = err.stack ? '\n' + err.stack.split('\n').slice(1, 3).join('\n') : '';
|
|
524
299
|
return {
|
|
525
300
|
tool_call_id: '',
|
|
526
301
|
name: t.name,
|
|
527
302
|
success: false,
|
|
528
303
|
output: '',
|
|
529
|
-
error:
|
|
304
|
+
error: err.message,
|
|
530
305
|
verified: true,
|
|
531
306
|
verification_details: 'MCP tool execution failed',
|
|
532
307
|
};
|
|
@@ -549,6 +324,47 @@ class MCPManager extends events_1.EventEmitter {
|
|
|
549
324
|
alwaysOn: instance.config.alwaysOn,
|
|
550
325
|
};
|
|
551
326
|
}
|
|
327
|
+
async waitForServerExit(id, instance) {
|
|
328
|
+
await new Promise((resolve) => {
|
|
329
|
+
let settled = false;
|
|
330
|
+
const finish = () => {
|
|
331
|
+
if (settled)
|
|
332
|
+
return;
|
|
333
|
+
settled = true;
|
|
334
|
+
clearTimeout(timeout);
|
|
335
|
+
instance.process.removeListener('exit', finish);
|
|
336
|
+
this.removeListener('server-stopped', onStopped);
|
|
337
|
+
resolve();
|
|
338
|
+
};
|
|
339
|
+
const onStopped = (stoppedId) => {
|
|
340
|
+
if (stoppedId === id)
|
|
341
|
+
finish();
|
|
342
|
+
};
|
|
343
|
+
const timeout = setTimeout(finish, 5_000);
|
|
344
|
+
instance.process.once('exit', finish);
|
|
345
|
+
this.on('server-stopped', onStopped);
|
|
346
|
+
instance.process.kill();
|
|
347
|
+
});
|
|
348
|
+
}
|
|
349
|
+
async reloadIntegrationServers(integration) {
|
|
350
|
+
if (integration !== 'google')
|
|
351
|
+
return [];
|
|
352
|
+
const restarted = [];
|
|
353
|
+
const runningGoogleServers = Array.from(this.servers.entries())
|
|
354
|
+
.filter(([id]) => GOOGLE_INTEGRATION_SERVER_IDS.has(id));
|
|
355
|
+
for (const [id, instance] of runningGoogleServers) {
|
|
356
|
+
const config = {
|
|
357
|
+
...instance.config,
|
|
358
|
+
envVars: { ...instance.config.envVars },
|
|
359
|
+
args: [...instance.config.args],
|
|
360
|
+
};
|
|
361
|
+
const entry = instance.entry;
|
|
362
|
+
await this.waitForServerExit(id, instance);
|
|
363
|
+
await this.launchServer(config, entry);
|
|
364
|
+
restarted.push(id);
|
|
365
|
+
}
|
|
366
|
+
return restarted;
|
|
367
|
+
}
|
|
552
368
|
/** Stop a running MCP server */
|
|
553
369
|
async stopServer(id) {
|
|
554
370
|
const instance = this.servers.get(id);
|
|
@@ -586,76 +402,6 @@ class MCPManager extends events_1.EventEmitter {
|
|
|
586
402
|
this.saveConfigs();
|
|
587
403
|
}
|
|
588
404
|
}
|
|
589
|
-
/**
|
|
590
|
-
* Pre-warm an npm package by running `npx -y <package> --help` in the background.
|
|
591
|
-
* This downloads/caches the package so subsequent launches are fast.
|
|
592
|
-
*/
|
|
593
|
-
static preWarmPackage(npmPackage) {
|
|
594
|
-
console.log(`[MCP] Pre-warming package cache: ${npmPackage}`);
|
|
595
|
-
const child = (0, child_process_1.spawn)('npx', ['-y', npmPackage, '--help'], {
|
|
596
|
-
stdio: 'ignore',
|
|
597
|
-
detached: true,
|
|
598
|
-
env: { ...process.env },
|
|
599
|
-
});
|
|
600
|
-
child.unref();
|
|
601
|
-
child.on('exit', (code) => {
|
|
602
|
-
console.log(`[MCP] Pre-warm of ${npmPackage} finished (exit ${code})`);
|
|
603
|
-
});
|
|
604
|
-
}
|
|
605
|
-
/**
|
|
606
|
-
* Reload all running Google MCP servers after token refresh.
|
|
607
|
-
* Stops each server, then re-launches with fresh credentials from the token store.
|
|
608
|
-
*/
|
|
609
|
-
async reloadIntegrationServers(integration) {
|
|
610
|
-
if (integration !== 'google')
|
|
611
|
-
return [];
|
|
612
|
-
const GOOGLE_IDS = new Set(['google-workspace', 'google-drive', 'google-calendar', 'gmail']);
|
|
613
|
-
const restarted = [];
|
|
614
|
-
const runningGoogle = Array.from(this.servers.entries())
|
|
615
|
-
.filter(([id]) => GOOGLE_IDS.has(id));
|
|
616
|
-
for (const [id, instance] of runningGoogle) {
|
|
617
|
-
const config = { ...instance.config };
|
|
618
|
-
const entry = instance.entry;
|
|
619
|
-
console.log(`[MCP] Reloading ${id} after Google token refresh...`);
|
|
620
|
-
try {
|
|
621
|
-
// Stop current instance
|
|
622
|
-
instance.process.kill();
|
|
623
|
-
// Wait briefly for exit
|
|
624
|
-
await new Promise((resolve) => {
|
|
625
|
-
const timeout = setTimeout(resolve, 5000);
|
|
626
|
-
instance.process.once('exit', () => { clearTimeout(timeout); resolve(); });
|
|
627
|
-
});
|
|
628
|
-
this.servers.delete(id);
|
|
629
|
-
this.rebuildToolList();
|
|
630
|
-
// Re-launch with fresh tokens from the updated token store
|
|
631
|
-
await this.launchServer(config, entry);
|
|
632
|
-
restarted.push(id);
|
|
633
|
-
console.log(`[MCP] ✓ Reloaded ${id} successfully`);
|
|
634
|
-
}
|
|
635
|
-
catch (err) {
|
|
636
|
-
console.error(`[MCP] ✗ Failed to reload ${id}: ${err.message}`);
|
|
637
|
-
}
|
|
638
|
-
}
|
|
639
|
-
return restarted;
|
|
640
|
-
}
|
|
641
|
-
/**
|
|
642
|
-
* Fix 3: Check which configured (always-on) servers are NOT currently running.
|
|
643
|
-
* Returns names of dead servers for injection into system prompt / tool list.
|
|
644
|
-
*/
|
|
645
|
-
getDeadServers() {
|
|
646
|
-
const configs = this.loadPersistedConfigs();
|
|
647
|
-
const running = new Set(this.servers.keys());
|
|
648
|
-
return configs
|
|
649
|
-
.filter(c => c.alwaysOn && !running.has(c.id))
|
|
650
|
-
.map(c => c.id);
|
|
651
|
-
}
|
|
652
|
-
/**
|
|
653
|
-
* Check if a specific server is alive and responsive.
|
|
654
|
-
*/
|
|
655
|
-
isServerAlive(id) {
|
|
656
|
-
const instance = this.servers.get(id);
|
|
657
|
-
return !!(instance && instance.ready && instance.process && !instance.process.killed);
|
|
658
|
-
}
|
|
659
405
|
/** Shutdown all MCP servers */
|
|
660
406
|
async shutdown() {
|
|
661
407
|
for (const [id, instance] of this.servers) {
|
package/dist/mcp/manager.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/mcp/manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/mcp/manager.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,8 @@ export interface ParsedMemoryExtraction {
|
|
|
24
24
|
actionItems: ExtractedActionItem[];
|
|
25
25
|
facts: ExtractedFact[];
|
|
26
26
|
summary: string;
|
|
27
|
+
rollingSummary?: string;
|
|
28
|
+
segmentSummary?: string;
|
|
27
29
|
}
|
|
28
30
|
export declare function decisionQualityScore(title: string): number;
|
|
29
31
|
export declare function actionQualityScore(title: string): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory-extraction.d.ts","sourceRoot":"","sources":["../src/memory-extraction.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"memory-extraction.d.ts","sourceRoot":"","sources":["../src/memory-extraction.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,YAAY,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,WAAW,EAAE,mBAAmB,EAAE,CAAC;IACnC,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAoFD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAS1D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CASxD;AAED,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,IAAI,CAchG;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,mBAAmB,GAAG,mBAAmB,GAAG,IAAI,CAalG;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,aAAa,GAAG,aAAa,GAAG,IAAI,CAcpF;AA0ED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,sBAAsB,GAAG,sBAAsB,CA0B/F"}
|
|
@@ -236,7 +236,9 @@ function sanitizeParsedExtraction(parsed) {
|
|
|
236
236
|
title: cleanField(parsed.title) || null,
|
|
237
237
|
topic: cleanField(parsed.topic) || null,
|
|
238
238
|
project: cleanField(parsed.project) || null,
|
|
239
|
-
summary: cleanField(parsed.summary),
|
|
239
|
+
summary: cleanField(parsed.summary || parsed.rollingSummary || ''),
|
|
240
|
+
rollingSummary: cleanField(parsed.rollingSummary || parsed.summary || ''),
|
|
241
|
+
segmentSummary: cleanField(parsed.segmentSummary || ''),
|
|
240
242
|
};
|
|
241
243
|
}
|
|
242
244
|
//# sourceMappingURL=memory-extraction.js.map
|