@qawolf/cli 1.21.0 → 1.22.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/cli.js +55 -14
- package/dist/runner-sdk.js +27 -6
- package/package.json +2 -2
package/dist/cli.js
CHANGED
|
@@ -342181,6 +342181,18 @@ async function downloadBundle(signedUrl, deps) {
|
|
|
342181
342181
|
return { ok: true, value: { tmpArchive } };
|
|
342182
342182
|
}
|
|
342183
342183
|
|
|
342184
|
+
// node_modules/@qawolf/api-contracts/dist/v1/identity/organization.js
|
|
342185
|
+
var identityOrganization = exports_external.object({
|
|
342186
|
+
id: exports_external.string(),
|
|
342187
|
+
name: exports_external.string(),
|
|
342188
|
+
workOsOrganizationId: exports_external.string(),
|
|
342189
|
+
workspaces: exports_external.array(exports_external.object({
|
|
342190
|
+
id: exports_external.string(),
|
|
342191
|
+
name: exports_external.string(),
|
|
342192
|
+
slug: exports_external.string()
|
|
342193
|
+
}))
|
|
342194
|
+
});
|
|
342195
|
+
|
|
342184
342196
|
// node_modules/@qawolf/api-contracts/dist/v1/identity/index.js
|
|
342185
342197
|
var identityResponse = exports_external.union([
|
|
342186
342198
|
exports_external.object({
|
|
@@ -342196,6 +342208,7 @@ var identityResponse = exports_external.union([
|
|
|
342196
342208
|
id: exports_external.string(),
|
|
342197
342209
|
name: exports_external.string()
|
|
342198
342210
|
}),
|
|
342211
|
+
organizations: exports_external.array(identityOrganization),
|
|
342199
342212
|
user: exports_external.object({
|
|
342200
342213
|
email: exports_external.string(),
|
|
342201
342214
|
id: exports_external.string()
|
|
@@ -342205,13 +342218,16 @@ var identityResponse = exports_external.union([
|
|
|
342205
342218
|
organization: exports_external.object({
|
|
342206
342219
|
id: exports_external.string(),
|
|
342207
342220
|
name: exports_external.string()
|
|
342208
|
-
})
|
|
342209
|
-
|
|
342221
|
+
}),
|
|
342222
|
+
organizations: exports_external.never().optional(),
|
|
342223
|
+
user: exports_external.never().optional()
|
|
342224
|
+
}).transform(({ organization }) => ({ organization }))
|
|
342210
342225
|
]);
|
|
342211
342226
|
// node_modules/@qawolf/api-contracts/dist/v1/ids.js
|
|
342212
342227
|
var defaultIdSchemas = {
|
|
342213
342228
|
aiTask: exports_external.string().min(1).describe("The id of the AI task."),
|
|
342214
342229
|
automation: exports_external.string().min(1).describe("The id of the automation."),
|
|
342230
|
+
chatSession: exports_external.string().min(1).describe("The id of the chat session."),
|
|
342215
342231
|
environment: exports_external.string().min(1).describe("The id of the environment."),
|
|
342216
342232
|
environmentRef: exports_external.string().min(1).describe("The id or alias of the environment. Aliases require a team API key."),
|
|
342217
342233
|
flow: exports_external.string().min(1).describe("The id of the flow."),
|
|
@@ -342239,20 +342255,25 @@ var makeFlowSelectionSchema = (ids) => exports_external.object({
|
|
|
342239
342255
|
// node_modules/@qawolf/api-contracts/dist/v1/run/index.js
|
|
342240
342256
|
var makeCreateRunContract = (ids) => {
|
|
342241
342257
|
const input = exports_external.object({
|
|
342242
|
-
aiTaskId: ids.aiTask.describe("The AI task whose conversation should receive run status updates.")
|
|
342258
|
+
aiTaskId: ids.aiTask.optional().describe("The AI task whose conversation should receive run status updates."),
|
|
342259
|
+
chatSessionId: ids.chatSession.optional().describe("The chat session whose transcript should receive run status updates."),
|
|
342243
342260
|
environmentId: ids.environmentRef,
|
|
342244
342261
|
environmentVariables: exports_external.record(exports_external.string(), exports_external.string()).optional(),
|
|
342245
342262
|
ignoreRules: exports_external.boolean().describe("Ignore this team's sequencing rules for this run. By default they are honoured: the flows your selection depends on are added to the run, and flows run in the order the rules require. Set this to run exactly what you selected, in any order.").default(false),
|
|
342246
342263
|
pullRequestNumber: exports_external.number().int().positive().describe("The number of the pull request to associate with the run.").optional(),
|
|
342247
342264
|
repository: exports_external.string().min(1).describe('The owner/name of the repository, e.g. "acme/web".').optional()
|
|
342248
|
-
}).and(makeFlowSelectionSchema(ids))
|
|
342265
|
+
}).and(makeFlowSelectionSchema(ids)).refine((value) => !(value.aiTaskId && value.chatSessionId), {
|
|
342266
|
+
message: "Provide at most one of aiTaskId and chatSessionId: a task already implies its own chat session.",
|
|
342267
|
+
path: ["chatSessionId"]
|
|
342268
|
+
});
|
|
342249
342269
|
const output = resource({
|
|
342250
342270
|
excludedFlows: exports_external.array(exports_external.object({
|
|
342251
342271
|
flowId: ids.flow,
|
|
342252
342272
|
name: exports_external.string().describe("The name of the flow."),
|
|
342253
342273
|
reason: exports_external.enum(["deleted", "not-on-branch"]).describe('Why the flow cannot run: "deleted" means the flow was deleted, "not-on-branch" means the flow has no file at the commit the run was created from.')
|
|
342254
342274
|
})).describe("Explicitly requested flows that were left out of the run, each with the reason. Flows selected through tags are not reported here."),
|
|
342255
|
-
runId: ids.run
|
|
342275
|
+
runId: ids.run,
|
|
342276
|
+
tracking: exports_external.enum(["registered", "failed", "not-requested"]).describe('Whether the conversation named by aiTaskId or chatSessionId will receive run status updates: "registered" when it will, "failed" when the run was created but the registration failed, "not-requested" when neither id was given or the AI task has no conversation to notify.')
|
|
342256
342277
|
}, { urlFieldDescription: "Absolute URL of the run page." });
|
|
342257
342278
|
return {
|
|
342258
342279
|
description: "Create a run for the selected flows and/or tags in an environment.",
|
|
@@ -346164,7 +346185,7 @@ function startUpdateCheck(deps) {
|
|
|
346164
346185
|
// package.json
|
|
346165
346186
|
var package_default = {
|
|
346166
346187
|
name: "@qawolf/cli",
|
|
346167
|
-
version: "1.
|
|
346188
|
+
version: "1.22.1",
|
|
346168
346189
|
description: "Run and manage QA Wolf flows from the terminal, CI, or an AI agent",
|
|
346169
346190
|
keywords: [
|
|
346170
346191
|
"automation",
|
|
@@ -346235,7 +346256,7 @@ var package_default = {
|
|
|
346235
346256
|
"@clack/prompts": "1.5.1",
|
|
346236
346257
|
"@napi-rs/keyring": "1.3.0",
|
|
346237
346258
|
"@oxc-node/core": "0.1.0",
|
|
346238
|
-
"@qawolf/api-contracts": "0.
|
|
346259
|
+
"@qawolf/api-contracts": "0.39.0",
|
|
346239
346260
|
"@qawolf/emails": "1.1.1",
|
|
346240
346261
|
"@qawolf/flow-targets": "1.0.0",
|
|
346241
346262
|
"@qawolf/flows": "0.1.4",
|
|
@@ -357341,18 +357362,38 @@ var skippedContractNames = new Set([
|
|
|
357341
357362
|
"runner.terminate"
|
|
357342
357363
|
]);
|
|
357343
357364
|
|
|
357344
|
-
// src/commands/publicApi/
|
|
357345
|
-
var groupDescriptions = {
|
|
357346
|
-
run: "Trigger and manage QA Wolf runs on the platform"
|
|
357347
|
-
};
|
|
357365
|
+
// src/commands/publicApi/environmentOptions.ts
|
|
357348
357366
|
var optionEnvironmentVariables = new Map([
|
|
357349
357367
|
["environmentId", "QAWOLF_ENVIRONMENT"],
|
|
357350
|
-
["public.run.create.aiTaskId", "QAWOLF_AI_TASK_ID"]
|
|
357368
|
+
["public.run.create.aiTaskId", "QAWOLF_AI_TASK_ID"],
|
|
357369
|
+
["public.run.create.chatSessionId", "QAWOLF_CHAT_SESSION_ID"]
|
|
357351
357370
|
]);
|
|
357352
357371
|
function optionEnvironmentVariable(spec, path9) {
|
|
357353
357372
|
const dotted = path9.join(".");
|
|
357354
357373
|
return optionEnvironmentVariables.get(`${spec.trpcPath}.${dotted}`) ?? optionEnvironmentVariables.get(dotted);
|
|
357355
357374
|
}
|
|
357375
|
+
var exclusiveOptions = new Map([
|
|
357376
|
+
["public.run.create", { keep: "aiTaskId", drop: "chatSessionId" }]
|
|
357377
|
+
]);
|
|
357378
|
+
function withoutExclusiveConflict(spec, command, options) {
|
|
357379
|
+
const pair = exclusiveOptions.get(spec.trpcPath);
|
|
357380
|
+
if (!pair)
|
|
357381
|
+
return options;
|
|
357382
|
+
if (options[pair.keep] === undefined || options[pair.drop] === undefined) {
|
|
357383
|
+
return options;
|
|
357384
|
+
}
|
|
357385
|
+
const fromEnvironment = (key) => command.getOptionValueSource(key) === "env";
|
|
357386
|
+
if (!fromEnvironment(pair.keep) && !fromEnvironment(pair.drop)) {
|
|
357387
|
+
return options;
|
|
357388
|
+
}
|
|
357389
|
+
const dropped = fromEnvironment(pair.drop) ? pair.drop : pair.keep;
|
|
357390
|
+
return Object.fromEntries(Object.entries(options).filter(([key]) => key !== dropped));
|
|
357391
|
+
}
|
|
357392
|
+
|
|
357393
|
+
// src/commands/publicApi/index.ts
|
|
357394
|
+
var groupDescriptions = {
|
|
357395
|
+
run: "Trigger and manage QA Wolf runs on the platform"
|
|
357396
|
+
};
|
|
357356
357397
|
function resolveGroup(parent2, segment) {
|
|
357357
357398
|
const existing = parent2.commands.find((command) => command.name() === segment);
|
|
357358
357399
|
return existing ?? parent2.command(segment).description(groupDescriptions[segment] ?? `QA Wolf public API ${segment} commands`);
|
|
@@ -357381,7 +357422,7 @@ function registerSpec(program2, signals, spec, authDeps) {
|
|
|
357381
357422
|
command.option(flag.flag, flag.description);
|
|
357382
357423
|
}
|
|
357383
357424
|
}
|
|
357384
|
-
command.action((options, leaf) => withAuthContext(signals, (ctx) => handlePublicApiCommand(ctx, spec, options), authDeps ?? {})(options, leaf));
|
|
357425
|
+
command.action((options, leaf) => withAuthContext(signals, (ctx) => handlePublicApiCommand(ctx, spec, withoutExclusiveConflict(spec, leaf, options)), authDeps ?? {})(options, leaf));
|
|
357385
357426
|
}
|
|
357386
357427
|
function registerPublicApiCommands(program2, signals, options = {}) {
|
|
357387
357428
|
const specs = buildCommandSpecs(options.contracts ?? publicContractsV1, {
|
|
@@ -359747,4 +359788,4 @@ createProgram({ signals }).parseAsync().catch(() => {
|
|
|
359747
359788
|
process.exitCode = 1;
|
|
359748
359789
|
}).finally(() => flushAndExit(typeof process.exitCode === "number" ? process.exitCode : 0));
|
|
359749
359790
|
|
|
359750
|
-
//# debugId=
|
|
359791
|
+
//# debugId=CDE51BC4C33640F464756E2164756E21
|
package/dist/runner-sdk.js
CHANGED
|
@@ -185448,6 +185448,18 @@ function date4(params) {
|
|
|
185448
185448
|
|
|
185449
185449
|
// node_modules/zod/v4/classic/external.js
|
|
185450
185450
|
config(en_default());
|
|
185451
|
+
// node_modules/@qawolf/api-contracts/dist/v1/identity/organization.js
|
|
185452
|
+
var identityOrganization = exports_external.object({
|
|
185453
|
+
id: exports_external.string(),
|
|
185454
|
+
name: exports_external.string(),
|
|
185455
|
+
workOsOrganizationId: exports_external.string(),
|
|
185456
|
+
workspaces: exports_external.array(exports_external.object({
|
|
185457
|
+
id: exports_external.string(),
|
|
185458
|
+
name: exports_external.string(),
|
|
185459
|
+
slug: exports_external.string()
|
|
185460
|
+
}))
|
|
185461
|
+
});
|
|
185462
|
+
|
|
185451
185463
|
// node_modules/@qawolf/api-contracts/dist/v1/identity/index.js
|
|
185452
185464
|
var identityResponse = exports_external.union([
|
|
185453
185465
|
exports_external.object({
|
|
@@ -185463,6 +185475,7 @@ var identityResponse = exports_external.union([
|
|
|
185463
185475
|
id: exports_external.string(),
|
|
185464
185476
|
name: exports_external.string()
|
|
185465
185477
|
}),
|
|
185478
|
+
organizations: exports_external.array(identityOrganization),
|
|
185466
185479
|
user: exports_external.object({
|
|
185467
185480
|
email: exports_external.string(),
|
|
185468
185481
|
id: exports_external.string()
|
|
@@ -185472,13 +185485,16 @@ var identityResponse = exports_external.union([
|
|
|
185472
185485
|
organization: exports_external.object({
|
|
185473
185486
|
id: exports_external.string(),
|
|
185474
185487
|
name: exports_external.string()
|
|
185475
|
-
})
|
|
185476
|
-
|
|
185488
|
+
}),
|
|
185489
|
+
organizations: exports_external.never().optional(),
|
|
185490
|
+
user: exports_external.never().optional()
|
|
185491
|
+
}).transform(({ organization }) => ({ organization }))
|
|
185477
185492
|
]);
|
|
185478
185493
|
// node_modules/@qawolf/api-contracts/dist/v1/ids.js
|
|
185479
185494
|
var defaultIdSchemas = {
|
|
185480
185495
|
aiTask: exports_external.string().min(1).describe("The id of the AI task."),
|
|
185481
185496
|
automation: exports_external.string().min(1).describe("The id of the automation."),
|
|
185497
|
+
chatSession: exports_external.string().min(1).describe("The id of the chat session."),
|
|
185482
185498
|
environment: exports_external.string().min(1).describe("The id of the environment."),
|
|
185483
185499
|
environmentRef: exports_external.string().min(1).describe("The id or alias of the environment. Aliases require a team API key."),
|
|
185484
185500
|
flow: exports_external.string().min(1).describe("The id of the flow."),
|
|
@@ -185506,20 +185522,25 @@ var makeFlowSelectionSchema = (ids) => exports_external.object({
|
|
|
185506
185522
|
// node_modules/@qawolf/api-contracts/dist/v1/run/index.js
|
|
185507
185523
|
var makeCreateRunContract = (ids) => {
|
|
185508
185524
|
const input = exports_external.object({
|
|
185509
|
-
aiTaskId: ids.aiTask.describe("The AI task whose conversation should receive run status updates.")
|
|
185525
|
+
aiTaskId: ids.aiTask.optional().describe("The AI task whose conversation should receive run status updates."),
|
|
185526
|
+
chatSessionId: ids.chatSession.optional().describe("The chat session whose transcript should receive run status updates."),
|
|
185510
185527
|
environmentId: ids.environmentRef,
|
|
185511
185528
|
environmentVariables: exports_external.record(exports_external.string(), exports_external.string()).optional(),
|
|
185512
185529
|
ignoreRules: exports_external.boolean().describe("Ignore this team's sequencing rules for this run. By default they are honoured: the flows your selection depends on are added to the run, and flows run in the order the rules require. Set this to run exactly what you selected, in any order.").default(false),
|
|
185513
185530
|
pullRequestNumber: exports_external.number().int().positive().describe("The number of the pull request to associate with the run.").optional(),
|
|
185514
185531
|
repository: exports_external.string().min(1).describe('The owner/name of the repository, e.g. "acme/web".').optional()
|
|
185515
|
-
}).and(makeFlowSelectionSchema(ids))
|
|
185532
|
+
}).and(makeFlowSelectionSchema(ids)).refine((value) => !(value.aiTaskId && value.chatSessionId), {
|
|
185533
|
+
message: "Provide at most one of aiTaskId and chatSessionId: a task already implies its own chat session.",
|
|
185534
|
+
path: ["chatSessionId"]
|
|
185535
|
+
});
|
|
185516
185536
|
const output = resource({
|
|
185517
185537
|
excludedFlows: exports_external.array(exports_external.object({
|
|
185518
185538
|
flowId: ids.flow,
|
|
185519
185539
|
name: exports_external.string().describe("The name of the flow."),
|
|
185520
185540
|
reason: exports_external.enum(["deleted", "not-on-branch"]).describe('Why the flow cannot run: "deleted" means the flow was deleted, "not-on-branch" means the flow has no file at the commit the run was created from.')
|
|
185521
185541
|
})).describe("Explicitly requested flows that were left out of the run, each with the reason. Flows selected through tags are not reported here."),
|
|
185522
|
-
runId: ids.run
|
|
185542
|
+
runId: ids.run,
|
|
185543
|
+
tracking: exports_external.enum(["registered", "failed", "not-requested"]).describe('Whether the conversation named by aiTaskId or chatSessionId will receive run status updates: "registered" when it will, "failed" when the run was created but the registration failed, "not-requested" when neither id was given or the AI task has no conversation to notify.')
|
|
185523
185544
|
}, { urlFieldDescription: "Absolute URL of the run page." });
|
|
185524
185545
|
return {
|
|
185525
185546
|
description: "Create a run for the selected flows and/or tags in an environment.",
|
|
@@ -191010,4 +191031,4 @@ export {
|
|
|
191010
191031
|
createRunnerSdk
|
|
191011
191032
|
};
|
|
191012
191033
|
|
|
191013
|
-
//# debugId=
|
|
191034
|
+
//# debugId=42D4AA4E1C2C966064756E2164756E21
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@qawolf/cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.22.1",
|
|
4
4
|
"description": "Run and manage QA Wolf flows from the terminal, CI, or an AI agent",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"automation",
|
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
"@clack/prompts": "1.5.1",
|
|
72
72
|
"@napi-rs/keyring": "1.3.0",
|
|
73
73
|
"@oxc-node/core": "0.1.0",
|
|
74
|
-
"@qawolf/api-contracts": "0.
|
|
74
|
+
"@qawolf/api-contracts": "0.39.0",
|
|
75
75
|
"@qawolf/emails": "1.1.1",
|
|
76
76
|
"@qawolf/flow-targets": "1.0.0",
|
|
77
77
|
"@qawolf/flows": "0.1.4",
|