/**
 * ICD Test Runner — CRUD Tier (Orchestrator)
 *
 * Thin dispatcher that generates a shared testTag and calls each
 * CRUD group module in sequence. Each group is registered on T.crud
 * by its own IIFE (loaded via crud/*.js).
 */
(function () {
  'use strict';
  var T = window.ICD;
  if (!T) return;

  T.runCrud = async function () {
    var testTag = 'icd-test-' + Date.now();
    var C = T.crud || {};

    if (C.channels)       await C.channels(testTag);
    if (C.models)         await C.models(testTag);
    if (C.profile)        await C.profile(testTag);
    if (C.notes)          await C.notes(testTag);
    if (C.projects)       await C.projects(testTag);
    if (C.knowledge)      await C.knowledge(testTag);
    if (C.workspaces)     await C.workspaces(testTag);
    if (C.notifications)  await C.notifications(testTag);
    if (C.memory)         await C.memory(testTag);
    if (C.admin)          await C.admin(testTag);
    if (C.workflows)      await C.workflows(testTag);
    if (C.teamWorkflows)  await C.teamWorkflows(testTag);
    if (C.tasks)          await C.tasks(testTag);
    if (C.teams)          await C.teams(testTag);
    if (C.personas)       await C.personas(testTag);
    if (C.extensions)     await C.extensions(testTag);
    if (C.surfaces)       await C.surfaces(testTag);
    if (C.editorPackage)     await C.editorPackage(testTag);
    if (C.dashboardPackage)  await C.dashboardPackage(testTag);
    if (C.workflowProduct)   await C.workflowProduct(testTag);
  };
})();
