agents-united 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -107,11 +107,11 @@ This model gives you:
107
107
  ---
108
108
 
109
109
 
110
- Agents United provides **22 curated bundles**, **45 specialized agents** (7 Lead Orchestrators + 38 Sub-Agents), **90 skills**, and **63 workflows** across 8 department domains:
110
+ Agents United provides **24 curated bundles**, **46 specialized agents** (8 Orchestrators — 7 Lead + 1 Prime + 38 Sub-Agents), **90 skills**, and **63 workflows** across 8 department domains:
111
111
 
112
112
  | Department Domain | Essentials Base | Specialized Addon Bundles | Lead Orchestrator |
113
113
  | :--- | :--- | :--- | :--- |
114
- | **🌐 Universal Department** | `universal-skills` ⭐ | `full` (Universal Suite) | Multi-Agent Coordination |
114
+ | **🌐 Universal Department** | `universal-skills` ⭐ | `universal-orchestration` (guided routing), `full` (Universal Suite) | `orchestrator-universal` (Prime) |
115
115
  | **🛠️ Software Engineering & Delivery** | `software-engineering` | `ai-ml-engineering`, `mobile-development`, `frontend-engineering`, `backend-distributed-systems`, `qa-automation`, `devops-engineering` | `orchestrator-engineering` |
116
116
  | **🏛️ System Architecture & SRE** | `system-architecture` | `sysops-sre` | `orchestrator-system-architecture` |
117
117
  | **🎨 Product Design & UI/UX** | `product-design` | `design-systems-ops`, `design-research-testing` | `orchestrator-design` |
