From f53f3712aec31c84cefdbabd250955f71260a37a Mon Sep 17 00:00:00 2001 From: notgitika Date: Thu, 28 May 2026 16:40:11 -0400 Subject: [PATCH] fix: restore --skills invoke override for harness (preview regression) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The --skills flag was present on the preview branch but was accidentally dropped during the preview→main feature flag consolidation. The type field existed in InvokeOptions but was never wired to a CLI flag or passed through buildHarnessBaseOpts. Restores: - --skills CLI flag (preview-gated) - skills handling in buildHarnessBaseOpts to send to InvokeHarness API --- src/cli/commands/invoke/action.ts | 1 + src/cli/commands/invoke/command.tsx | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/cli/commands/invoke/action.ts b/src/cli/commands/invoke/action.ts index 1eca4d9f3..5d445a7e1 100644 --- a/src/cli/commands/invoke/action.ts +++ b/src/cli/commands/invoke/action.ts @@ -605,6 +605,7 @@ export function buildHarnessBaseOpts( if (options.maxIterations != null) baseOpts.maxIterations = options.maxIterations; if (options.maxTokens != null) baseOpts.maxTokens = options.maxTokens; if (options.harnessTimeout != null) baseOpts.timeoutSeconds = options.harnessTimeout; + if (options.skills) baseOpts.skills = options.skills.split(',').map(p => ({ path: p.trim() })); if (options.systemPrompt) baseOpts.systemPrompt = [{ text: options.systemPrompt }]; if (options.allowedTools) baseOpts.allowedTools = options.allowedTools.split(',').map(t => t.trim()); if (options.actorId) baseOpts.actorId = options.actorId; diff --git a/src/cli/commands/invoke/command.tsx b/src/cli/commands/invoke/command.tsx index 0a847eab2..0ef293d9a 100644 --- a/src/cli/commands/invoke/command.tsx +++ b/src/cli/commands/invoke/command.tsx @@ -174,6 +174,7 @@ export const registerInvoke = (program: Command) => { 'Override timeout seconds (harness only) [non-interactive] [preview]', parseInt ) + .option('--skills ', 'Skills to use, comma-separated paths (harness only) [non-interactive] [preview]') .option('--system-prompt ', 'Override system prompt (harness only) [non-interactive] [preview]') .option( '--allowed-tools ', @@ -211,6 +212,7 @@ export const registerInvoke = (program: Command) => { maxIterations?: number; maxTokens?: number; harnessTimeout?: number; + skills?: string; systemPrompt?: string; allowedTools?: string; actorId?: string; @@ -306,6 +308,7 @@ export const registerInvoke = (program: Command) => { maxIterations: cliOptions.maxIterations, maxTokens: cliOptions.maxTokens, harnessTimeout: cliOptions.harnessTimeout, + skills: cliOptions.skills, systemPrompt: cliOptions.systemPrompt, allowedTools: cliOptions.allowedTools, actorId: cliOptions.actorId,