@genspark/cli 1.5.0 → 1.5.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.
@@ -0,0 +1,17 @@
1
+ /**
2
+ * --args-file support for dynamic tool commands (#46011).
3
+ *
4
+ * Agents invoking gsk through a shell routinely pass rich text inside
5
+ * double quotes, where `$`-prefixed tokens get expanded as (usually empty)
6
+ * shell variables BEFORE gsk sees argv — "$150k" silently became "50k" in
7
+ * three consecutive prod create_task calls. A file (or stdin) path carries
8
+ * the payload without ever crossing shell quoting, so no character class
9
+ * needs escaping.
10
+ */
11
+ /**
12
+ * Read and validate a JSON object of tool arguments from `path`
13
+ * ("-" = stdin). Throws with an actionable message on unreadable input,
14
+ * malformed JSON, or a non-object payload.
15
+ */
16
+ export declare function readArgsFile(path: string): Record<string, unknown>;
17
+ //# sourceMappingURL=argsFile.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argsFile.d.ts","sourceRoot":"","sources":["../src/argsFile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0BlE"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * --args-file support for dynamic tool commands (#46011).
3
+ *
4
+ * Agents invoking gsk through a shell routinely pass rich text inside
5
+ * double quotes, where `$`-prefixed tokens get expanded as (usually empty)
6
+ * shell variables BEFORE gsk sees argv — "$150k" silently became "50k" in
7
+ * three consecutive prod create_task calls. A file (or stdin) path carries
8
+ * the payload without ever crossing shell quoting, so no character class
9
+ * needs escaping.
10
+ */
11
+ import fs from 'fs';
12
+ /**
13
+ * Read and validate a JSON object of tool arguments from `path`
14
+ * ("-" = stdin). Throws with an actionable message on unreadable input,
15
+ * malformed JSON, or a non-object payload.
16
+ */
17
+ export function readArgsFile(path) {
18
+ let raw;
19
+ try {
20
+ raw = path === '-' ? fs.readFileSync(0, 'utf8') : fs.readFileSync(path, 'utf8');
21
+ }
22
+ catch (err) {
23
+ throw new Error(`--args-file: cannot read ${path === '-' ? 'stdin' : path}: ${err.message}`);
24
+ }
25
+ let parsed;
26
+ try {
27
+ parsed = JSON.parse(raw);
28
+ }
29
+ catch (err) {
30
+ throw new Error(`--args-file: ${path} is not valid JSON: ${err.message}`);
31
+ }
32
+ if (typeof parsed !== 'object' || parsed === null || Array.isArray(parsed)) {
33
+ throw new Error(`--args-file: ${path} must contain a JSON object mapping parameter ` +
34
+ `names to values, got ${Array.isArray(parsed) ? 'an array' : typeof parsed}`);
35
+ }
36
+ return parsed;
37
+ }
38
+ //# sourceMappingURL=argsFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"argsFile.js","sourceRoot":"","sources":["../src/argsFile.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAA;AAEnB;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,IAAI,GAAW,CAAA;IACf,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;IACjF,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,4BAA4B,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,KACtD,GAAa,CAAC,OACjB,EAAE,CACH,CAAA;IACH,CAAC;IACD,IAAI,MAAe,CAAA;IACnB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC1B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,gBAAgB,IAAI,uBAAwB,GAAa,CAAC,OAAO,EAAE,CACpE,CAAA;IACH,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CACb,gBAAgB,IAAI,gDAAgD;YAClE,wBAAwB,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,MAAM,EAAE,CAC/E,CAAA;IACH,CAAC;IACD,OAAO,MAAiC,CAAA;AAC1C,CAAC"}
package/dist/client.d.ts CHANGED
@@ -7,6 +7,16 @@ import type { GlobalOptions, ApiResponse, ToolListResponse, UserInfo, FileUpload
7
7
  * Used for device-flow auth endpoints that don't require an API key.
8
8
  */
9
9
  export declare function unauthenticatedRequest<T>(baseUrl: string, endpoint: string, method?: 'GET' | 'POST', body?: unknown): Promise<T>;
10
+ /**
11
+ * Error carrying the HTTP status behind a failed API call, so callers can
12
+ * branch on auth failures (401/403) without parsing message strings.
13
+ */
14
+ export declare class ApiHttpError extends Error {
15
+ readonly httpStatus?: number;
16
+ constructor(message: string, httpStatus?: number);
17
+ }
18
+ /** True when the error is an HTTP-level auth rejection (401/403). */
19
+ export declare function isAuthError(err: unknown): boolean;
10
20
  export declare class ApiClient {
11
21
  private baseUrl;
12
22
  private apiKey;
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/client.js CHANGED
@@ -27,6 +27,23 @@ export async function unauthenticatedRequest(baseUrl, endpoint, method = 'GET',
27
27
  }
28
28
  const _require = createRequire(import.meta.url);
29
29
  const { version: CLI_VERSION } = _require('../package.json');
30
+ /**
31
+ * Error carrying the HTTP status behind a failed API call, so callers can
32
+ * branch on auth failures (401/403) without parsing message strings.
33
+ */
34
+ export class ApiHttpError extends Error {
35
+ httpStatus;
36
+ constructor(message, httpStatus) {
37
+ super(message);
38
+ this.name = 'ApiHttpError';
39
+ this.httpStatus = httpStatus;
40
+ }
41
+ }
42
+ /** True when the error is an HTTP-level auth rejection (401/403). */
43
+ export function isAuthError(err) {
44
+ return (err instanceof ApiHttpError &&
45
+ (err.httpStatus === 401 || err.httpStatus === 403));
46
+ }
30
47
  export class ApiClient {
31
48
  baseUrl;
32
49
  apiKey;
@@ -112,6 +129,7 @@ export class ApiClient {
112
129
  status: 'error',
113
130
  message: `HTTP ${response.status}: ${response.statusText}`,
114
131
  data: null,
132
+ http_status: response.status,
115
133
  };
116
134
  }
117
135
  // Handle streaming NDJSON response (Protocol v1)
@@ -247,7 +265,7 @@ export class ApiClient {
247
265
  async listTools() {
248
266
  const response = await this.request('/tools', 'GET');
249
267
  if (response.status === 'error') {
250
- throw new Error(response.message);
268
+ throw new ApiHttpError(response.message, response.http_status);
251
269
  }
252
270
  // The /tools endpoint returns the data directly, not wrapped in ApiResponse
253
271
  return response;
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -18,5 +18,12 @@
18
18
  * Tool name: "web_search" -> Command: `gsk web_search`, Alias: `gsk search`
19
19
  * Tool name: "crawler" -> Command: `gsk crawler`, Alias: `gsk crawl`
20
20
  */
21
+ type DesignAttachmentRole = 'visual_reference' | 'context' | 'content';
22
+ interface DesignAttachmentArg {
23
+ path: string;
24
+ role: DesignAttachmentRole;
25
+ }
26
+ /** Preserve interleaved --image/--file order; Commander groups options by key. */
27
+ export declare function collectDesignAttachmentArgs(argv: string[]): DesignAttachmentArg[];
21
28
  export {};
22
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;GAkBG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;;;GAkBG;AAsPH,KAAK,oBAAoB,GAAG,kBAAkB,GAAG,SAAS,GAAG,SAAS,CAAA;AAEtE,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,oBAAoB,CAAA;CAC3B;AAED,kFAAkF;AAClF,wBAAgB,2BAA2B,CACzC,IAAI,EAAE,MAAM,EAAE,GACb,mBAAmB,EAAE,CAqBvB"}
package/dist/index.js CHANGED
@@ -26,9 +26,9 @@ import * as os from 'os';
26
26
  import * as pathModule from 'path';
27
27
  import { createRequire } from 'module';
28
28
  import { spawn } from 'child_process';
29
- import { ApiClient, unauthenticatedRequest } from './client.js';
29
+ import { ApiClient, isAuthError, unauthenticatedRequest, } from './client.js';
30
30
  import { classifyFileArg, awaitLocalFileReady, decideAfterWait, localFileNotReadyError, } from './localFiles.js';
31
- import { setDebugEnabled, setOutputFormat, debug, info, error as logError, output, } from './logger.js';
31
+ import { setDebugEnabled, setOutputFormat, debug, info, warn, error as logError, output, } from './logger.js';
32
32
  import { loadConfigFile, getConfigPath, loadToolsCache, normalizeBaseUrl, saveToolsCache, setConfigPathOverride, updateConfigFile, } from './config.js';
33
33
  import { checkForUpdates } from './updater.js';
34
34
  import { getSandboxRuntime } from './runtime.js';
@@ -157,6 +157,7 @@ const CONTENT_TYPE_MAP = {
157
157
  '.png': 'image/png',
158
158
  '.gif': 'image/gif',
159
159
  '.webp': 'image/webp',
160
+ '.svg': 'image/svg+xml',
160
161
  '.pdf': 'application/pdf',
161
162
  '.txt': 'text/plain',
162
163
  '.json': 'application/json',
@@ -164,6 +165,20 @@ const CONTENT_TYPE_MAP = {
164
165
  '.css': 'text/css',
165
166
  '.js': 'application/javascript',
166
167
  '.ts': 'application/typescript',
168
+ '.jsx': 'text/javascript',
169
+ '.tsx': 'text/typescript',
170
+ '.vue': 'text/html',
171
+ '.py': 'text/x-python',
172
+ '.java': 'text/x-java-source',
173
+ '.go': 'text/x-go',
174
+ '.rs': 'text/x-rust',
175
+ '.c': 'text/x-c',
176
+ '.cc': 'text/x-c++',
177
+ '.cpp': 'text/x-c++',
178
+ '.h': 'text/x-c',
179
+ '.hpp': 'text/x-c++',
180
+ '.yaml': 'application/x-yaml',
181
+ '.yml': 'application/x-yaml',
167
182
  '.md': 'text/markdown',
168
183
  '.xml': 'application/xml',
169
184
  '.csv': 'text/csv',
@@ -173,6 +188,46 @@ const CONTENT_TYPE_MAP = {
173
188
  '.wav': 'audio/wav',
174
189
  '.webm': 'video/webm',
175
190
  };
191
+ /** Preserve interleaved --image/--file order; Commander groups options by key. */
192
+ export function collectDesignAttachmentArgs(argv) {
193
+ const result = [];
194
+ for (let index = 0; index < argv.length; index += 1) {
195
+ const token = argv[index];
196
+ const equalsMatch = token.match(/^--(image|file)=(.+)$/);
197
+ if (equalsMatch) {
198
+ result.push({
199
+ path: equalsMatch[2],
200
+ role: equalsMatch[1] === 'image' ? 'visual_reference' : 'context',
201
+ });
202
+ continue;
203
+ }
204
+ if (token !== '--image' && token !== '--file')
205
+ continue;
206
+ const role = token === '--image' ? 'visual_reference' : 'context';
207
+ while (index + 1 < argv.length && !argv[index + 1].startsWith('-')) {
208
+ result.push({ path: argv[index + 1], role });
209
+ index += 1;
210
+ }
211
+ }
212
+ return result;
213
+ }
214
+ async function uploadDesignAttachments(values, client) {
215
+ const attachments = [];
216
+ // Upload the complete batch before executeTool: any failure aborts project
217
+ // creation/continuation rather than leaving a half-bound Design project.
218
+ for (const value of values) {
219
+ const localPath = expandHome(value.path);
220
+ if (!isLocalFilePath(localPath)) {
221
+ throw new Error(`File not found: ${value.path}`);
222
+ }
223
+ const name = pathModule.basename(localPath);
224
+ const ext = pathModule.extname(localPath).toLowerCase();
225
+ const mimeType = CONTENT_TYPE_MAP[ext] || 'application/octet-stream';
226
+ const url = await uploadLocalFile(localPath, client);
227
+ attachments.push({ url, name, mime_type: mimeType, role: value.role });
228
+ }
229
+ return attachments;
230
+ }
176
231
  /**
177
232
  * Stream a local file to a URL using Node.js http/https.request +
178
233
  * fs.createReadStream so the file is never fully buffered in memory.
@@ -586,6 +641,12 @@ function registerToolCommand(parentProgram, tool, clientFactory, vdProjectIdDefa
586
641
  }
587
642
  const props = tool.parameters?.properties || {};
588
643
  const required = tool.parameters?.required || [];
644
+ // When --args-file is on the command line, required params may live in
645
+ // the file, which Commander cannot see — its parse-time required checks
646
+ // would reject the invocation before the file is ever read. Register
647
+ // everything optional in that case; the action handler re-validates the
648
+ // required set AFTER the file merge (#46011).
649
+ const argsFileInvoked = process.argv.some(a => a === '--args-file' || a.startsWith('--args-file='));
589
650
  // If primary_arg is set, make it a positional argument
590
651
  if (tool.cli.primary_arg && props[tool.cli.primary_arg]) {
591
652
  const param = props[tool.cli.primary_arg];
@@ -599,7 +660,9 @@ function registerToolCommand(parentProgram, tool, clientFactory, vdProjectIdDefa
599
660
  // usage say e.g. "missing required argument 'deck'" instead of 'value'
600
661
  // (#43556: the anonymous form sent agents guessing).
601
662
  const argName = tool.cli.primary_arg;
602
- const bracket = isRequired && !isServiceAction ? `<${argName}>` : `[${argName}]`;
663
+ const bracket = isRequired && !isServiceAction && !argsFileInvoked
664
+ ? `<${argName}>`
665
+ : `[${argName}]`;
603
666
  cmd.argument(bracket, param.description || argName);
604
667
  }
605
668
  // Add remaining params as --options
@@ -614,7 +677,8 @@ function registerToolCommand(parentProgram, tool, clientFactory, vdProjectIdDefa
614
677
  // requiredOption would block every invocation before the action handler
615
678
  // (and its collector) ever runs.
616
679
  const isRequired = tool.name === 'create_task' ||
617
- (tool.name === 'skills_save' && name === 'files')
680
+ (tool.name === 'skills_save' && name === 'files') ||
681
+ argsFileInvoked
618
682
  ? false
619
683
  : required.includes(name);
620
684
  const paramType = Array.isArray(param.type) ? param.type[0] : param.type;
@@ -677,6 +741,14 @@ function registerToolCommand(parentProgram, tool, clientFactory, vdProjectIdDefa
677
741
  cmd.option('--attach <values...>', 'Attach local files or URLs (alias for --attachments; repeatable)');
678
742
  cmd.option('--attachment <values...>', 'Attach local files or URLs (alias for --attachments; repeatable)');
679
743
  }
744
+ // Quoting-hazard-free input path (#46011): a shell-invoked agent passing
745
+ // rich text in double quotes gets `$`-tokens expanded before gsk sees
746
+ // argv ("$150k" → "50k"). A JSON file / stdin never crosses shell quoting.
747
+ cmd.option('--args-file <path>', 'Read arguments from a JSON object file ("-" = stdin). File keys ' +
748
+ 'override flag values. Use for rich text (strings containing $, ' +
749
+ 'quotes, newlines) instead of double-quoted flags. Server ' +
750
+ 'parameters only — CLI-only options (e.g. --local_file) must ' +
751
+ 'still be passed as flags.');
680
752
  // Add -o/--output-file option for tools that produce downloadable files
681
753
  const outputFileKeys = tool.cli.output_file_keys || [];
682
754
  if (outputFileKeys.length > 0) {
@@ -687,7 +759,8 @@ function registerToolCommand(parentProgram, tool, clientFactory, vdProjectIdDefa
687
759
  cmd.option('--acp', 'Start as ACP (Agent Client Protocol) stdio agent instead of one-shot execution', false);
688
760
  cmd.option('-o, --output-file <path>', 'Export the artifact (pptx/docx/xlsx) to a local file after task completes');
689
761
  cmd.option('--session-id <id>', 'ACP session ID (used with get-project)');
690
- cmd.option('--file <values...>', 'Import local CSV/Excel files into the task (auto-uploaded to blob storage)');
762
+ cmd.option('--file <values...>', 'Import local files (Design: structured context; other tasks: CSV/Excel file_urls)');
763
+ cmd.option('--image <values...>', 'Design only: upload ordered local visual references');
691
764
  cmd.addHelpText('after', '\nVirtual subcommands:\n' +
692
765
  ' get-project Get Genspark project info for an ACP session (local file lookup, no API call)\n' +
693
766
  ' --session-id <id> ACP session ID (required)\n' +
@@ -695,6 +768,10 @@ function registerToolCommand(parentProgram, tool, clientFactory, vdProjectIdDefa
695
768
  'Example:\n' +
696
769
  ' gsk task get-project --session-id <acp_session_id>\n');
697
770
  }
771
+ if (tool.name === 'task_continue') {
772
+ cmd.option('--image <values...>', 'Design only: append ordered local visual references');
773
+ cmd.option('--file <values...>', 'Design only: append ordered local context files');
774
+ }
698
775
  // For the aidrive tool, add client-side options used with --local_file upload
699
776
  if (tool.name === 'aidrive') {
700
777
  cmd.option('--local_file <path>', 'Local file path to upload to AI Drive (supports files >5 MB; alternative to --file_content)');
@@ -744,7 +821,10 @@ function registerToolCommand(parentProgram, tool, clientFactory, vdProjectIdDefa
744
821
  : undefined;
745
822
  if (tool.cli.primary_arg === 'action' &&
746
823
  Array.isArray(actionEnum) &&
747
- primaryArgValue === undefined) {
824
+ primaryArgValue === undefined &&
825
+ // The action may arrive via --args-file (read later in the
826
+ // handler) — don't short-circuit to the action listing then.
827
+ !opts.argsFile) {
748
828
  logError(tool.description);
749
829
  logError(`Available actions: ${actionEnum.join(', ')}`);
750
830
  logError(`Usage: gsk ${cmd.name()} <action> [options] ` +
@@ -790,8 +870,10 @@ function registerToolCommand(parentProgram, tool, clientFactory, vdProjectIdDefa
790
870
  await startAcpBridge(taskType, clientFactory().getOptions());
791
871
  return;
792
872
  }
793
- // For create_task (non-ACP): validate required params manually
794
- if (tool.name === 'create_task') {
873
+ // For create_task (non-ACP): validate required params manually.
874
+ // Skipped when --args-file is present — required params may live in
875
+ // the file, and the post-merge revalidation below enforces them.
876
+ if (tool.name === 'create_task' && !opts.argsFile) {
795
877
  for (const reqParam of required) {
796
878
  if (reqParam === tool.cli.primary_arg)
797
879
  continue;
@@ -827,6 +909,19 @@ function registerToolCommand(parentProgram, tool, clientFactory, vdProjectIdDefa
827
909
  delete opts.outputFile;
828
910
  delete opts.acp; // ACP flag is client-side only
829
911
  delete opts.sessionId; // get-project flag is client-side only
912
+ const argsFilePath = opts.argsFile;
913
+ delete opts.argsFile; // client-side only; merged below
914
+ // Required checks were relaxed because --args-file appeared in argv;
915
+ // an explicitly EMPTY value (`--args-file=` / `--args-file ""`,
916
+ // parsed as '') would skip the merge AND the revalidation below — a
917
+ // validation bypass, not a degenerate no-op. Refuse it. undefined is
918
+ // deliberately allowed: argv detection can false-positive on a
919
+ // literal "--args-file" VALUE of another option, and the server-side
920
+ // required validation still covers that arm.
921
+ if (argsFilePath !== undefined && !argsFilePath) {
922
+ logError('--args-file requires a non-empty path (or "-" for stdin)');
923
+ process.exit(1);
924
+ }
830
925
  const args = { ...opts };
831
926
  // Set primary arg
832
927
  if (tool.cli.primary_arg && primaryArgValue !== undefined) {
@@ -857,6 +952,54 @@ function registerToolCommand(parentProgram, tool, clientFactory, vdProjectIdDefa
857
952
  delete args.attach;
858
953
  delete args.attachment;
859
954
  }
955
+ // Merge --args-file after every flag-derived write (positional,
956
+ // attachment aliases) so file keys genuinely win: the file is the
957
+ // deliberate rich payload, flags are the convenience layer (#46011).
958
+ // It sits before the numeric coercion below so file-provided
959
+ // numeric strings get the same schema-driven coercion flags do.
960
+ if (argsFilePath) {
961
+ let fileArgs;
962
+ try {
963
+ const { readArgsFile } = await import('./argsFile.js');
964
+ fileArgs = readArgsFile(argsFilePath);
965
+ }
966
+ catch (err) {
967
+ logError(err.message);
968
+ process.exit(1);
969
+ }
970
+ // The file carries SERVER parameters only. CLI-only options
971
+ // (--local_file, --file, --out, ...) are processed from flags by
972
+ // client-side blocks below that never see the file — honoring
973
+ // them here would silently do nothing, so warn and drop instead.
974
+ for (const key of Object.keys(fileArgs)) {
975
+ if (!(key in props)) {
976
+ warn(`--args-file: "${key}" is not a server parameter of ` +
977
+ `${tool.name} and was ignored — CLI-only options must be ` +
978
+ 'passed as flags.');
979
+ delete fileArgs[key];
980
+ }
981
+ }
982
+ Object.assign(args, fileArgs);
983
+ // Required params were registered optional because the file may
984
+ // carry them (Commander validates before the file is readable) —
985
+ // re-validate the merged set now. CLI-populated params are
986
+ // exempt: skills_save's `files` is schema-required but filled by
987
+ // the directory collector further down, which deliberately owns
988
+ // the value (file-wins does not apply to collector-owned params).
989
+ for (const reqParam of required) {
990
+ if (tool.name === 'skills_save' && reqParam === 'files')
991
+ continue;
992
+ if (args[reqParam] === undefined || args[reqParam] === null) {
993
+ // The primary arg is a positional — there is no --<name>
994
+ // flag for it, so the recovery hint must not invent one.
995
+ const hint = reqParam === tool.cli.primary_arg
996
+ ? `pass it as the positional argument or include it in --args-file`
997
+ : `pass --${reqParam} or include it in --args-file`;
998
+ logError(`Missing required parameter: ${reqParam} (${hint})`);
999
+ process.exit(1);
1000
+ }
1001
+ }
1002
+ }
860
1003
  // Coerce numeric strings to numbers based on schema
861
1004
  for (const [name, param] of Object.entries(props)) {
862
1005
  if (args[name] !== undefined) {
@@ -941,6 +1084,10 @@ function registerToolCommand(parentProgram, tool, clientFactory, vdProjectIdDefa
941
1084
  info(`Warning: ${dir} carries provenance for ${collected.sidecarOwner} — ` +
942
1085
  `saving will fork this skill into your own catalog.`);
943
1086
  }
1087
+ // Collector-owned: `files` must be {path, content} read from the
1088
+ // local directory, so this assignment intentionally overrides any
1089
+ // --args-file value (the file-wins rule covers flag-shaped params
1090
+ // only, not CLI-populated ones).
944
1091
  args.files = collected.files;
945
1092
  }
946
1093
  // aidrive upload ergonomics: `gsk aidrive upload <path>` is the natural
@@ -954,10 +1101,21 @@ function registerToolCommand(parentProgram, tool, clientFactory, vdProjectIdDefa
954
1101
  // no usable source, fail with an actionable message that names
955
1102
  // --local_file rather than the opaque backend error.
956
1103
  if (tool.name === 'aidrive' &&
957
- primaryArgValue === 'upload' &&
1104
+ // args.action, not the positional: the action may arrive via
1105
+ // --args-file (sb-git's clone-url gate uses the same pattern).
1106
+ args.action === 'upload' &&
958
1107
  !opts.local_file &&
959
- !opts.file_content) {
960
- const pathOperand = pickExistingFileOperand(cmd.args.slice(1));
1108
+ // args, not opts: file_content is a server param and may have
1109
+ // arrived via --args-file (merged into args above).
1110
+ !args.file_content) {
1111
+ // Skip the first operand only when it really is the action: with
1112
+ // the action arriving via --args-file, Commander binds a bare
1113
+ // path to the [action] positional slot, so cmd.args[0] is itself
1114
+ // a path candidate.
1115
+ const operandCandidates = primaryArgValue !== undefined && primaryArgValue === args.action
1116
+ ? cmd.args.slice(1)
1117
+ : cmd.args;
1118
+ const pathOperand = pickExistingFileOperand(operandCandidates);
961
1119
  if (pathOperand) {
962
1120
  opts.local_file = pathOperand;
963
1121
  }
@@ -973,7 +1131,7 @@ function registerToolCommand(parentProgram, tool, clientFactory, vdProjectIdDefa
973
1131
  // Stream the file directly to AI Drive via the dedicated tool_cli
974
1132
  // endpoint (POST /api/tool_cli/aidrive/upload) — no blob middleman.
975
1133
  if (tool.name === 'aidrive' &&
976
- primaryArgValue === 'upload' &&
1134
+ args.action === 'upload' &&
977
1135
  opts.local_file) {
978
1136
  const localFilePath = opts.local_file;
979
1137
  const override = !!opts.override;
@@ -993,8 +1151,23 @@ function registerToolCommand(parentProgram, tool, clientFactory, vdProjectIdDefa
993
1151
  output(result);
994
1152
  return;
995
1153
  }
996
- // create_task --file: upload local files and pass as file_urls
997
- if (tool.name === 'create_task' && opts.file) {
1154
+ const designAttachmentArgs = collectDesignAttachmentArgs(process.argv);
1155
+ const isDesignAttachmentCommand = designAttachmentArgs.length > 0 &&
1156
+ ((tool.name === 'create_task' && args.task_type === 'design') ||
1157
+ tool.name === 'task_continue');
1158
+ if (isDesignAttachmentCommand) {
1159
+ const uploaded = await uploadDesignAttachments(designAttachmentArgs, client);
1160
+ const existing = Array.isArray(args.attachments)
1161
+ ? args.attachments
1162
+ : [];
1163
+ args.attachments = [...existing, ...uploaded];
1164
+ delete args.image;
1165
+ delete args.file;
1166
+ }
1167
+ // Non-Design create_task --file keeps its CSV/Excel file_urls contract.
1168
+ if (tool.name === 'create_task' &&
1169
+ args.task_type !== 'design' &&
1170
+ opts.file) {
998
1171
  const fileValues = Array.isArray(opts.file)
999
1172
  ? opts.file
1000
1173
  : [opts.file];
@@ -1179,7 +1352,10 @@ function registerToolCommand(parentProgram, tool, clientFactory, vdProjectIdDefa
1179
1352
  typeof result.data === 'object') {
1180
1353
  const data = result.data;
1181
1354
  const projectId = data.project_id;
1182
- const taskType = (primaryArgValue || args.type);
1355
+ // args.type is the value actually sent to the API: the positional
1356
+ // is copied into args and --args-file may override it (file wins),
1357
+ // so the export must key on the merged view, never the positional.
1358
+ const taskType = args.type;
1183
1359
  if (projectId && taskType) {
1184
1360
  info(`Exporting ${taskType} artifact...`);
1185
1361
  try {
@@ -2046,7 +2222,20 @@ async function main() {
2046
2222
  debug(`Fetched and cached ${tools.length} tools from server`);
2047
2223
  }
2048
2224
  catch (err) {
2049
- debug(`Failed to fetch tools: ${err.message}`);
2225
+ if (isAuthError(err)) {
2226
+ // A definitive auth verdict must be loud: swallowing it registers
2227
+ // zero dynamic commands and the user sees "unknown command" with
2228
+ // no hint that the token is the cause (#45982). Warn-and-continue
2229
+ // (not fail-fast) so built-in commands — `gsk login` above all —
2230
+ // still work with an expired token.
2231
+ warn(`API token rejected (HTTP ${err.httpStatus}) — ` +
2232
+ 'invalid or expired. Server-provided commands were NOT loaded; ' +
2233
+ 'if the command you need is missing, run `gsk login` to ' +
2234
+ 're-authenticate.');
2235
+ }
2236
+ else {
2237
+ debug(`Failed to fetch tools: ${err.message}`);
2238
+ }
2050
2239
  // Continue without dynamic commands - built-in commands still work
2051
2240
  }
2052
2241
  }