@@ -128,7 +128,8 @@ Agents United provides **22 curated bundles**, **45 specialized agents** (7 Lead
128
128
 
129
129
  #### 🌐 Universal Autonomous Department
130
130
  - **Baseline**: `universal-skills` ⭐ *(Recommended Baseline — Socratic grilling, PRD generation, ADRs, session handoff)*
131
- - **Universal Suite**: `full` *(Complete enterprise suite containing all 22 bundles, 45 agents, 90 skills, 63 workflows)*
131
+ - **Guided Routing (optional)**: `universal-orchestration` *(Prime Orchestrator front door grills ambiguous requests, routes to the correct department Essentials bundle via its Domain Atlas, installs with consent, and hands off. An optional way to use Agents United without the full suite.)*
132
+ - **Universal Suite**: `full` *(Complete enterprise suite containing all bundles, agents, skills, workflows)*
132
133
 
133
134
  #### 🛠️ Software Engineering & Delivery
134
135
  - **Lead Orchestrator**: `orchestrator-engineering`
package/dist/cli.js CHANGED
@@ -2282,7 +2282,8 @@ var ClineLauncher = class _ClineLauncher {
2282
2282
  prompt,
2283
2283
  teamName: customTeamName,
2284
2284
  allowAddons,
2285
- headless
2285
+ headless,
2286
+ orchestrator
2286
2287
  } = options;
2287
2288
  const command = report.command || {
2288
2289
  executable: "cline",
@@ -2300,7 +2301,8 @@ var ClineLauncher = class _ClineLauncher {
2300
2301
  }
2301
2302
  const strategy = report.namedTeams ? "named-team" : "adaptive-session";
2302
2303
  const manifestRel = scope === "global" ? `~/.cline/agents-united/teams/${bundleName}.yaml` : `.cline/agents-united/teams/${bundleName}.yaml`;
2303
- const coordinatorCanonical = `.agents/agents/orchestrator-engineering.md`;
2304
+ const coordinatorFile = (orchestrator || "orchestrator-engineering.md").replace(/\.md$/, "");
2305
+ const coordinatorCanonical = `.agents/agents/${coordinatorFile}.md`;
2304
2306
  const addonPolicyText = allowAddons ? "Addon auto-installation is pre-authorized for this session." : `Before installing any recommended addon, explain the requirement to the user and request explicit confirmation to run: agents add <addon> -t cline ${scope === "global" ? "-g " : ""}-y.`;
2305
2307
  const taskText = prompt && prompt.trim().length > 0 ? `User task: ${prompt.trim()}` : "Please introduce your coordinator role to the user and ask for their first task.";
2306
2308
  const bootstrapPrompt = [
@@ -2716,6 +2718,10 @@ var BUNDLE_DISPLAY_NAMES = {
2716
2718
  title: "Digital Agency (TBA soon)",
2717
2719
  summary: "Full-service digital product agency with web dev, mobile, design, SEO, and growth marketing"
2718
2720
  },
2721
+ "universal-orchestration": {
2722
+ title: "Universal Orchestration",
2723
+ summary: "Prime Orchestrator front door: routes to the correct department Essentials bundle and hands off"
2724
+ },
2719
2725
  "universal-skills": {
2720
2726
  title: "Universal Meta-Skills",
2721
2727
  summary: "Domain-agnostic Socratic grilling, spec generation, handoff, and domain modeling"
@@ -2963,6 +2969,8 @@ cli.command("add [identifier]", "Add a bundle, agent, skill, or workflow to proj
2963
2969
  });
2964
2970
  }
2965
2971
  const sortedBundles = [...domainBundles].sort((a, b) => {
2972
+ if (a.name === "universal-orchestration") return -1;
2973
+ if (b.name === "universal-orchestration") return 1;
2966
2974
  if (a.name === "universal-skills") return -1;
2967
2975
  if (b.name === "universal-skills") return 1;
2968
2976
  if (!a.parentBundle && b.parentBundle) return -1;
@@ -2973,7 +2981,7 @@ cli.command("add [identifier]", "Add a bundle, agent, skill, or workflow to proj
2973
2981
  const isLast = idx === sortedBundles.length - 1;
2974
2982
  const branch = sortedBundles.length > 1 ? isLast ? "\u2514\u2500\u2500 " : "\u251C\u2500\u2500 " : "";
2975
2983
  const meta = BUNDLE_DISPLAY_NAMES[b.name];
2976
- const isEssentials = !b.parentBundle && b.name !== "full" && b.tier !== "organization" && b.name !== "universal-skills";
2984
+ const isEssentials = !b.parentBundle && b.name !== "full" && b.tier !== "organization" && b.name !== "universal-skills" && b.name !== "universal-orchestration";
2977
2985
  const title = meta ? meta.title : b.name;
2978
2986
  let statusBadge = "";
2979
2987
  if (b.name === "universal-skills") statusBadge = pc.green(" \u2B50 [Recommended Baseline]");
@@ -3196,11 +3204,13 @@ ${renderProjections(result.projections)}` : ""),
3196
3204
  const probe = new ClineCapabilityProbe();
3197
3205
  const probeReport = await probe.probe();
3198
3206
  if (probeReport.installed) {
3207
+ const targetBundleDef2 = await registry.getBundle(bundleName);
3199
3208
  const plan = launcher.planActivation({
3200
3209
  bundleName,
3201
3210
  workspace: process.cwd(),
3202
3211
  scope,
3203
- report: probeReport
3212
+ report: probeReport,
3213
+ orchestrator: targetBundleDef2?.orchestrator
3204
3214
  });
3205
3215
  await launcher.launch(plan);
3206
3216
  } else {
@@ -3221,11 +3231,13 @@ ${renderProjections(result.projections)}` : ""),
3221
3231
  const probe = new ClineCapabilityProbe();
3222
3232
  const probeReport = await probe.probe();
3223
3233
  if (probeReport.installed) {
3234
+ const targetBundleDef2 = await registry.getBundle(bundleName);
3224
3235
  const plan = launcher.planActivation({
3225
3236
  bundleName,
3226
3237
  workspace: process.cwd(),
3227
3238
  scope,
3228
- report: probeReport
3239
+ report: probeReport,
3240
+ orchestrator: targetBundleDef2?.orchestrator
3229
3241
  });
3230
3242
  await launcher.launch(plan);
3231
3243
  } else {
@@ -3491,7 +3503,7 @@ function renderBundleDetailTree(bundle) {
3491
3503
  return lines2.join("\n");
3492
3504
  }
3493
3505
  const meta = BUNDLE_DISPLAY_NAMES[bundle.name];
3494
- const isEssentials = !bundle.parentBundle && bundle.name !== "full" && bundle.name !== "universal-skills" && bundle.tier !== "organization";
3506
+ const isEssentials = !bundle.parentBundle && bundle.name !== "full" && bundle.name !== "universal-skills" && bundle.name !== "universal-orchestration" && bundle.tier !== "organization";
3495
3507
  const titleSuffix = isEssentials ? pc.cyan(" (Essentials Base)") : "";
3496
3508
  const parentTag = bundle.parentBundle ? pc.gray(` [inherits: ${bundle.parentBundle}]`) : "";
3497
3509
  const aliasesTag = bundle.aliases && bundle.aliases.length > 0 ? pc.gray(` [alias: ${bundle.aliases.join(", ")}]`) : "";
@@ -3621,7 +3633,7 @@ ${pc.bold(pc.magenta(header))} ${pc.dim(`(${items.length} bundle${items.length >
3621
3633
  const bBranch = isLastBundle ? "\u2514\u2500\u2500" : "\u251C\u2500\u2500";
3622
3634
  const subIndent = isLastBundle ? " " : "\u2502 ";
3623
3635
  const meta = BUNDLE_DISPLAY_NAMES[b.name];
3624
- const isEssentials = !b.parentBundle && b.name !== "full" && b.name !== "universal-skills";
3636
+ const isEssentials = !b.parentBundle && b.name !== "full" && b.name !== "universal-skills" && b.name !== "universal-orchestration";
3625
3637
  const titleSuffix = isEssentials ? pc.cyan(" (Essentials)") : "";
3626
3638
  const parentTag = b.parentBundle ? pc.gray(` [inherits: ${b.parentBundle}]`) : "";
3627
3639
  const aliasesTag = b.aliases && b.aliases.length > 0 ? pc.gray(` [alias: ${b.aliases.join(", ")}]`) : "";
@@ -3988,6 +4000,8 @@ cli.command("list", "List available bundles grouped by department domain").alias
3988
4000
  }
3989
4001
  const domainBundles = bundles.filter((b) => b.domain === activeDomain || activeDomain === "organization" && b.tier === "organization");
3990
4002
  const sortedBundles = [...domainBundles].sort((a, b) => {
4003
+ if (a.name === "universal-orchestration") return -1;
4004
+ if (b.name === "universal-orchestration") return 1;
3991
4005
  if (a.name === "universal-skills") return -1;
3992
4006
  if (b.name === "universal-skills") return 1;
3993
4007
  if (!a.parentBundle && b.parentBundle) return -1;
@@ -3998,7 +4012,7 @@ cli.command("list", "List available bundles grouped by department domain").alias
3998
4012
  const isLast = idx === sortedBundles.length - 1;
3999
4013
  const branch = sortedBundles.length > 1 ? isLast ? "\u2514\u2500\u2500 " : "\u251C\u2500\u2500 " : "";
4000
4014
  const meta = BUNDLE_DISPLAY_NAMES[b.name];
4001
- const isEssentials = !b.parentBundle && b.name !== "full" && b.name !== "universal-skills" && b.tier !== "organization";
4015
+ const isEssentials = !b.parentBundle && b.name !== "full" && b.name !== "universal-skills" && b.name !== "universal-orchestration" && b.tier !== "organization";
4002
4016
  const titleSuffix = isEssentials ? pc.cyan(" (Essentials Base)") : "";
4003
4017
  const parentTag = b.parentBundle ? pc.gray(` [inherits: ${b.parentBundle}]`) : "";
4004
4018
  let badge = "";
@@ -4150,6 +4164,7 @@ cli.command("start <bundle> [prompt]", "Start an installed bundle team in its ho
4150
4164
  outro(pc.red(`Cline executable was not found on PATH or via CLINE_BIN_PATH. Please install Cline CLI or ensure it is accessible.`));
4151
4165
  process.exit(1);
4152
4166
  }
4167
+ const bundleDef = await registry.getBundle(bundle);
4153
4168
  const plan = launcher.planActivation({
4154
4169
  bundleName: bundle,
4155
4170
  workspace: resolution.workspace,
@@ -4158,7 +4173,8 @@ cli.command("start <bundle> [prompt]", "Start an installed bundle team in its ho
4158
4173
  prompt,
4159
4174
  teamName: options.team,
4160
4175
  allowAddons: options.allowAddons,
4161
- headless: options.headless
4176
+ headless: options.headless,
4177
+ orchestrator: bundleDef?.orchestrator
4162
4178
  });
4163
4179
  if (options.dryRun) {
4164
4180
  note(
@@ -4197,7 +4213,7 @@ cli.command("doctor", "Verify health of installed agents, frontmatter schemas, a
4197
4213
  console.log(pc.bold(pc.cyan("\u{1F4A1} Get Started:")));
4198
4214
  console.log(` \u{1F449} ${pc.bold("agents add")} Launch the interactive installation wizard`);
4199
4215
  console.log(` \u{1F449} ${pc.bold("agents add software-engineering")} Install the engineering essentials team`);
4200
- console.log(` \u{1F449} ${pc.bold("agents list")} Browse all 18 bundles and 8 departments
4216
+ console.log(` \u{1F449} ${pc.bold("agents list")} Browse all 23 bundles and 8 departments
4201
4217
  `);
4202
4218
  if (report.clineCapability) {
4203
4219
  console.log(pc.bold(pc.cyan("Cline Runtime & Compound Projection Audit:")));