@super-one/cli 0.67.0-alpha → 0.67.0-alpha.1

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.67.0-alpha",
3
+ "version": "0.67.0-alpha.1",
4
4
  "kind": "npm",
5
5
  "minNodeMajor": 20,
6
- "builtAt": "2026-09-15T09:05:55.894Z"
6
+ "builtAt": "2026-09-16T03:50:48.772Z"
7
7
  }
package/lib/cli.mjs CHANGED
@@ -359,7 +359,7 @@ var init_interaction_memory = __esm({
359
359
  });
360
360
 
361
361
  // ../../packages/shared/src/superone-tool-descriptions.ts
362
- var MANUAL_READ_DESCRIPTION, SETUP_MINI_APP_DEV_DESCRIPTION, REGISTER_DEV_MINIAPP_DESCRIPTION, PACK_MINI_APP_DESCRIPTION, UPDATE_SUPERONE_TYPES_DESCRIPTION, RENAME_SESSION_DESCRIPTION, SESSION_TAG_DESCRIPTION, SESSION_TAG_LIST_DESCRIPTION, PROJECT_LIST_DESCRIPTION, SESSION_LIST_DESCRIPTION, SESSION_SEARCH_DESCRIPTION, SESSION_READ_DESCRIPTION, SESSION_TAGS_FILTER_DESCRIPTION, SESSION_TAG_MATCH_DESCRIPTION, SESSION_CLEANUP_DESCRIPTION, CONFIG_READ_DESCRIPTION, CONFIG_APPLY_DESCRIPTION, LIST_MEDIA_PROVIDERS_DESCRIPTION, GENERATE_IMAGE_DESCRIPTION, GENERATE_VIDEO_DESCRIPTION, VIDEO_STATUS_DESCRIPTION, SESSION_LIST_AGENTS_DESCRIPTION, SESSION_REQUEST_AGENTS_DESCRIPTION, LAUNCH_SUMMARY_DESCRIPTION, LAUNCH_TASK_DESCRIPTION, LAUNCH_MODE_DESCRIPTION, LAUNCH_SESSION_ID_DESCRIPTION, LAUNCH_PERMISSION_MODE_DESCRIPTION, LAUNCH_CWD_DESCRIPTION, LAUNCH_WORKTREE_DESCRIPTION, LAUNCH_BRANCH_NAME_DESCRIPTION, SESSION_START_DESCRIPTION, SESSION_SEND_DESCRIPTION, SESSION_RETRIEVE_DESCRIPTION, AUTOMATION_LIST_DESCRIPTION, AUTOMATION_APPLY_DESCRIPTION, AUTOMATION_DELETE_DESCRIPTION;
362
+ var MANUAL_READ_DESCRIPTION, SETUP_MINI_APP_DEV_DESCRIPTION, REGISTER_DEV_MINIAPP_DESCRIPTION, PACK_MINI_APP_DESCRIPTION, UPDATE_SUPERONE_TYPES_DESCRIPTION, RENAME_SESSION_DESCRIPTION, SESSION_TAG_DESCRIPTION, SESSION_TAG_LIST_DESCRIPTION, PROJECT_LIST_DESCRIPTION, SESSION_LIST_DESCRIPTION, SESSION_SEARCH_DESCRIPTION, SESSION_READ_DESCRIPTION, SESSION_TAGS_FILTER_DESCRIPTION, SESSION_TAG_MATCH_DESCRIPTION, SESSION_CLEANUP_DESCRIPTION, CONFIG_READ_DESCRIPTION, CONFIG_APPLY_DESCRIPTION, LIST_MEDIA_PROVIDERS_DESCRIPTION, GENERATE_IMAGE_DESCRIPTION, GENERATE_VIDEO_DESCRIPTION, VIDEO_STATUS_DESCRIPTION, SESSION_LIST_AGENTS_DESCRIPTION, SESSION_REQUEST_AGENTS_DESCRIPTION, LAUNCH_SUMMARY_DESCRIPTION, LAUNCH_TASK_DESCRIPTION, LAUNCH_MODE_DESCRIPTION, LAUNCH_SESSION_ID_DESCRIPTION, LAUNCH_PERMISSION_MODE_DESCRIPTION, LAUNCH_CWD_DESCRIPTION, LAUNCH_WORKTREE_DESCRIPTION, LAUNCH_BRANCH_NAME_DESCRIPTION, SESSION_START_DESCRIPTION, SESSION_SEND_DESCRIPTION, SESSION_RETRIEVE_DESCRIPTION, AUTOMATION_LIST_DESCRIPTION, AUTOMATION_APPLY_DESCRIPTION, AUTOMATION_DELETE_DESCRIPTION, TERMINAL_TABS_DESCRIPTION, TERMINAL_SNAPSHOT_DESCRIPTION, TERMINAL_ACT_DESCRIPTION, TERMINAL_WAIT_FOR_DESCRIPTION;
363
363
  var init_superone_tool_descriptions = __esm({
364
364
  "../../packages/shared/src/superone-tool-descriptions.ts"() {
365
365
  "use strict";
@@ -400,6 +400,10 @@ var init_superone_tool_descriptions = __esm({
400
400
  AUTOMATION_LIST_DESCRIPTION = "List project automations with schedule and last/next run. Pass id for full prompt, agentConfig, and schedule; filter by query or enabled. Find unknown ids here before automation_apply or automation_delete; check for duplicates before creation when needed.";
401
401
  AUTOMATION_APPLY_DESCRIPTION = 'Create or update a project automation. create needs name, prompt, schedule; update needs id plus any field (pause via enabled=false). Call automation_list first for ids; remove with automation_delete. Always opens a user confirmation dialog and applies nothing without approval. For schedule and agentConfig shapes see read_manual({ domain: "product", topic: "automation" }).';
402
402
  AUTOMATION_DELETE_DESCRIPTION = "Permanently delete project automations by id (from automation_list). Always opens a user confirmation dialog. Current project only. Prefer automation_list to choose ids first.";
403
+ TERMINAL_TABS_DESCRIPTION = "Manage terminal tabs in the activity panel for processes that outlive one command or need input: dev servers, watch modes, REPLs, TUIs, ssh, wizards. One-shot commands (build, test, git) belong in your shell tool. action=list (default) returns a TOON table: tab / title / cwd / status / foreground / control. action=run asks the user to approve `command`, types it into a new (or a given idle) tab and returns the screen; you control the tab only while that command is in the foreground. action=attach asks to control a command already running in a user tab. action=close kills a tab \u2014 never one the user is using. Follow up with terminal_act / terminal_wait_for / terminal_snapshot on the tab id.";
404
+ TERMINAL_SNAPSHOT_DESCRIPTION = "Read a terminal tab as rendered text. `include` picks sections: screen (visible rows, default), scrollback (last `tail` lines including scrolled-off output), cursor, meta (title, cwd, status, foreground command, control). Use screen for prompts and full-screen programs, scrollback for server logs. Output over the tail cap is spilled to a file and returned as path + preview. Prefer this before terminal_act; use terminal_wait_for instead of polling.";
405
+ TERMINAL_ACT_DESCRIPTION = 'Send input to a terminal tab you control. actions is an array, e.g. [{type:"type",text:"yes"}] or [{type:"key",key:"Ctrl+C"}]; types: type (Enter by default), key (Enter, Tab, Escape, Up, Ctrl+C, F1\u2026), raw, resize, wait. ONE action per call by default; batch 2\u201320 only for an uninterruptible sequence (answer a wizard). Fail-fast. expect holds the call open until a screen condition is met (text, textGone, idleMs, exited); the screen after the batch is returned. Rejected with status=rejected when the approved command has exited or the user took over \u2014 do not retry, call terminal_tabs run again or ask. description is shown to the user instead of raw keystrokes.';
406
+ TERMINAL_WAIT_FOR_DESCRIPTION = "Block until a terminal tab reaches a state; conditions AND-combine: text (substring visible on screen or in new output), textGone, idleMs (no output for that long), exited (foreground command finished). Use after terminal_tabs run or terminal_act when output arrives asynchronously (a server banner, a build finishing). timeoutMs default 15000, max 120000. Do not sleep+poll with terminal_snapshot yourself.";
403
407
  }
404
408
  });
405
409
 
@@ -2786,7 +2790,7 @@ var WIDGET_SHOW_DESCRIPTION;
2786
2790
  var init_widget_tool_descriptions = __esm({
2787
2791
  "../../packages/shared/src/generative-ui/widget-tool-descriptions.ts"() {
2788
2792
  "use strict";
2789
- WIDGET_SHOW_DESCRIPTION = `Render SVG, diagrams, charts, or interactive HTML inline in chat. Pass widget_code for new content, or template + data to reuse a saved template. To show media you produced yourself, pass a @native/* template so it renders in SuperOne's own gallery (viewer, download, drag-out) instead of a lookalike you build in widget_code \u2014 call widget_list_templates for the list. To hand the user several files to look at one after another (screenshots, reports, changed sources), pass @native/files-previewer with data.files. Before the first new widget in a session, load the relevant design modules with read_manual({ domain: "widget", modules: [...] }).`;
2793
+ WIDGET_SHOW_DESCRIPTION = `Render SVG, diagrams, charts, interactive HTML, or a SuperOne native surface (media gallery, files previewer) inline in chat. Pass widget_code for new content, or template + data to reuse a saved template. To show media you produced yourself, pass a @native/* template so it renders in SuperOne's own gallery (viewer, download, drag-out) instead of a lookalike you build in widget_code \u2014 call widget_list_templates for the list. To hand the user several files to look at one after another (screenshots, reports, changed sources), pass @native/files-previewer with data.files. Before the first new widget in a session, load the relevant design modules with read_manual({ domain: "widget", modules: [...] }).`;
2790
2794
  }
2791
2795
  });
2792
2796
 
@@ -3622,6 +3626,128 @@ var init_host_action_browser_perf_descriptors = __esm({
3622
3626
  }
3623
3627
  });
3624
3628
 
3629
+ // ../../packages/shared/src/environment/host-action-terminal-descriptors.ts
3630
+ var TERMINAL_WAIT_CONDITION_PROPERTIES, TERMINAL_ACTION_INPUT_SCHEMA, HOST_ACTION_TERMINAL_DESCRIPTORS;
3631
+ var init_host_action_terminal_descriptors = __esm({
3632
+ "../../packages/shared/src/environment/host-action-terminal-descriptors.ts"() {
3633
+ "use strict";
3634
+ init_superone_tool_descriptions();
3635
+ TERMINAL_WAIT_CONDITION_PROPERTIES = {
3636
+ text: { type: "string", description: "Substring that must appear on screen or in recent output." },
3637
+ textGone: { type: "string", description: "Substring that must be absent from the screen." },
3638
+ idleMs: { type: "number", description: "No output for this many milliseconds." },
3639
+ exited: { type: "boolean", description: "The controlled command has left the foreground (or the tab exited)." }
3640
+ };
3641
+ TERMINAL_ACTION_INPUT_SCHEMA = {
3642
+ type: "object",
3643
+ description: "type: text (+Enter unless enter=false) \xB7 key: named key (Enter, Tab, Escape, Up, Ctrl+C, Alt+b, F1\u2026) with optional repeat \xB7 raw: bytes verbatim \xB7 resize: cols/rows \xB7 wait: ms (\u22645000, inside a batch).",
3644
+ properties: {
3645
+ type: { type: "string", enum: ["type", "key", "raw", "resize", "wait"] },
3646
+ text: { type: "string" },
3647
+ enter: { type: "boolean", description: "type only. Default true." },
3648
+ key: { type: "string" },
3649
+ repeat: { type: "number", description: "key only. 1\u2013100." },
3650
+ bytes: { type: "string" },
3651
+ cols: { type: "number" },
3652
+ rows: { type: "number" },
3653
+ ms: { type: "number" }
3654
+ },
3655
+ required: ["type"],
3656
+ additionalProperties: false
3657
+ };
3658
+ HOST_ACTION_TERMINAL_DESCRIPTORS = [
3659
+ {
3660
+ name: "terminal_tabs",
3661
+ description: TERMINAL_TABS_DESCRIPTION,
3662
+ inputSchema: {
3663
+ type: "object",
3664
+ properties: {
3665
+ action: { type: "string", enum: ["list", "run", "attach", "close"], description: "Default list." },
3666
+ tab: {
3667
+ type: ["string", "array"],
3668
+ items: { type: "string" },
3669
+ minItems: 1,
3670
+ description: "Tab id from list. run: reuse this idle tab instead of opening one. attach/close: the target (close accepts an array)."
3671
+ },
3672
+ command: { type: "string", description: "run only. The command the user approves and that is typed into the shell." },
3673
+ cwd: { type: "string", description: "run only. Absolute working directory for a new tab. Default: the session working directory." },
3674
+ title: { type: "string", description: "run only. Tab title shown to the user. Default: the command name." },
3675
+ size: {
3676
+ type: "object",
3677
+ properties: { cols: { type: "number" }, rows: { type: "number" } },
3678
+ required: ["cols", "rows"],
3679
+ additionalProperties: false,
3680
+ description: "run only. Initial size of a new tab. Default 120\xD740."
3681
+ },
3682
+ yieldMs: { type: "number", description: "run only. How long to wait for the command to start and go quiet before returning. Default 5000, max 30000." },
3683
+ description: { type: "string", description: "Shown to the user instead of raw arguments." }
3684
+ },
3685
+ additionalProperties: false
3686
+ }
3687
+ },
3688
+ {
3689
+ name: "terminal_snapshot",
3690
+ description: TERMINAL_SNAPSHOT_DESCRIPTION,
3691
+ inputSchema: {
3692
+ type: "object",
3693
+ properties: {
3694
+ tab: { type: "string", description: "Tab id from terminal_tabs." },
3695
+ include: {
3696
+ type: "array",
3697
+ items: { type: "string", enum: ["screen", "scrollback", "cursor", "meta"] },
3698
+ description: "Sections to return. Default [screen]."
3699
+ },
3700
+ tail: { type: "number", description: "scrollback only. Lines from the end. Default 200, max 2000." }
3701
+ },
3702
+ required: ["tab"],
3703
+ additionalProperties: false
3704
+ }
3705
+ },
3706
+ {
3707
+ name: "terminal_act",
3708
+ description: TERMINAL_ACT_DESCRIPTION,
3709
+ inputSchema: {
3710
+ type: "object",
3711
+ properties: {
3712
+ tab: { type: "string", description: "Tab id from terminal_tabs." },
3713
+ actions: {
3714
+ type: "array",
3715
+ items: TERMINAL_ACTION_INPUT_SCHEMA,
3716
+ minItems: 1,
3717
+ maxItems: 20,
3718
+ description: "Normally one action. Use 2\u201320 only for a single uninterruptible sequence; they run in order, fail-fast."
3719
+ },
3720
+ expect: {
3721
+ type: "object",
3722
+ properties: TERMINAL_WAIT_CONDITION_PROPERTIES,
3723
+ additionalProperties: false,
3724
+ description: "Completion condition to wait for after the batch."
3725
+ },
3726
+ timeoutMs: { type: "number", description: "Maximum wait for expect. Default 15000, max 60000." },
3727
+ description: { type: "string", description: "Shown to the user instead of raw keystrokes." }
3728
+ },
3729
+ required: ["tab", "actions"],
3730
+ additionalProperties: false
3731
+ }
3732
+ },
3733
+ {
3734
+ name: "terminal_wait_for",
3735
+ description: TERMINAL_WAIT_FOR_DESCRIPTION,
3736
+ inputSchema: {
3737
+ type: "object",
3738
+ properties: {
3739
+ tab: { type: "string", description: "Tab id from terminal_tabs." },
3740
+ ...TERMINAL_WAIT_CONDITION_PROPERTIES,
3741
+ timeoutMs: { type: "number", description: "Maximum wait in milliseconds. Default 15000, max 120000." }
3742
+ },
3743
+ required: ["tab"],
3744
+ additionalProperties: false
3745
+ }
3746
+ }
3747
+ ];
3748
+ }
3749
+ });
3750
+
3625
3751
  // ../../packages/shared/src/environment/host-action-superone-descriptors.ts
3626
3752
  var HOST_ACTION_SUPERONE_TOOL_DESCRIPTORS;
3627
3753
  var init_host_action_superone_descriptors = __esm({
@@ -3639,6 +3765,7 @@ var init_host_action_superone_descriptors = __esm({
3639
3765
  init_host_action_automation_descriptors();
3640
3766
  init_host_action_device_descriptors();
3641
3767
  init_host_action_browser_perf_descriptors();
3768
+ init_host_action_terminal_descriptors();
3642
3769
  HOST_ACTION_SUPERONE_TOOL_DESCRIPTORS = [
3643
3770
  ...INTERACTION_MEMORY_TOOL_DEFS,
3644
3771
  ...HOST_ACTION_COLLABORATION_DESCRIPTORS,
@@ -3650,6 +3777,7 @@ var init_host_action_superone_descriptors = __esm({
3650
3777
  ...HOST_ACTION_COMPUTER_DESCRIPTORS,
3651
3778
  ...HOST_ACTION_WIDGET_DESCRIPTORS,
3652
3779
  ...HOST_ACTION_AUTOMATION_DESCRIPTORS,
3780
+ ...HOST_ACTION_TERMINAL_DESCRIPTORS,
3653
3781
  ...HOST_ACTION_DEVICE_DESCRIPTORS,
3654
3782
  ...HOST_ACTION_BROWSER_PERF_DESCRIPTORS
3655
3783
  ];
@@ -8448,17 +8576,19 @@ function superoneHostContext(extra) {
8448
8576
  ${superoneSystemPrompt(extra)}
8449
8577
  </superone-host-context>`;
8450
8578
  }
8451
- var SUPERONE_SYSTEM_PROMPT_APPEND;
8579
+ var SUPERONE_SYSTEM_PROMPT_APPEND, CLAUDE_TOOL_NAMING_APPEND, CLAUDE_SYSTEM_PROMPT_APPEND;
8452
8580
  var init_superone_system_prompt = __esm({
8453
8581
  "../../packages/shared/src/superone-system-prompt.ts"() {
8454
8582
  "use strict";
8455
8583
  init_browser_memory();
8456
8584
  SUPERONE_SYSTEM_PROMPT_APPEND = `You are running inside SuperOne, a desktop GUI app. Your replies render as rich Markdown in a chat panel.
8457
8585
 
8458
- SuperOne tools cover browser and device control, media, widgets, sessions, collaboration, automations, settings, and mini-apps. Read only the manual topics needed for the task; reuse guidance already in context.
8586
+ SuperOne tools cover browser, terminal and device control, media, widgets, sessions, collaboration, automations, settings, and mini-apps. Read only the manual topics needed for the task; reuse guidance already in context.
8459
8587
 
8460
8588
  Prefer SuperOne's built-in tools unless the user explicitly requests another tool or no suitable SuperOne tool is available.
8461
8589
 
8590
+ Terminals: your own shell tool stays the default for one-shot commands (build, test, git, scripts) that finish on their own. Anything that keeps running or waits for input \u2014 dev servers, watch/hot-reload modes, docker compose up, REPLs, full-screen programs, ssh, interactive wizards \u2014 goes through terminal_tabs run instead of being backgrounded in the shell tool (\`&\`, nohup, setsid): the shell would orphan the process and lose its output, while a terminal tab keeps it visible to the user and lets you keep working with it. Then terminal_wait_for for the ready line or prompt, terminal_snapshot to read the screen, terminal_act to type or send keys, and terminal_tabs close once its job is done. Each command is approved by the user and your control ends when it exits; a rejected result means stop and ask, not retry.
8591
+
8462
8592
  Experience memory:
8463
8593
  SuperOne keeps per-target experience notes on this node: browser_memory_* (domain), computer_memory_* (platform + appId), device_memory_* (platform + appId).
8464
8594
 
@@ -8478,11 +8608,12 @@ Response rendering:
8478
8608
  - Images: use ![description](/abs/path/image.png) to display an inline image.
8479
8609
  - Videos: use ![description](/abs/path/video.mp4) to display an inline video player.
8480
8610
  - Audio: use ![description](/abs/path/audio.mp3) to display an inline audio player.
8611
+ - Several media or files in a row (screenshots, recordings, PDFs, changed sources): show them in one card with widget_show({ template: "@native/files-previewer", data: { files: [{ path, note }] } }) instead of stacking embeds or links. A single file stays inline.
8481
8612
  - Wrap a link or media destination in angle brackets whenever the path contains spaces or parentheses, e.g. ![screenshot](</Users/me/Library/Application Support/SuperOne/shot.png>). A bare path with spaces is not valid Markdown and renders as literal text.
8482
8613
 
8483
- Show your work: embed a screenshot or recording when the user requested the capture or it directly supports a visual claim in your reply, and say what to look at. Screenshots needed to inspect content are allowed; reuse them as evidence when relevant. Omit captures that only document navigation or content extraction unless requested; ordinary reading needs no screenshot for the reply. Each file at most once per reply. Embed the user's existing media only when they ask to see or play it; otherwise link the file. For capture methods or multi-file presentation, read product/show-your-work.
8614
+ Show your work: embed a screenshot or recording when the user requested the capture or it directly supports a visual claim in your reply, and say what to look at. Screenshots needed to inspect content are allowed; reuse them as evidence when relevant. Omit captures that only document navigation or content extraction unless requested; ordinary reading needs no screenshot for the reply. Each file at most once per reply. Embed the user's existing media only when they ask to see or play it; otherwise link the file. Two or more evidence files go in one @native/files-previewer card. For capture methods, read product/show-your-work.
8484
8615
 
8485
- Leave surfaces as you found them: before ending a task, close the browser tabs you opened and no longer need (browser_tabs close), release the devices you hold (device_release), and quit the desktop apps you launched (no tool needed \u2014 quit the app itself, never kill by process name). What the user had open before, or is using now, stays open.
8616
+ Leave surfaces as you found them: before ending a task, close the browser tabs you opened and no longer need (browser_tabs close), close terminal tabs you opened whose command has finished (terminal_tabs close) \u2014 a server the user asked for stays running, say so instead \u2014 release the devices you hold (device_release), and quit the desktop apps you launched (no tool needed \u2014 quit the app itself, never kill by process name). What the user had open before, or is using now, stays open.
8486
8617
 
8487
8618
  Media generated by SuperOne's generation tools is displayed automatically. Do not embed or link the result again; describe it briefly.
8488
8619
 
@@ -8490,6 +8621,10 @@ Session organization:
8490
8621
  On the first substantive user request, call session_rename as your first tool call, before answering. Always include \`tags\`: 1\u20134 short kebab-case labels; reuse existing tags from session_tag_list when they fit, or invent suitable ones. When the session's purpose is fixing an issue or reviewing a PR, add a ref tag issue-N / pr-N in addition to the labels.
8491
8622
 
8492
8623
  Rename again when the title no longer describes the task. Update tags with session_tag as needed \u2014 in particular add pr-N right after opening a PR, so later sessions on that PR can find this one. Use a short title with a verb and concrete object in the user's language, without surrounding quotes or trailing punctuation.`;
8624
+ CLAUDE_TOOL_NAMING_APPEND = `Tool naming: SuperOne tools are named above without their server prefix. In your tool list they are mcp__superone__<name> (e.g. mcp__superone__terminal_tabs); when one is deferred, load it with ToolSearch by that full name.`;
8625
+ CLAUDE_SYSTEM_PROMPT_APPEND = `${SUPERONE_SYSTEM_PROMPT_APPEND}
8626
+
8627
+ ${CLAUDE_TOOL_NAMING_APPEND}`;
8493
8628
  }
8494
8629
  });
8495
8630
 
@@ -10764,7 +10899,7 @@ function isStaticHostOwnedSuperoneToolQualified(qualifiedName) {
10764
10899
  function isNeverAutoAllowSuperoneBareName(bare) {
10765
10900
  return NEVER_AUTO_ALLOW_SUPERONE_BARE_NAMES.includes(bare);
10766
10901
  }
10767
- var MCP_SUPERONE_TOOL_PREFIX, BROWSER_PRIMITIVE_TOOL_NAMES, BROWSER_ACTION_TOOL_NAMES, BROWSER_LEGACY_TOOL_NAMES, BROWSER_COMPACT_TOOL_NAMES, BROWSER_TOOL_NAMES, DEVICE_AGENT_TOOL_NAMES, BUILT_IN_SUPERONE_TOOL_NAMES, MINIAPP_LIST_BARE_NAME, MINIAPP_CALL_BARE_NAME, NEVER_AUTO_ALLOW_SUPERONE_BARE_NAMES, STATIC_HOST_OWNED_SUPERONE_QUALIFIED_TOOL_NAMES;
10902
+ var MCP_SUPERONE_TOOL_PREFIX, BROWSER_PRIMITIVE_TOOL_NAMES, BROWSER_ACTION_TOOL_NAMES, BROWSER_LEGACY_TOOL_NAMES, BROWSER_COMPACT_TOOL_NAMES, BROWSER_TOOL_NAMES, DEVICE_AGENT_TOOL_NAMES, TERMINAL_TOOL_NAMES, BUILT_IN_SUPERONE_TOOL_NAMES, MINIAPP_LIST_BARE_NAME, MINIAPP_CALL_BARE_NAME, NEVER_AUTO_ALLOW_SUPERONE_BARE_NAMES, STATIC_HOST_OWNED_SUPERONE_QUALIFIED_TOOL_NAMES;
10768
10903
  var init_superone_host_owned_tools = __esm({
10769
10904
  "../../packages/shared/src/superone-host-owned-tools.ts"() {
10770
10905
  "use strict";
@@ -10841,6 +10976,12 @@ var init_superone_host_owned_tools = __esm({
10841
10976
  "device_wait_for",
10842
10977
  "device_release"
10843
10978
  ];
10979
+ TERMINAL_TOOL_NAMES = [
10980
+ "terminal_tabs",
10981
+ "terminal_snapshot",
10982
+ "terminal_act",
10983
+ "terminal_wait_for"
10984
+ ];
10844
10985
  BUILT_IN_SUPERONE_TOOL_NAMES = [
10845
10986
  "browser_memory_read",
10846
10987
  "browser_memory_write",
@@ -10878,7 +11019,8 @@ var init_superone_host_owned_tools = __esm({
10878
11019
  "automation_apply",
10879
11020
  "automation_delete",
10880
11021
  ...BROWSER_TOOL_NAMES,
10881
- ...DEVICE_AGENT_TOOL_NAMES
11022
+ ...DEVICE_AGENT_TOOL_NAMES,
11023
+ ...TERMINAL_TOOL_NAMES
10882
11024
  ];
10883
11025
  MINIAPP_LIST_BARE_NAME = "miniapp_list";
10884
11026
  MINIAPP_CALL_BARE_NAME = "miniapp_call";
@@ -12374,7 +12516,7 @@ function buildLiveOptions(opts, onPermission, onQuestion, onPlan, signal, timing
12374
12516
  systemPrompt: {
12375
12517
  type: "preset",
12376
12518
  preset: "claude_code",
12377
- append: [SUPERONE_SYSTEM_PROMPT_APPEND, opts.systemPromptAppend].filter(Boolean).join("\n\n"),
12519
+ append: [CLAUDE_SYSTEM_PROMPT_APPEND, opts.systemPromptAppend].filter(Boolean).join("\n\n"),
12378
12520
  snapshot: false
12379
12521
  },
12380
12522
  ...opts.sessionId ? { resume: opts.sessionId } : {},
@@ -72157,8 +72299,8 @@ import { fileURLToPath } from "node:url";
72157
72299
  function resolveCliReleaseVersion() {
72158
72300
  const fromEnv = process.env.SUPERONE_CLI_VERSION?.trim();
72159
72301
  if (fromEnv) return fromEnv;
72160
- if ("0.67.0-alpha".trim()) {
72161
- return "0.67.0-alpha".trim();
72302
+ if ("0.67.0-alpha.1".trim()) {
72303
+ return "0.67.0-alpha.1".trim();
72162
72304
  }
72163
72305
  const fromDist = readDistManifestVersion();
72164
72306
  if (fromDist) return fromDist;
@@ -85011,7 +85153,7 @@ var WorkspaceGitService = class {
85011
85153
  deletions: shortstat.deletions
85012
85154
  };
85013
85155
  } catch (err) {
85014
- throw Object.assign(new Error(err.message || "git status failed"), {
85156
+ throw Object.assign(new Error(gitErrorMessage(err) || "git status failed"), {
85015
85157
  code: "internal"
85016
85158
  });
85017
85159
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@super-one/cli",
3
- "version": "0.67.0-alpha",
3
+ "version": "0.67.0-alpha.1",
4
4
  "description": "SuperOne headless node CLI — remote execution environment (RPC, workspaces, sessions).",
5
5
  "type": "module",
6
6
  "license": "BUSL-1.1",