Files
memind/session-broker-metrics.mjs
john 14a00774d9 feat(h5): web 联网能力、实时查询路由与 session Finish 对齐
- 新增 web 能力并挂载 platform/web(web_search/fetch_url)
- 实时查询强制 web skill,router fallback 与 await session Finish
- Session Broker 覆盖率/指标、stream replay 与相关单测/E2E 脚本

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-06 16:06:26 +08:00

42 lines
1.1 KiB
JavaScript

function envFlag(value, fallback = false) {
const raw = String(value ?? '').trim().toLowerCase();
if (!raw) return fallback;
return ['1', 'true', 'yes', 'on'].includes(raw);
}
export function isSessionBrokerMetricsEnabled(env = process.env) {
return envFlag(env.MEMIND_SESSION_BROKER_METRICS, false);
}
export function formatSessionBrokerMetric(metric, fields = {}) {
return `[session_broker.${metric}] ${JSON.stringify({
metric: `session_broker.${metric}`,
...fields,
})}`;
}
export function createSessionBrokerMetrics({
logger = console,
enabled = isSessionBrokerMetricsEnabled(),
} = {}) {
function emit(metric, fields = {}) {
if (!enabled) return;
const line = formatSessionBrokerMetric(metric, fields);
if (typeof logger.info === 'function') logger.info(line);
else logger.log(line);
}
return {
enabled,
ownershipDenied(fields) {
emit('ownership.denied', fields);
},
registerDuplicate(fields) {
emit('register.duplicate', fields);
},
resolveTargetMiss(fields) {
emit('resolve_target.miss', fields);
},
};
}