mirror of
https://github.com/bendtherules/opencode-multi-model.git
synced 2026-08-18 13:42:21 +00:00
feat(tools): enhance CLI tool descriptions and add remote handling option
- Updated `cleanupTool` description to include detailed usage and arguments. - Added optional `noRemote` flag to `cleanupTool` for local‑only tag deletion. - Adjusted remote handling logic to respect the new `noRemote` flag. - Expanded `closeTool` description with clear argument documentation. - Expanded `openTool` description with detailed argument documentation.
This commit is contained in:
+12
-8
@@ -8,8 +8,11 @@ import { cleanupMultiModel } from "../core/cleanup";
|
||||
* Used to clean up recovery tags created by the close command.
|
||||
*/
|
||||
export const cleanupTool = tool({
|
||||
description:
|
||||
"Delete all archive tags from local and optionally remote repository",
|
||||
description: `Delete all archive tags from the local repository and, optionally, from a remote.
|
||||
|
||||
Arguments:
|
||||
-\`remote\` (string, optional): Specify a remote name to which deletions should be pushed. If omitted, the first available remote is used.
|
||||
- \`noRemote\` (boolean, optional): When true, only delete local tags and do not push deletions to any remote.`,
|
||||
args: {
|
||||
remote: tool.schema
|
||||
.union([
|
||||
@@ -17,21 +20,22 @@ export const cleanupTool = tool({
|
||||
.string()
|
||||
.describe(
|
||||
"Remote name to push deletions to. Error if doesn't exist.",
|
||||
),
|
||||
tool.schema
|
||||
.literal(false)
|
||||
.describe("Only delete local tags, don't push to remote."),
|
||||
)
|
||||
])
|
||||
.optional()
|
||||
.describe(
|
||||
"Remote handling: string=specific remote, false=local-only, undefined=first available remote",
|
||||
"Remote handling: string=specific remote, undefined=first available remote",
|
||||
),
|
||||
noRemote: tool.schema
|
||||
.literal(true)
|
||||
.describe("Only delete local tags, don't push to remote.")
|
||||
.optional(),
|
||||
},
|
||||
async execute(args, _context) {
|
||||
// In plugin mode, we skip confirmation (force=true)
|
||||
const result = await cleanupMultiModel({
|
||||
force: true,
|
||||
remote: args.remote,
|
||||
remote: args.noRemote ? false : args.remote,
|
||||
});
|
||||
|
||||
if (!result.success) {
|
||||
|
||||
+6
-2
@@ -8,8 +8,12 @@ import { closeMultiModel } from "../core/close";
|
||||
* creates archive tags, and deletes associated branches.
|
||||
*/
|
||||
export const closeTool = tool({
|
||||
description:
|
||||
"Close a multi-model tmux session and optionally cleanup worktrees and branches",
|
||||
description: `Close a multi-model tmux session and optionally clean up worktrees and branches.
|
||||
|
||||
Arguments:
|
||||
- \`sessionName\` (string, required): tmux session name to close.
|
||||
- \`cleanupWorktrees\` (boolean, optional, default: true): Whether to remove worktrees and delete branches.
|
||||
- \`createArchiveTags\` (boolean, optional, default: true): Whether to create archive tags before deleting branches.`,
|
||||
args: {
|
||||
sessionName: tool.schema
|
||||
.string()
|
||||
|
||||
+5
-1
@@ -9,7 +9,11 @@ import { getBinaryName } from "../core/utils";
|
||||
* Returns instructions for attaching to and cleaning up the session.
|
||||
*/
|
||||
export const openTool = tool({
|
||||
description: "Launch multiple OpenCode models in tmux",
|
||||
description: `Launch multiple OpenCode models in tmux.
|
||||
|
||||
Arguments:
|
||||
- \`sessionName\` (string, required): tmux session name to create.
|
||||
- \`models\` (array of strings, required): one or more OpenCode model IDs to launch.`,
|
||||
args: {
|
||||
sessionName: tool.schema
|
||||
.string()
|
||||
|
||||
Reference in New Issue
Block a user