merge: integrate langgraph execution runtime

# Conflicts:
#	agent-run-gateway.test.mjs
#	capabilities.mjs
#	package.json
#	server.mjs
This commit is contained in:
john
2026-07-25 00:09:15 +08:00
88 changed files with 14319 additions and 90 deletions
+18
View File
@@ -14,6 +14,7 @@ import { isLocalDevHostname } from './scripts/local-test-config.mjs';
import { PUBLISH_ROOT_DIR } from './user-publish.mjs';
import { startWorkspaceThumbnailWatcher } from './mindspace-workspace-thumbnails.mjs';
import { resolveMindSpaceAnalyticsConfig, sendMindSpaceAnalyticsEvent } from './mindspace-analytics.mjs';
import { resolveMindSpaceRybbitConfig } from './mindspace-rybbit.mjs';
import { startWorkspaceAssetSyncWatcher } from './mindspace-workspace-sync.mjs';
import { attachRequestId, sendData, sendError } from './api-response.mjs';
import { attachPortalAgentJobRoutes } from './server/portal-agent-job-routes.mjs';
@@ -317,6 +318,7 @@ let authPool = null;
let pageDataService = null;
let pageDataPublicService = null;
let mindSpaceAnalyticsConfig = resolveMindSpaceAnalyticsConfig();
let mindSpaceRybbitConfig = resolveMindSpaceRybbitConfig();
async function bootstrapUserAuth() {
try {
@@ -505,6 +507,7 @@ async function bootstrapUserAuth() {
systemDisclosurePolicyService,
sessionSnapshotService,
mindSpaceAnalyticsConfig,
mindSpaceRybbitConfig,
subscriptionService,
apiTarget: API_TARGET,
apiSecret: API_SECRET,
@@ -1400,6 +1403,7 @@ attachPortalSessionRoutes(api, {
getMindSpaceAssets: () => mindSpaceAssets,
getMemoryV2: () => memoryV2,
getMindSpaceAnalyticsConfig: () => mindSpaceAnalyticsConfig,
getMindSpaceRybbitConfig: () => mindSpaceRybbitConfig,
isWorkspaceMaintenanceEnabled: () =>
WORKSPACE_MAINTENANCE_ENABLED,
ownsAgentSession,
@@ -1486,6 +1490,18 @@ app.use('/analytics', createProxyMiddleware({
secure: false,
pathRewrite: { [`^${mindSpaceAnalyticsConfig.hostPath}`]: '' },
}));
app.use('/rybbit', createProxyMiddleware({
target: 'https://rybbit.tkmind.cn',
router: () =>
mindSpaceRybbitConfig.rybbitUrl ||
process.env.MEMIND_RYBBIT_URL ||
process.env.RYBBIT_URL ||
'https://rybbit.tkmind.cn',
changeOrigin: true,
secure: true,
// Express strips the /rybbit mount. Rybbit serves trackers under /api/*.
pathRewrite: { '^/': '/api/' },
}));
const { serveUserPublishFile } =
createPortalWorkspacePublicationDelivery({
h5Root: H5_ROOT,
@@ -1493,6 +1509,8 @@ const { serveUserPublishFile } =
INTERNAL_AGENT_SECRET,
analyticsConfig:
mindSpaceAnalyticsConfig,
rybbitConfig:
mindSpaceRybbitConfig,
getAuthPool: () => authPool,
getUserAuth: () => userAuth,
getMindSpacePages: () => mindSpacePages,