@super-one/cli 0.55.0-alpha → 0.55.2-alpha

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/MANIFEST.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@super-one/cli",
3
- "version": "0.55.0-alpha",
3
+ "version": "0.55.2-alpha",
4
4
  "kind": "npm",
5
5
  "minNodeMajor": 20,
6
- "builtAt": "2026-08-19T11:22:00.625Z"
6
+ "builtAt": "2026-08-20T02:18:24.704Z"
7
7
  }
package/lib/cli.mjs CHANGED
@@ -171,7 +171,7 @@ var init_host_action_superone_descriptors = __esm({
171
171
  HOST_ACTION_SUPERONE_TOOL_DESCRIPTORS = [
172
172
  {
173
173
  "name": "session_collab_list_agents",
174
- "description": "List the agent profiles available for user-approved child sessions. Inspect each profile's harness and defaultConfig before session_collab_request. You may reuse one agentId for multiple launches.",
174
+ "description": "List the agent profiles available for user-approved child sessions. Only launchable agents are returned. Inspect each profile's harness and defaultConfig before session_collab_request. You may reuse one agentId for multiple launches. Skip this call when the user already named an agent with @ \u2014 that mention carries its agentId.",
175
175
  "inputSchema": {
176
176
  "type": "object",
177
177
  "properties": {},
@@ -23331,17 +23331,12 @@ function getBuiltinCapability(id) {
23331
23331
  function stripCapabilityMarkup(text) {
23332
23332
  return text.replace(CAPABILITY_REMINDER_REGEX, "").replace(CAPABILITY_TAG_REGEX, (_2, name) => `@${String(name).trim()}`).replace(/\s+/g, " ").trim();
23333
23333
  }
23334
- var BUILTIN_CAPABILITIES, BUILTIN_CAPABILITY_IDS, byId, CAPABILITY_TAG_REGEX, CAPABILITY_REMINDER_REGEX;
23334
+ var LEGACY_CAPABILITY_IDS, BUILTIN_CAPABILITIES, BUILTIN_CAPABILITY_IDS, byId, legacyIds, CAPABILITY_TAG_REGEX, CAPABILITY_REMINDER_REGEX;
23335
23335
  var init_capability_prompt_tags = __esm({
23336
23336
  "../../packages/shared/src/capability-prompt-tags.ts"() {
23337
23337
  "use strict";
23338
+ LEGACY_CAPABILITY_IDS = ["collab"];
23338
23339
  BUILTIN_CAPABILITIES = [
23339
- {
23340
- id: "collab",
23341
- displayName: "Agents Collaboration",
23342
- intent: "spawn and coordinate child agent sessions via collaboration tools",
23343
- toolPrefix: "session_collab_"
23344
- },
23345
23340
  {
23346
23341
  id: "computer",
23347
23342
  displayName: "Computer Use",
@@ -23369,6 +23364,7 @@ var init_capability_prompt_tags = __esm({
23369
23364
  ];
23370
23365
  BUILTIN_CAPABILITY_IDS = BUILTIN_CAPABILITIES.map((c) => c.id);
23371
23366
  byId = new Map(BUILTIN_CAPABILITIES.map((c) => [c.id, c]));
23367
+ legacyIds = new Set(LEGACY_CAPABILITY_IDS);
23372
23368
  CAPABILITY_TAG_REGEX = /<superone-capability>\s*<name>([\s\S]*?)<\/name>\s*<id>([\s\S]*?)<\/id>\s*<\/superone-capability>/g;
23373
23369
  CAPABILITY_REMINDER_REGEX = /\n*<superone-capability-reminder>[\s\S]*?<\/superone-capability-reminder>\n*/g;
23374
23370
  }
@@ -69753,8 +69749,8 @@ import { fileURLToPath } from "node:url";
69753
69749
  function resolveCliReleaseVersion() {
69754
69750
  const fromEnv = process.env.SUPERONE_CLI_VERSION?.trim();
69755
69751
  if (fromEnv) return fromEnv;
69756
- if ("0.55.0-alpha".trim()) {
69757
- return "0.55.0-alpha".trim();
69752
+ if ("0.55.2-alpha".trim()) {
69753
+ return "0.55.2-alpha".trim();
69758
69754
  }
69759
69755
  const fromDist = readDistManifestVersion();
69760
69756
  if (fromDist) return fromDist;
@@ -79626,10 +79622,45 @@ init_codex_turn_runner();
79626
79622
  // src/session/collaboration.ts
79627
79623
  init_agent_types();
79628
79624
  init_environment();
79629
- init_resolve_service();
79630
79625
  import { createHash as createHash9, randomBytes as randomBytes5, randomUUID as randomUUID10 } from "node:crypto";
79631
79626
  import { existsSync as existsSync39, statSync as statSync15 } from "node:fs";
79632
79627
  import { resolve as pathResolve2 } from "node:path";
79628
+
79629
+ // ../../packages/shared/src/harness/acp-brand.ts
79630
+ function isGrokAcpAgent(agentId) {
79631
+ if (!agentId) return false;
79632
+ const id = agentId.toLowerCase();
79633
+ return id.includes("grok");
79634
+ }
79635
+ function isOpenCodeAcpAgent(agentId) {
79636
+ if (!agentId) return false;
79637
+ return agentId.toLowerCase().includes("opencode");
79638
+ }
79639
+ function resolveHarnessBrandKey(harnessId, acpAgentId) {
79640
+ if (!harnessId) return "claude";
79641
+ if (harnessId !== "acp") return harnessId;
79642
+ if (isGrokAcpAgent(acpAgentId)) return "acp-grok";
79643
+ if (isOpenCodeAcpAgent(acpAgentId)) return "acp-opencode";
79644
+ if (acpAgentId?.trim()) {
79645
+ const short = acpAgentId.trim().toLowerCase().replace(/-build$/, "").replace(/[^a-z0-9]+/g, "-");
79646
+ return short ? `acp-${short}` : "acp";
79647
+ }
79648
+ return "acp";
79649
+ }
79650
+ function acpAgentDisplayName(agentId, catalogName) {
79651
+ if (catalogName?.trim()) {
79652
+ return catalogName.trim().replace(/\s+Build$/i, "");
79653
+ }
79654
+ if (isGrokAcpAgent(agentId)) return "Grok";
79655
+ if (isOpenCodeAcpAgent(agentId)) return "OpenCode";
79656
+ if (agentId?.trim()) {
79657
+ return agentId.trim().replace(/-build$/i, "").split(/[-_]/).filter(Boolean).map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join(" ");
79658
+ }
79659
+ return "ACP";
79660
+ }
79661
+
79662
+ // src/session/collaboration.ts
79663
+ init_resolve_service();
79633
79664
  var MAX_MESSAGES_PER_RETRIEVE = 100;
79634
79665
  var EMPTY_MAILBOX_HINT = "No peer has replied yet. Do not retrieve again, do not sleep, do not wait in place \u2014 end your turn or do unrelated work. A task notification will start a new turn for you as soon as a message arrives.";
79635
79666
  function hashCredential(credential) {
@@ -79642,6 +79673,12 @@ function parseConfig(raw) {
79642
79673
  return {};
79643
79674
  }
79644
79675
  }
79676
+ function resolveProfile(profiles, agentId) {
79677
+ const direct = profiles.get(agentId);
79678
+ if (direct) return direct;
79679
+ const wire = normalizeSessionHarnessId(agentId);
79680
+ return wire ? profiles.get(`${wire}-base`) : void 0;
79681
+ }
79645
79682
  function resolveLaunchMode(raw) {
79646
79683
  if (raw === "link") return "link";
79647
79684
  if (raw === "handoff") return "handoff";
@@ -79696,9 +79733,7 @@ var CollaborationService = class {
79696
79733
  };
79697
79734
  const pushProfile = (profileId, harnessId, name, description, profileConfig) => {
79698
79735
  if (seen.has(profileId)) return;
79699
- if (harnessId !== "claude" && harnessId !== "codex" && harnessId !== "acp" && harnessId !== "opencode") {
79700
- return;
79701
- }
79736
+ if (!harnesses.isSessionHarnessRunnable(harnessId)) return;
79702
79737
  seen.add(profileId);
79703
79738
  const models = listHarnessModels(providers, harnessId, null, providerOptions).map((m2) => ({
79704
79739
  id: m2.id,
@@ -79713,13 +79748,15 @@ var CollaborationService = class {
79713
79748
  const cfg = profileConfig && typeof profileConfig === "object" && !Array.isArray(profileConfig) ? profileConfig : {};
79714
79749
  const cfgModel = typeof cfg.model === "string" && cfg.model.trim() ? cfg.model.trim() : void 0;
79715
79750
  const cfgEffort = typeof cfg.effort === "string" && cfg.effort.trim() ? cfg.effort.trim() : typeof cfg.reasoningEffort === "string" && cfg.reasoningEffort.trim() ? cfg.reasoningEffort.trim() : void 0;
79751
+ const acpAgentId = harnessId === "acp" && typeof cfg.agentId === "string" && cfg.agentId.trim() ? cfg.agentId.trim() : null;
79716
79752
  const modelDefault = cfgModel ?? defaultModel?.id;
79717
79753
  const effortDefault = cfgEffort ?? (efforts.has("high") ? "high" : efforts.has("medium") ? "medium" : efforts.size > 0 ? [...efforts][0] : void 0);
79718
79754
  profiles.push({
79719
79755
  id: profileId,
79720
- name,
79756
+ name: harnessId === "acp" ? acpAgentDisplayName(acpAgentId) : name,
79721
79757
  harnessId,
79722
- brandKey: harnessId === "acp" ? "acp" : harnessId,
79758
+ ...acpAgentId ? { acpAgentId } : {},
79759
+ brandKey: resolveHarnessBrandKey(harnessId, acpAgentId),
79723
79760
  description,
79724
79761
  defaultConfig: {
79725
79762
  ...modelDefault ? { model: modelDefault } : {},
@@ -79739,25 +79776,12 @@ var CollaborationService = class {
79739
79776
  p2.isBase ? `${p2.harnessId} harness with the built-in configuration` : `Custom ${p2.harnessId} profile`,
79740
79777
  p2.config
79741
79778
  );
79742
- if (p2.isBase && p2.id === `${p2.harnessId}-base`) {
79743
- pushProfile(
79744
- p2.harnessId,
79745
- p2.harnessId,
79746
- p2.harnessId,
79747
- `${p2.harnessId} harness`,
79748
- p2.config
79749
- );
79750
- }
79751
79779
  }
79752
79780
  }
79753
79781
  if (profiles.length === 0) {
79754
- const ready = new Set(harnesses.readySessionHarnessIds());
79755
- const seedIds = new Set(
79756
- ready.size > 0 ? [...ready] : NODE_HARNESS_DEFINITIONS.map((d) => d.sessionHarnessId)
79757
- );
79782
+ const seedIds = new Set(harnesses.readySessionHarnessIds());
79758
79783
  for (const s2 of sessions.list()) {
79759
79784
  if (s2.harnessId) seedIds.add(s2.harnessId);
79760
- if (s2.providerId) seedIds.add(s2.providerId);
79761
79785
  }
79762
79786
  for (const id of seedIds) {
79763
79787
  const harnessId = normalizeSessionHarnessId(id) ?? id;
@@ -79862,7 +79886,7 @@ var CollaborationService = class {
79862
79886
  { code: "invalid_argument" }
79863
79887
  );
79864
79888
  }
79865
- const profile = profiles.get(agentId);
79889
+ const profile = resolveProfile(profiles, agentId);
79866
79890
  if (!profile) {
79867
79891
  throw Object.assign(new Error(`Unknown agent profile: ${agentId}`), {
79868
79892
  code: "invalid_argument"
@@ -80238,7 +80262,10 @@ var CollaborationService = class {
80238
80262
  });
80239
80263
  cwd = wt.path;
80240
80264
  }
80241
- const profile = this.listProfiles().find((p2) => p2.id === grant.agent_id);
80265
+ const profile = resolveProfile(
80266
+ new Map(this.listProfiles().map((p2) => [p2.id, p2])),
80267
+ grant.agent_id
80268
+ );
80242
80269
  const harnessId = profile?.harnessId ?? normalizeSessionHarnessId(grant.agent_id) ?? "claude";
80243
80270
  const displayName = deriveCollaborationName({ name: config2.name });
80244
80271
  const role = deriveCollaborationRole({ role: config2.role, task: grant.task });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@super-one/cli",
3
- "version": "0.55.0-alpha",
3
+ "version": "0.55.2-alpha",
4
4
  "description": "SuperOne headless node CLI — remote execution environment (RPC, workspaces, sessions).",
5
5
  "type": "module",
6
6
  "license": "BUSL-1.1",