feat(cursor): wire executor through portal, admin, and wechat routes

Register cursor in LLM executor bindings, route page/code tasks through
cursor runtime selection, and bootstrap wechat cursor policy services.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
john
2026-08-27 09:33:47 +08:00
parent a29e1ec5c8
commit ad6dcc283f
17 changed files with 343 additions and 16 deletions
+22
View File
@@ -13,6 +13,9 @@ import { createManagedMemoryV2Runtime } from '../memory-v2-runtime.mjs';
import { createTkmindProxy } from '../tkmind-proxy.mjs';
import { createToolGateway } from '../tool-gateway.mjs';
import { createUserAuth } from '../user-auth.mjs';
import { createSessionSnapshotService } from '../session-snapshot.mjs';
import { createDirectChatService } from '../direct-chat-service.mjs';
import { createSessionAccess } from '../session-broker.mjs';
import { createOrchestratorAdminConfigService } from '../services/orchestrator/admin-config.mjs';
import { createWorkflowShadowObserver } from '../services/orchestrator/shadow-observer.mjs';
@@ -158,6 +161,21 @@ async function bootstrapWorker() {
err instanceof Error ? err.message : err,
);
});
const sessionSnapshotService = createSessionSnapshotService(pool, {
conversationMemoryService,
memoryV2,
episodicMemoryService,
});
const sessionAccess = createSessionAccess({ userAuth, enabled: false });
const directChatService = createDirectChatService({
userAuth,
sessionAccess,
llmProviderService,
sessionSnapshotService,
memoryV2,
conversationMemoryService,
episodicMemoryService,
});
const chatIntentRouter = createManagedChatIntentRouter({
llmProviderService,
memoryV2,
@@ -176,8 +194,12 @@ async function bootstrapWorker() {
const gateway = createAgentRunGateway({
pool,
userAuth,
sessionAccess,
tkmindProxy,
toolGateway,
directChatService,
sessionSnapshotService,
conversationMemoryService,
chatIntentRouter,
conversationMemoryService,
autoDispatch: false,
+1 -1
View File
@@ -8,7 +8,7 @@ export const MEMIND_RUNTIME_PROFILES = new Set(['local', 'split-service', 'produ
*/
export function loadMemindEnvFiles(rootDir, env = process.env) {
const root = path.resolve(rootDir);
for (const relativePath of ['../../.env.local', '.env']) {
for (const relativePath of ['.env', '.env.local', '../../.env.local']) {
loadEnvFile(path.join(root, relativePath), env);
}
}