@super-one/cli 0.50.6-alpha → 0.50.8-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.
Files changed (3) hide show
  1. package/MANIFEST.json +2 -2
  2. package/lib/cli.mjs +70 -18
  3. package/package.json +10 -10
package/MANIFEST.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@super-one/cli",
3
- "version": "0.50.6-alpha",
3
+ "version": "0.50.8-alpha",
4
4
  "kind": "npm",
5
5
  "minNodeMajor": 20,
6
- "builtAt": "2026-08-07T21:59:53.372Z"
6
+ "builtAt": "2026-08-08T05:39:36.329Z"
7
7
  }
package/lib/cli.mjs CHANGED
@@ -179,7 +179,7 @@ var init_host_action_superone_descriptors = __esm({
179
179
  },
180
180
  {
181
181
  "name": "session_collab_request",
182
- "description": 'Request user approval for one or more child sessions. Call session_collab_list_agents first; repeat an agentId to reuse a profile. Invent a human-friendly name and a task-specific role for every launch. Omitted config fields inherit profile defaults. Before setting config.cwd or config.worktree, call read_manual({ domain: "product", topic: "collaboration" }); same-repo isolation belongs in config.worktree, not a worktree-leaf cwd. The user may edit model, effort, provider, permission, and sandbox settings. Each approved launch returns a private one-shot credential for session_collab_start.',
182
+ "description": 'Request user approval for one or more child sessions. Call session_collab_list_agents first; repeat an agentId to reuse a profile. Invent a human-friendly name and role for every launch. Pass a short 2\u20133 sentence summary (confirm UI) and a full Markdown task (delivered on start; expandable in the UI). Omitted config fields inherit profile defaults. Before setting config.cwd or config.worktree, call read_manual({ domain: "product", topic: "collaboration" }); same-repo isolation belongs in config.worktree. The user may edit model, effort, provider, permission, and sandbox. Each approved launch returns a one-shot credential for session_collab_start.',
183
183
  "inputSchema": {
184
184
  "type": "object",
185
185
  "properties": {
@@ -198,10 +198,15 @@ var init_host_action_superone_descriptors = __esm({
198
198
  "type": "string",
199
199
  "description": "Agent profile id from session_collab_list_agents."
200
200
  },
201
+ "summary": {
202
+ "type": "string",
203
+ "minLength": 1,
204
+ "description": "Short 2\u20133 sentence task summary shown collapsed in the confirm dialog. Not the full brief \u2014 put detail in task."
205
+ },
201
206
  "task": {
202
207
  "type": "string",
203
- "maxLength": 1e5,
204
- "description": "The task shown to the user and delivered to this child session."
208
+ "minLength": 1,
209
+ "description": "Full task brief in Markdown. Delivered to the child session on session_collab_start. The user can expand the summary in the confirm UI to preview it."
205
210
  },
206
211
  "name": {
207
212
  "type": "string",
@@ -296,6 +301,7 @@ var init_host_action_superone_descriptors = __esm({
296
301
  },
297
302
  "required": [
298
303
  "agentId",
304
+ "summary",
299
305
  "task",
300
306
  "name",
301
307
  "role"
@@ -9331,6 +9337,7 @@ function buildClaudeResultMetadata(result, startedAt, pausedMs, lastAssistantUsa
9331
9337
  terminalReason: result.terminal_reason,
9332
9338
  resultText: result.result,
9333
9339
  fastModeState: result.fast_mode_state,
9340
+ fastModeDisabledReason: result.fast_mode_disabled_reason,
9334
9341
  errorSubtype: result.subtype !== "success" ? result.subtype : void 0,
9335
9342
  structuredOutput: result.structured_output,
9336
9343
  isError: result.is_error || void 0,
@@ -9364,7 +9371,9 @@ function buildClaudeResultMetadata(result, startedAt, pausedMs, lastAssistantUsa
9364
9371
  costUSD: modelUsage.costUSD ?? 0,
9365
9372
  webSearchRequests: modelUsage.webSearchRequests || void 0,
9366
9373
  contextWindow: modelUsage.contextWindow || void 0,
9367
- maxOutputTokens: modelUsage.maxOutputTokens || void 0
9374
+ maxOutputTokens: modelUsage.maxOutputTokens || void 0,
9375
+ canonicalModel: typeof modelUsage.canonicalModel === "string" ? modelUsage.canonicalModel : void 0,
9376
+ provider: typeof modelUsage.provider === "string" ? modelUsage.provider : void 0
9368
9377
  };
9369
9378
  }
9370
9379
  }
@@ -9454,7 +9463,8 @@ function createClaudeAgentEventMapper(options) {
9454
9463
  outputStyle: system.output_style,
9455
9464
  availableOutputStyles: system.available_output_styles,
9456
9465
  plugins: system.plugins,
9457
- fastModeState: system.fast_mode_state
9466
+ fastModeState: system.fast_mode_state,
9467
+ fastModeDisabledReason: system.fast_mode_disabled_reason
9458
9468
  }
9459
9469
  });
9460
9470
  break;
@@ -10177,6 +10187,8 @@ function buildLiveOptions(opts, onPermission, onQuestion, onPlan, signal, timing
10177
10187
  append: [SUPERONE_SYSTEM_PROMPT_APPEND, opts.systemPromptAppend].filter(Boolean).join("\n\n")
10178
10188
  },
10179
10189
  ...opts.sessionId ? { resume: opts.sessionId } : {},
10190
+ ...opts.resumeSessionAt ? { resumeSessionAt: opts.resumeSessionAt } : {},
10191
+ ...opts.resumeDropsTurn ? { resumeDropsTurn: opts.resumeDropsTurn } : {},
10180
10192
  ...env ? { env } : {}
10181
10193
  };
10182
10194
  return {
@@ -13840,6 +13852,19 @@ function parseSimpleFrontmatter(content) {
13840
13852
  }
13841
13853
  return result;
13842
13854
  }
13855
+ function resolveArgumentHint(fm) {
13856
+ if (!fm) return "";
13857
+ const fromArguments = (fm.arguments ?? "").trim();
13858
+ if (fromArguments) return fromArguments;
13859
+ return (fm["argument-hint"] ?? "").trim();
13860
+ }
13861
+ function readArgumentHintFromMarkdownFile(filePath) {
13862
+ try {
13863
+ return resolveArgumentHint(parseSimpleFrontmatter(safeReadText(filePath)));
13864
+ } catch {
13865
+ return "";
13866
+ }
13867
+ }
13843
13868
  function firstMarkdownHeading(content) {
13844
13869
  for (const line of content.split("\n")) {
13845
13870
  const m2 = line.match(/^#\s+(.+)$/);
@@ -13870,7 +13895,7 @@ function discoverClaudeSkillsAndCommands(projectRoot2, opts) {
13870
13895
  skills.push({
13871
13896
  name: ent.name,
13872
13897
  description: fm.description ?? "",
13873
- argumentHint: fm.arguments ?? fm["argument-hint"] ?? "",
13898
+ argumentHint: resolveArgumentHint(fm),
13874
13899
  isSkill: true,
13875
13900
  scope
13876
13901
  });
@@ -13894,7 +13919,7 @@ function discoverClaudeSkillsAndCommands(projectRoot2, opts) {
13894
13919
  commands.push({
13895
13920
  name,
13896
13921
  description: fm.description ?? firstMarkdownHeading(content),
13897
- argumentHint: fm["argument-hint"] ?? "",
13922
+ argumentHint: resolveArgumentHint(fm),
13898
13923
  isSkill: false,
13899
13924
  scope
13900
13925
  });
@@ -14127,7 +14152,7 @@ function discoverCodexUserPrompts(opts) {
14127
14152
  out.push({
14128
14153
  name,
14129
14154
  description: fm.description ?? "",
14130
- argumentHint: fm["argument-hint"] ?? "",
14155
+ argumentHint: resolveArgumentHint(fm),
14131
14156
  isSkill: false
14132
14157
  });
14133
14158
  }
@@ -14361,11 +14386,17 @@ var init_capabilities2 = __esm({
14361
14386
  });
14362
14387
 
14363
14388
  // ../../packages/shared/src/agent-types.ts
14364
- var SESSION_AGENT_LAUNCHES_FIELD, CODEX_PERMISSION_PRESETS, DEFAULT_CODEX_PERMISSION_PRESET, DEFAULT_CODEX_PERMISSION_PROFILE, MODEL_BUCKETS;
14389
+ function resolveLaunchSummary(task, summary) {
14390
+ const explicit = typeof summary === "string" ? summary.trim() : "";
14391
+ if (explicit) return explicit;
14392
+ return task.split(/\n/, 1)[0]?.trim() || task.trim();
14393
+ }
14394
+ var SESSION_AGENT_LAUNCHES_FIELD, SESSION_AGENT_TASK_MAX, CODEX_PERMISSION_PRESETS, DEFAULT_CODEX_PERMISSION_PRESET, DEFAULT_CODEX_PERMISSION_PROFILE, MODEL_BUCKETS;
14365
14395
  var init_agent_types = __esm({
14366
14396
  "../../packages/shared/src/agent-types.ts"() {
14367
14397
  "use strict";
14368
14398
  SESSION_AGENT_LAUNCHES_FIELD = "sessionAgentLaunchesJson";
14399
+ SESSION_AGENT_TASK_MAX = 1e5;
14369
14400
  CODEX_PERMISSION_PRESETS = {
14370
14401
  "read-only": {
14371
14402
  approvalPolicy: "on-request",
@@ -18825,7 +18856,7 @@ function parseFrontmatterFile(filePath) {
18825
18856
  return {
18826
18857
  name: fm.name ?? "",
18827
18858
  description,
18828
- argumentHint: fm.arguments ?? fm["argument-hint"] ?? ""
18859
+ argumentHint: resolveArgumentHint(fm)
18829
18860
  };
18830
18861
  } catch {
18831
18862
  return { name: "", description: "", argumentHint: "" };
@@ -42291,12 +42322,18 @@ function mapSessionUpdate(update, ctx, opts) {
42291
42322
  const name = c.name.replace(/^\//, "").trim();
42292
42323
  if (!name) continue;
42293
42324
  if (isHiddenAcpPermissionSlashCommand(name)) continue;
42294
- const hint = c.input && typeof c.input === "object" && typeof c.input.hint === "string" ? c.input.hint : "";
42325
+ let hint = c.input && typeof c.input === "object" && typeof c.input.hint === "string" ? c.input.hint.trim() : "";
42326
+ if (!hint && c._meta && typeof c._meta === "object" && typeof c._meta.path === "string") {
42327
+ hint = readArgumentHintFromMarkdownFile(c._meta.path);
42328
+ }
42329
+ const isSkill = Boolean(
42330
+ c._meta && typeof c._meta === "object" && typeof c._meta.path === "string" && /SKILL\.md$/i.test(c._meta.path)
42331
+ );
42295
42332
  commands.push({
42296
42333
  name,
42297
42334
  description: typeof c.description === "string" ? c.description : "",
42298
42335
  argumentHint: hint,
42299
- isSkill: false
42336
+ isSkill
42300
42337
  });
42301
42338
  }
42302
42339
  return [{ type: "acp_commands", commands }];
@@ -42481,6 +42518,7 @@ function createAcpAgentEventMapper(options) {
42481
42518
  var init_agent_event_mapper3 = __esm({
42482
42519
  "../../packages/acp/src/agent-event-mapper.ts"() {
42483
42520
  "use strict";
42521
+ init_fs();
42484
42522
  init_config_map();
42485
42523
  init_slash_filter();
42486
42524
  init_tool_normalization();
@@ -50220,7 +50258,7 @@ var OFFICIAL_CLAUDE_SDK_VERSION, OFFICIAL_CODEX_NPM_VERSION, OFFICIAL_CLAUDE_SDK
50220
50258
  var init_managed_harness_official = __esm({
50221
50259
  "src/session/managed-harness-official.ts"() {
50222
50260
  "use strict";
50223
- OFFICIAL_CLAUDE_SDK_VERSION = "0.3.223";
50261
+ OFFICIAL_CLAUDE_SDK_VERSION = "0.3.226";
50224
50262
  OFFICIAL_CODEX_NPM_VERSION = "0.146.1";
50225
50263
  OFFICIAL_CLAUDE_SDK_PACKAGE = "@anthropic-ai/claude-agent-sdk";
50226
50264
  OFFICIAL_CODEX_PACKAGE = "@openai/codex";
@@ -57406,8 +57444,8 @@ import { fileURLToPath } from "node:url";
57406
57444
  function resolveCliReleaseVersion() {
57407
57445
  const fromEnv = process.env.SUPERONE_CLI_VERSION?.trim();
57408
57446
  if (fromEnv) return fromEnv;
57409
- if ("0.50.6-alpha".trim()) {
57410
- return "0.50.6-alpha".trim();
57447
+ if ("0.50.8-alpha".trim()) {
57448
+ return "0.50.8-alpha".trim();
57411
57449
  }
57412
57450
  const fromDist = readDistManifestVersion();
57413
57451
  if (fromDist) return fromDist;
@@ -66042,8 +66080,15 @@ var CollaborationService = class {
66042
66080
  code: "invalid_argument"
66043
66081
  });
66044
66082
  }
66045
- if (task.length > 1e5) {
66046
- throw Object.assign(new Error("A launch task may contain at most 100,000 characters"), {
66083
+ if (task.length > SESSION_AGENT_TASK_MAX) {
66084
+ throw Object.assign(
66085
+ new Error(`A launch task may contain at most ${SESSION_AGENT_TASK_MAX.toLocaleString()} characters`),
66086
+ { code: "invalid_argument" }
66087
+ );
66088
+ }
66089
+ const summary = resolveLaunchSummary(task, launch2.summary);
66090
+ if (!summary) {
66091
+ throw Object.assign(new Error("Every launch must include a non-empty summary"), {
66047
66092
  code: "invalid_argument"
66048
66093
  });
66049
66094
  }
@@ -66076,6 +66121,7 @@ var CollaborationService = class {
66076
66121
  return {
66077
66122
  launchId,
66078
66123
  agentId: launch2.agentId,
66124
+ summary,
66079
66125
  task,
66080
66126
  name,
66081
66127
  role,
@@ -66121,7 +66167,12 @@ var CollaborationService = class {
66121
66167
  () => confirmed.map((launch2) => {
66122
66168
  const credential = `s1sc_${randomBytes4(32).toString("base64url")}`;
66123
66169
  const credentialHash = hashCredential(credential);
66124
- const config2 = { ...launch2.config, name: launch2.name, role: launch2.role };
66170
+ const config2 = {
66171
+ ...launch2.config,
66172
+ name: launch2.name,
66173
+ role: launch2.role,
66174
+ summary: launch2.summary
66175
+ };
66125
66176
  insert.run(
66126
66177
  credentialHash,
66127
66178
  this.deps.secrets.encrypt(credential),
@@ -66145,6 +66196,7 @@ var CollaborationService = class {
66145
66196
  return {
66146
66197
  launchId: launch2.launchId,
66147
66198
  agentId: launch2.agentId,
66199
+ summary: launch2.summary,
66148
66200
  task: launch2.task,
66149
66201
  name: launch2.name,
66150
66202
  role: launch2.role,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@super-one/cli",
3
- "version": "0.50.6-alpha",
3
+ "version": "0.50.8-alpha",
4
4
  "description": "SuperOne headless node CLI — remote execution environment (RPC, workspaces, sessions).",
5
5
  "type": "module",
6
6
  "license": "BUSL-1.1",
@@ -25,18 +25,18 @@
25
25
  "directory": "apps/cli"
26
26
  },
27
27
  "dependencies": {
28
- "@anthropic-ai/claude-agent-sdk": "0.3.223",
28
+ "@anthropic-ai/claude-agent-sdk": "0.3.226",
29
29
  "better-sqlite3": "^13.0.1",
30
30
  "node-pty": "^1.0.0"
31
31
  },
32
32
  "optionalDependencies": {
33
- "@anthropic-ai/claude-agent-sdk-darwin-arm64": "0.3.223",
34
- "@anthropic-ai/claude-agent-sdk-darwin-x64": "0.3.223",
35
- "@anthropic-ai/claude-agent-sdk-linux-x64": "0.3.223",
36
- "@anthropic-ai/claude-agent-sdk-linux-arm64": "0.3.223",
37
- "@anthropic-ai/claude-agent-sdk-linux-x64-musl": "0.3.223",
38
- "@anthropic-ai/claude-agent-sdk-linux-arm64-musl": "0.3.223",
39
- "@anthropic-ai/claude-agent-sdk-win32-x64": "0.3.223",
40
- "@anthropic-ai/claude-agent-sdk-win32-arm64": "0.3.223"
33
+ "@anthropic-ai/claude-agent-sdk-darwin-arm64": "0.3.226",
34
+ "@anthropic-ai/claude-agent-sdk-darwin-x64": "0.3.226",
35
+ "@anthropic-ai/claude-agent-sdk-linux-x64": "0.3.226",
36
+ "@anthropic-ai/claude-agent-sdk-linux-arm64": "0.3.226",
37
+ "@anthropic-ai/claude-agent-sdk-linux-x64-musl": "0.3.226",
38
+ "@anthropic-ai/claude-agent-sdk-linux-arm64-musl": "0.3.226",
39
+ "@anthropic-ai/claude-agent-sdk-win32-x64": "0.3.226",
40
+ "@anthropic-ai/claude-agent-sdk-win32-arm64": "0.3.226"
41
41
  }
42
42
  }