runpane 2.4.174 → 2.4.175
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/dist/daemonClient.d.ts.map +1 -1
- package/dist/daemonClient.js +7 -2
- package/dist/daemonClient.js.map +1 -1
- package/dist/docs-index.json +1 -1
- package/dist/generated/contract.d.ts +33 -25
- package/dist/generated/contract.d.ts.map +1 -1
- package/dist/generated/contract.js +36 -28
- package/dist/generated/contract.js.map +1 -1
- package/dist/workspace.d.ts +10 -1
- package/dist/workspace.d.ts.map +1 -1
- package/dist/workspace.js +54 -16
- package/dist/workspace.js.map +1 -1
- package/package.json +1 -1
|
@@ -305,7 +305,7 @@ exports.RUNPANE_CONTRACT = {
|
|
|
305
305
|
},
|
|
306
306
|
{
|
|
307
307
|
"name": "workspace list",
|
|
308
|
-
"summary": "List
|
|
308
|
+
"summary": "List the machines on your tailnet, each with its owner, and whether each answers workspaces.",
|
|
309
309
|
"usage": [
|
|
310
310
|
"runpane workspace list [--json] [--pane-dir <path>]"
|
|
311
311
|
],
|
|
@@ -340,7 +340,7 @@ exports.RUNPANE_CONTRACT = {
|
|
|
340
340
|
},
|
|
341
341
|
{
|
|
342
342
|
"name": "workspace read",
|
|
343
|
-
"summary": "Print a file from
|
|
343
|
+
"summary": "Print a file from a machine on your tailnet; any path form works (C:\\..., /mnt/c/..., /home/..., ~/...).",
|
|
344
344
|
"usage": [
|
|
345
345
|
"runpane workspace [<machine>] read <path> [--json]"
|
|
346
346
|
],
|
|
@@ -351,7 +351,7 @@ exports.RUNPANE_CONTRACT = {
|
|
|
351
351
|
},
|
|
352
352
|
{
|
|
353
353
|
"name": "workspace write",
|
|
354
|
-
"summary": "Write stdin to a file on
|
|
354
|
+
"summary": "Write stdin to a file on a machine on your tailnet, creating parent folders.",
|
|
355
355
|
"usage": [
|
|
356
356
|
"runpane workspace [<machine>] write <path> [--json]"
|
|
357
357
|
],
|
|
@@ -403,7 +403,7 @@ exports.RUNPANE_CONTRACT = {
|
|
|
403
403
|
},
|
|
404
404
|
{
|
|
405
405
|
"name": "panes create",
|
|
406
|
-
"summary": "Create
|
|
406
|
+
"summary": "1 feature = 1 worktree = 1 branch = 1 Pane; reviews, audits, fixes and QA for it are tabs in that Pane. Create a Pane (a new worktree) only when the work's branch has no Pane yet; for review, audit, fix or QA on existing work use `panels create --pane <id>`.",
|
|
407
407
|
"usage": [
|
|
408
408
|
"runpane panes create --repo <selector> --name <name> --agent <codex|claude|cursor> [--source user|agent] [--focus|--no-focus] [--base <ref>] [--branch <name>] [--prompt-file <path|->] [options] [--pane-dir <path>]",
|
|
409
409
|
"runpane panes create --repo <selector> --name <name> --tool-command <command> [--agent <codex|claude|cursor>] [--source user|agent] [--focus|--no-focus] [--base <ref>] [--branch <name>] [--prompt-file <path|->] [options] [--pane-dir <path>]",
|
|
@@ -528,7 +528,7 @@ exports.RUNPANE_CONTRACT = {
|
|
|
528
528
|
},
|
|
529
529
|
{
|
|
530
530
|
"name": "panels create",
|
|
531
|
-
"summary": "
|
|
531
|
+
"summary": "Open a new agent or terminal tab inside an existing Pane, sharing its worktree. The default for review, QA, fixes and any other agent on work that already has a Pane.",
|
|
532
532
|
"usage": [
|
|
533
533
|
"runpane panels create --pane <pane-id> --agent <codex|claude|cursor> [--source user|agent] [--focus|--no-focus] [--wait-ready] --yes [--json] [--pane-dir <path>]",
|
|
534
534
|
"runpane panels create --pane <pane-id> --tool-command <command> [--agent <codex|claude|cursor>] [--title <title>] [--focus|--no-focus] [--wait-ready] --yes [--json] [--pane-dir <path>]"
|
|
@@ -2194,7 +2194,7 @@ exports.RUNPANE_CONTRACT = {
|
|
|
2194
2194
|
" runpane workspace <machine> <runpane command> (any command that talks to Pane, e.g. sessions list --json)",
|
|
2195
2195
|
" runpane workspace enable|disable",
|
|
2196
2196
|
"",
|
|
2197
|
-
"<machine> is a Tailscale name, unique prefix, or IP.
|
|
2197
|
+
"<machine> is a Tailscale name, unique prefix, or IP. Your own machines are reachable, and a teammate's machine when its owner set Who can connect to Everyone on tailnet.",
|
|
2198
2198
|
"Without <machine>, read, write, and exec route a path that cannot exist here (C:\\... on a Mac) to the one joined machine it fits.",
|
|
2199
2199
|
"Commands that only run here (doctor, agent-context, mcp, docs) run there with: runpane workspace <machine> exec -- 'runpane doctor'"
|
|
2200
2200
|
],
|
|
@@ -2257,7 +2257,7 @@ exports.RUNPANE_CONTRACT = {
|
|
|
2257
2257
|
" runpane panes create --repo <selector> --name <name> --tool-command <command> [--agent <codex|claude|cursor>] [--base <ref>] [--branch <name>] [--prompt-file <path|->] [options]",
|
|
2258
2258
|
" runpane panes create --from-json <path|-> [--yes] [--json]",
|
|
2259
2259
|
"",
|
|
2260
|
-
"Creates
|
|
2260
|
+
"Creates a Pane in a saved repository and opens a terminal-backed tool tab. 1 feature = 1 worktree = 1 branch = 1 Pane; reviews, audits, fixes and QA for it are tabs in that Pane. Create one only when the work's branch has no Pane yet; for existing work use `runpane panels create --pane <id>`.",
|
|
2261
2261
|
"",
|
|
2262
2262
|
"A long or multi-line prompt is never typed into the shell: on bash, zsh or sh the agent launches with `\"$(cat '<prompt file>')\"` reading a private copy under `<pane-dir>/prompts/<pane-id>/`; on PowerShell, cmd, fish or WSL the prompt is pasted into the agent's composer once it is ready.",
|
|
2263
2263
|
"",
|
|
@@ -3068,7 +3068,7 @@ exports.RUNPANE_CONTRACT = {
|
|
|
3068
3068
|
"Usage:",
|
|
3069
3069
|
" runpane workspace list [--json] [--pane-dir <path>]",
|
|
3070
3070
|
"",
|
|
3071
|
-
"List
|
|
3071
|
+
"List the machines on your tailnet, each with its owner, and whether each answers workspaces.",
|
|
3072
3072
|
"",
|
|
3073
3073
|
"Options:",
|
|
3074
3074
|
" --json Print machine-readable output."
|
|
@@ -3095,7 +3095,7 @@ exports.RUNPANE_CONTRACT = {
|
|
|
3095
3095
|
"Usage:",
|
|
3096
3096
|
" runpane workspace [<machine>] read <path> [--json]",
|
|
3097
3097
|
"",
|
|
3098
|
-
"Print a file from
|
|
3098
|
+
"Print a file from a machine on your tailnet; any path form works (C:\\..., /mnt/c/..., /home/..., ~/...).",
|
|
3099
3099
|
"",
|
|
3100
3100
|
"Options:",
|
|
3101
3101
|
" <machine> Tailscale machine name, unique prefix, MagicDNS name, or Tailscale IP. Omit it to route a path that cannot exist here to the one joined machine it fits.",
|
|
@@ -3106,7 +3106,7 @@ exports.RUNPANE_CONTRACT = {
|
|
|
3106
3106
|
"Usage:",
|
|
3107
3107
|
" runpane workspace [<machine>] write <path> [--json]",
|
|
3108
3108
|
"",
|
|
3109
|
-
"Write stdin to a file on
|
|
3109
|
+
"Write stdin to a file on a machine on your tailnet, creating parent folders.",
|
|
3110
3110
|
"",
|
|
3111
3111
|
"Options:",
|
|
3112
3112
|
" <machine> Tailscale machine name, unique prefix, MagicDNS name, or Tailscale IP. Omit it to route a path that cannot exist here to the one joined machine it fits.",
|
|
@@ -3468,7 +3468,7 @@ exports.RUNPANE_CONTRACT = {
|
|
|
3468
3468
|
" python -m runpane panes create --repo <selector> --name <name> --tool-command <command> [--agent <codex|claude|cursor>] [--base <ref>] [--branch <name>] [--prompt-file <path|->] [options]",
|
|
3469
3469
|
" runpane panes create --from-json <path|-> [--yes] [--json]",
|
|
3470
3470
|
"",
|
|
3471
|
-
"Creates
|
|
3471
|
+
"Creates a Pane in a saved repository and opens a terminal-backed tool tab. 1 feature = 1 worktree = 1 branch = 1 Pane; reviews, audits, fixes and QA for it are tabs in that Pane. Create one only when the work's branch has no Pane yet; for existing work use `runpane panels create --pane <id>`.",
|
|
3472
3472
|
"",
|
|
3473
3473
|
"A long or multi-line prompt is never typed into the shell: on bash, zsh or sh the agent launches with `\"$(cat '<prompt file>')\"` reading a private copy under `<pane-dir>/prompts/<pane-id>/`; on PowerShell, cmd, fish or WSL the prompt is pasted into the agent's composer once it is ready.",
|
|
3474
3474
|
"",
|
|
@@ -5809,7 +5809,9 @@ exports.RUNPANE_CONTRACT = {
|
|
|
5809
5809
|
"required": [
|
|
5810
5810
|
"name",
|
|
5811
5811
|
"os",
|
|
5812
|
-
"online"
|
|
5812
|
+
"online",
|
|
5813
|
+
"owner",
|
|
5814
|
+
"mine"
|
|
5813
5815
|
],
|
|
5814
5816
|
"additionalProperties": false,
|
|
5815
5817
|
"properties": {
|
|
@@ -5825,6 +5827,14 @@ exports.RUNPANE_CONTRACT = {
|
|
|
5825
5827
|
},
|
|
5826
5828
|
"online": {
|
|
5827
5829
|
"type": "boolean"
|
|
5830
|
+
},
|
|
5831
|
+
"owner": {
|
|
5832
|
+
"type": "string",
|
|
5833
|
+
"description": "Tailscale login of the machine's owner."
|
|
5834
|
+
},
|
|
5835
|
+
"mine": {
|
|
5836
|
+
"type": "boolean",
|
|
5837
|
+
"description": "Signed in to this machine's own Tailscale login."
|
|
5828
5838
|
}
|
|
5829
5839
|
}
|
|
5830
5840
|
}
|
|
@@ -9862,11 +9872,10 @@ exports.RUNPANE_CONTRACT = {
|
|
|
9862
9872
|
"rules": [
|
|
9863
9873
|
"Start with `runpane doctor --json` to understand wrapper, platform, daemon reachability, and the next safe commands before mutating Pane state.",
|
|
9864
9874
|
"In a Pane repository checkout, if `runpane` is not on PATH, build the local wrapper with `pnpm --filter runpane build` and run it with Node 22 or newer, for example `node packages/runpane/dist/cli.js doctor --json`.",
|
|
9865
|
-
"Happy path for any user request to use Pane/RunPane: run `runpane doctor --json`, read `runpane agent-context --json`, resolve or add the saved base repo, create the
|
|
9875
|
+
"Happy path for any user request to use Pane/RunPane: run `runpane doctor --json`, read `runpane agent-context --json`, resolve or add the saved base repo, then route by the rule 1 feature = 1 worktree = 1 branch = 1 Pane; reviews, audits, fixes and QA for it are tabs in that Pane: if the work's branch already has a Pane (find it with `runpane panes list --repo <repo> --json` by matching the PR's head branch against `git -C <worktreePath> branch --show-current`), open a new agent tab in it with `runpane panels create --pane <id> --agent <agent> --initial-input \"<task>\" --source agent --no-focus --wait-ready --yes --json`; only when the branch has no Pane yet, create one with a complete command such as `runpane panes create --repo <repo> --name <name> --agent <agent> --prompt \"<task>\" --source agent --no-focus --wait-ready --yes --json` (the new Pane is pinned by default; add `--no-pinned` for a throwaway Pane, add `--base-branch <ref>` to branch from something other than the repository default, or use `--tool-command <command>` instead of `--agent <agent>`), then validate with `panels wait` or `panels screen`. For long-lived supervision, use `runpane watch --follow` instead of polling wait or screen.",
|
|
9866
9876
|
"Treat Pane as the user's visible cockpit for watching/co-driving work. Do not create Panes or panels for private delegation unless the user asked for visible Pane orchestration or the result should appear in the Pane app.",
|
|
9867
9877
|
"Register the saved base repository once with `repos add`; do not register a pre-created worktree as a separate repo unless the user explicitly asks.",
|
|
9868
|
-
"Use `panes create`
|
|
9869
|
-
"Use `panels create` for reviewer/helper/clean-context tabs that should stay inside an existing Pane and share that Pane's worktree.",
|
|
9878
|
+
"1 feature = 1 worktree = 1 branch = 1 Pane; reviews, audits, fixes and QA for it are tabs in that Pane. Use `panes create` only when the work's branch has no Pane yet (new work, or an existing PR with no Pane), since each new Pane creates a worktree. Every later agent for that branch opens as a new tab in its Pane with `panels create --pane <id>`, never a new Pane. Tabs share one checkout: only the implementer changes the branch or HEAD, one writer at a time; review, audit and QA tabs never run `git checkout`, `reset` or `stash`.",
|
|
9870
9879
|
"For private background decomposition, use your normal subagent/worktree mechanism instead of Pane.",
|
|
9871
9880
|
"Skill routing: Pane's skills live in `<PANE_DIR>/skills/pane-chat/skills/`, and the Pane Chat entry point is `<PANE_DIR>/skills/pane-chat/pane-orchestrator/SKILL.md`; read the skill that matches the request, such as `discussion`, `create-ticket`, `tdd`, `prepare-pr`, or `review`.",
|
|
9872
9881
|
"When an agent creates Panes or panels, pass `--source agent --no-focus --wait-ready --yes --json` unless the user explicitly wants focus moved; `panes create` pins the new Pane into the UI's favorite/pin set by default, so no follow-up `panes pin` call is needed and `--no-pinned` is the opt-out for throwaway Panes.",
|
|
@@ -9952,7 +9961,7 @@ exports.RUNPANE_CONTRACT = {
|
|
|
9952
9961
|
},
|
|
9953
9962
|
{
|
|
9954
9963
|
"name": "panes create",
|
|
9955
|
-
"summary": "Create
|
|
9964
|
+
"summary": "1 feature = 1 worktree = 1 branch = 1 Pane; reviews, audits, fixes and QA for it are tabs in that Pane. Create a Pane (a new worktree) only when the work's branch has no Pane yet; for review, audit, fix or QA on existing work use `panels create --pane <id>`.",
|
|
9956
9965
|
"arguments": [
|
|
9957
9966
|
"--repo <selector>",
|
|
9958
9967
|
"--name <name>",
|
|
@@ -10033,7 +10042,7 @@ exports.RUNPANE_CONTRACT = {
|
|
|
10033
10042
|
},
|
|
10034
10043
|
{
|
|
10035
10044
|
"name": "panels create",
|
|
10036
|
-
"summary": "
|
|
10045
|
+
"summary": "Open reviewer, QA, fix or helper agent tabs inside an existing Pane; they share that Pane's worktree. The default for any later agent on existing work.",
|
|
10037
10046
|
"arguments": [
|
|
10038
10047
|
"--pane <pane-id>",
|
|
10039
10048
|
"--agent <codex|claude|cursor>",
|
|
@@ -10631,8 +10640,8 @@ exports.RUNPANE_CONTRACT = {
|
|
|
10631
10640
|
},
|
|
10632
10641
|
"panes create": {
|
|
10633
10642
|
"name": "panes create",
|
|
10634
|
-
"summary": "Create
|
|
10635
|
-
"details": "Use this when the
|
|
10643
|
+
"summary": "1 feature = 1 worktree = 1 branch = 1 Pane; reviews, audits, fixes and QA for it are tabs in that Pane. Create a Pane (a new worktree) only when the work's branch has no Pane yet; for review, audit, fix or QA on existing work use `panels create --pane <id>`.",
|
|
10644
|
+
"details": "1 feature = 1 worktree = 1 branch = 1 Pane; reviews, audits, fixes and QA for it are tabs in that Pane. Use this only when the work's branch has no Pane yet: new work, or an existing PR with no Pane. Each new Pane creates a worktree that checks out, installs and often builds, so creating several at once can freeze the machine. First find the feature's Pane with `runpane panes list --repo <repo> --json` by matching the PR's head branch (`gh pr view <n> --json headRefName`) against `git -C <worktreePath> branch --show-current`. For review, follow-up review, fixes, QA or any other agent on work that already has a Pane, use `runpane panels create --pane <id>` to open a new agent tab in that Pane instead. Select the saved base repository, choose a built-in agent or custom terminal command, and optionally send initial input after the tool starts. Pane creates and owns a git worktree/branch for each new Pane; do not pre-create a git worktree and register it as a separate repo unless the user explicitly asks. For private background decomposition, use your normal subagent/worktree mechanism instead of Pane.",
|
|
10636
10645
|
"requiresPaneDaemon": true,
|
|
10637
10646
|
"mutates": true,
|
|
10638
10647
|
"arguments": [
|
|
@@ -10796,10 +10805,9 @@ exports.RUNPANE_CONTRACT = {
|
|
|
10796
10805
|
],
|
|
10797
10806
|
"notes": [
|
|
10798
10807
|
"At least one of --agent or --tool-command is required unless --from-json is used.",
|
|
10799
|
-
"`panes create` is for user-visible Pane orchestration, not the agent's default private delegation mechanism.",
|
|
10808
|
+
"`panes create` is for user-visible Pane orchestration, not the agent's default private delegation mechanism. 1 feature = 1 worktree = 1 branch = 1 Pane; reviews, audits, fixes and QA for it are tabs in that Pane: before creating one, find the feature's Pane with `runpane panes list --repo <repo> --json` by matching the PR's head branch (`gh pr view <n> --json headRefName`) against `git -C <worktreePath> branch --show-current`, and add a tab with `panels create --pane <id>` when it exists.",
|
|
10800
10809
|
"Register the saved base repository once. Pane creates and owns the worktree/branch for each new Pane.",
|
|
10801
10810
|
"`panes create --base <ref> --branch <name> --prompt-file <file>` replaces `git worktree add` plus `panes adopt`: Pane creates the worktree on exactly that branch name. `--branch` is checked with `git check-ref-format --branch` and fails if the branch already exists; `--worktree-name` still names the directory.",
|
|
10802
|
-
"Use `panels create` instead when a reviewer/helper should share an existing Pane's worktree.",
|
|
10803
10811
|
"Agent-created Panes should pass `--source agent --no-focus --wait-ready --yes --json` unless the user explicitly wants focus moved. `panes create` pins the new Pane by default, so a follow-up `panes pin` call is unnecessary; pass `--no-pinned` for throwaway shells or bulk imports. `--pinned` is still accepted and is now a no-op. Inside a Session orchestrator (`PANE_ORCHESTRATION_SESSION_ID` set), new Panes are associated with that Session automatically; `--no-associate` opts out. A failed association is reported on the item and never undoes the Pane.",
|
|
10804
10812
|
"The built-in agent templates come from the runpane contract; custom terminal commands can pass agent-specific flags when requested by the user.",
|
|
10805
10813
|
"Use --initial-input-file for multi-line prompts or shell-sensitive initial input. A long or multi-line prompt is never typed into the shell: on bash, zsh or sh the agent launches with `\"$(cat '<prompt file>')\"` reading a private copy under `<pane-dir>/prompts/<pane-id>/`; on PowerShell, cmd, fish or WSL the prompt is pasted into the agent's composer once it is ready.",
|
|
@@ -11651,8 +11659,8 @@ exports.RUNPANE_CONTRACT = {
|
|
|
11651
11659
|
},
|
|
11652
11660
|
"panels create": {
|
|
11653
11661
|
"name": "panels create",
|
|
11654
|
-
"summary": "
|
|
11655
|
-
"details": "
|
|
11662
|
+
"summary": "Open a new agent tab (reviewer, auditor, QA, fix or helper) inside an existing Pane, sharing its worktree. 1 feature = 1 worktree = 1 branch = 1 Pane; reviews, audits, fixes and QA for it are tabs in that Pane: use this, not panes create, for any later agent on existing work.",
|
|
11663
|
+
"details": "1 feature = 1 worktree = 1 branch = 1 Pane; reviews, audits, fixes and QA for it are tabs in that Pane. This is the default way to start any later agent on work that already has a Pane, including reviewers, follow-up reviewers, auditors, fix implementers, QA and clean-context helpers. The new tab is a fresh agent that shares the Pane's worktree and branch; it does not create a new worktree. Review, audit and QA tabs never run `git checkout`, `reset` or `stash`, and a fix tab starts only after the previous writer has stopped. Use `panes create` only when the work's branch has no Pane yet. Agent/orchestrator-created panels should pass --source agent or --no-focus so the user stays in the implementation tab. The daemon initializes the terminal immediately and can wait for CLI readiness.",
|
|
11656
11664
|
"requiresPaneDaemon": true,
|
|
11657
11665
|
"mutates": true,
|
|
11658
11666
|
"arguments": [
|
|
@@ -13570,8 +13578,8 @@ exports.RUNPANE_CONTRACT = {
|
|
|
13570
13578
|
},
|
|
13571
13579
|
"workspace list": {
|
|
13572
13580
|
"name": "workspace list",
|
|
13573
|
-
"summary": "List
|
|
13574
|
-
"details": "Shows this machine's workspace state, then each
|
|
13581
|
+
"summary": "List the machines on your tailnet, each with its owner, and whether each answers workspaces.",
|
|
13582
|
+
"details": "Shows this machine's workspace state, then each other Mac, Windows, and Linux machine on your tailnet with its OS, online state, and shell. Your own machines come first; other people's machines carry their owner's login and answer only when their owner lets you in.",
|
|
13575
13583
|
"requiresPaneDaemon": false,
|
|
13576
13584
|
"mutates": false,
|
|
13577
13585
|
"arguments": [
|
|
@@ -13591,7 +13599,7 @@ exports.RUNPANE_CONTRACT = {
|
|
|
13591
13599
|
"workspace enable": {
|
|
13592
13600
|
"name": "workspace enable",
|
|
13593
13601
|
"summary": "Put this machine's Pane on your tailnet for runpane workspace (the default when Tailscale is signed in).",
|
|
13594
|
-
"details": "Serves this Pane's daemon with tailscale serve on port 8443 in HTTP proxy mode. Only your own Tailscale login is accepted; nothing is opened to the internet.",
|
|
13602
|
+
"details": "Serves this Pane's daemon with tailscale serve on port 8443 in HTTP proxy mode. Only your own Tailscale login is accepted unless you set Who can connect to Everyone on tailnet; nothing is opened to the internet.",
|
|
13595
13603
|
"requiresPaneDaemon": true,
|
|
13596
13604
|
"mutates": true,
|
|
13597
13605
|
"arguments": [
|
|
@@ -13630,7 +13638,7 @@ exports.RUNPANE_CONTRACT = {
|
|
|
13630
13638
|
},
|
|
13631
13639
|
"workspace read": {
|
|
13632
13640
|
"name": "workspace read",
|
|
13633
|
-
"summary": "Print a file from
|
|
13641
|
+
"summary": "Print a file from a machine on your tailnet; any path form works (C:\\..., /mnt/c/..., /home/..., ~/...).",
|
|
13634
13642
|
"details": "Reads the same way on every OS. On Windows, /mnt/c/... reaches C:\\... and WSL paths such as /home/<user>/... are read through \\\\wsl.localhost\\<distro>\\. Directories list their entries.",
|
|
13635
13643
|
"requiresPaneDaemon": false,
|
|
13636
13644
|
"mutates": false,
|
|
@@ -13661,7 +13669,7 @@ exports.RUNPANE_CONTRACT = {
|
|
|
13661
13669
|
},
|
|
13662
13670
|
"workspace write": {
|
|
13663
13671
|
"name": "workspace write",
|
|
13664
|
-
"summary": "Write stdin to a file on
|
|
13672
|
+
"summary": "Write stdin to a file on a machine on your tailnet, creating parent folders.",
|
|
13665
13673
|
"details": "Takes the same path forms as workspace read. Content comes from stdin and replaces the file.",
|
|
13666
13674
|
"requiresPaneDaemon": false,
|
|
13667
13675
|
"mutates": true,
|