Ctrl K
ComunidadGuías…

lib/project-logs-clay-query.js

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
var provenance = require('./session-provenance');
var personal = require('./mcp-session-access');
// Catalog eligibility is registry-only; content always requires a live private query.
function queryGuard(source, projectFor, multiUser, findUser) {
  var session = source.session, project = projectFor(source.projectSlug);
  var generation = session && Number(session._sdkQueryGeneration || 0);
  return function () {
    var manager = project && (project.getSessionManager ? project.getSessionManager() : project.sm);
    if (!session || projectFor(source.projectSlug) !== project || !manager || manager.sessions.get(session.localId) !== session || Number(session._sdkQueryGeneration || 0) !== generation) throw new Error('This Project Logs query is no longer valid.');
    if (session.taskStopRequested || session.abortController && session.abortController.signal.aborted || session.destroying || session.hidden || session.spawn || provenance.isWorker(session) || session.homeDebatePlanning || session.debateSetupMode || session._mentionInProgress || session.mateCreationMode || session._mcpForeignInput || session.sessionVisibility === 'shared' || session.delegated || session._delegatedBy || session._pairDelegation) throw new Error('Project Logs require a live private canonical Clay query.');
    if (multiUser()) {
      if (!findUser(source.projectOwnerId) || session.ownerId !== source.projectOwnerId || !personal.canUsePersonalConnections(session, manager.sessions)) throw new Error('Foreign input cannot authorize Project Logs.');
    } else if (session.ownerId || (session.history || []).some(function (entry) { return entry.type === 'user_message' && entry.from && entry.from !== 'default'; })) throw new Error('Foreign input cannot authorize Project Logs.');
  };
}
module.exports = { queryGuard: queryGuard };