@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.
- package/dist/argsFile.d.ts +17 -0
- package/dist/argsFile.d.ts.map +1 -0
- package/dist/argsFile.js +38 -0
- package/dist/argsFile.js.map +1 -0
- package/dist/client.d.ts +10 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +19 -1
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +205 -16
- package/dist/index.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/docs/skills.md +4 -3
- package/package.json +1 -1
- package/skills/gsk-create-task/SKILL.md +34 -1
- package/skills/gsk-google-slides/SKILL.md +47 -0
- package/skills/gsk-microsoft-teams/SKILL.md +12 -9
- package/skills/gsk-video-generation/SKILL.md +4 -4
- package/skills/gsk-youtube/SKILL.md +5 -4
|
@@ -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"}
|
package/dist/argsFile.js
ADDED
|
@@ -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;
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,QAAQ,EACR,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,YAAY,CAAA;AAEnB;;;GAGG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,KAAK,GAAG,MAAc,EAC9B,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,CAAC,CAAC,CAoBZ;AAKD,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAAQ;IACvB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAC,CAAQ;IAC1B,OAAO,CAAC,SAAS,CAAC,CAAQ;IAE1B,OAAO,CAAC,OAAO,CAAe;gBAElB,OAAO,EAAE,aAAa;IASlC,UAAU,IAAI,aAAa;IAI3B;;;;;OAKG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAIrC;;;;OAIG;IACH,OAAO,CAAC,WAAW;YAsBL,OAAO;
|
|
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
|
|
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;
|
package/dist/client.js.map
CHANGED
|
@@ -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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
960
|
-
|
|
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
|
-
|
|
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
|
-
|
|
997
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
}
|