@qawolf/cli 1.38.0 → 1.39.0
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 +422 -20
- package/dist/runner-sdk.js +406 -8
- package/package.json +2 -2
- package/skills/qawolf-cli/references/run-results.md +1 -0
package/dist/runner-sdk.js
CHANGED
|
@@ -7111,6 +7111,11 @@ var makeRequestFileDownloadContract = (ids) => {
|
|
|
7111
7111
|
readUrl: string2().describe('Fetch the file\'s bytes from here, for example `curl -o journeys.csv "<readUrl>"`. Write it to a file and read that file, rather than printing the contents, so a large file costs one line of output instead of all of it.')
|
|
7112
7112
|
});
|
|
7113
7113
|
return {
|
|
7114
|
+
annotationJustifications: {
|
|
7115
|
+
destructiveHint: "Does not change, overwrite or delete the stored file.",
|
|
7116
|
+
openWorldHint: "Access is limited to QA Wolf team storage; the caller cannot supply an arbitrary external destination.",
|
|
7117
|
+
readOnlyHint: "Returns an expiring read URL for an existing file in the authorized workspace storage."
|
|
7118
|
+
},
|
|
7114
7119
|
annotations: {
|
|
7115
7120
|
destructiveHint: false,
|
|
7116
7121
|
openWorldHint: false,
|
|
@@ -7137,6 +7142,11 @@ var makeRequestFileUploadContract = (ids) => {
|
|
|
7137
7142
|
uploadUrl: string2().describe(`Send the file's bytes here with a single HTTP PUT carrying the returned contentType, for example \`curl -H 'Content-Type: application/octet-stream' --upload-file "journeys.csv" "<uploadUrl>"\`. Upload the bytes from the shell rather than through this API, so a large file never has to be written out as text.`)
|
|
7138
7143
|
});
|
|
7139
7144
|
return {
|
|
7145
|
+
annotationJustifications: {
|
|
7146
|
+
destructiveHint: "Using the returned upload URL with an existing file name replaces that stored file.",
|
|
7147
|
+
openWorldHint: "The upload target is QA Wolf team storage, not an arbitrary external service or recipient.",
|
|
7148
|
+
readOnlyHint: "Returns an expiring upload URL that permits writing a file to the authorized workspace storage."
|
|
7149
|
+
},
|
|
7140
7150
|
annotations: {
|
|
7141
7151
|
destructiveHint: true,
|
|
7142
7152
|
openWorldHint: false,
|
|
@@ -7252,6 +7262,11 @@ var makeCreateRunContract = (ids) => {
|
|
|
7252
7262
|
tracking: _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.')
|
|
7253
7263
|
}, { urlFieldDescription: "Absolute URL of the run page." });
|
|
7254
7264
|
return {
|
|
7265
|
+
annotationJustifications: {
|
|
7266
|
+
destructiveHint: "Test code can overwrite or delete application data.",
|
|
7267
|
+
openWorldHint: "Test execution can submit forms or change the application under test and its connected services.",
|
|
7268
|
+
readOnlyHint: "Creates a run and enqueues execution of selected flows."
|
|
7269
|
+
},
|
|
7255
7270
|
annotations: {
|
|
7256
7271
|
destructiveHint: true,
|
|
7257
7272
|
openWorldHint: true,
|
|
@@ -7318,6 +7333,11 @@ var makeListScreenshotComparisonsContract = (ids) => {
|
|
|
7318
7333
|
truncated: boolean2().describe(`True when the selected flows have more than ${maxListedScreenshotAttempts} failed attempts. Only the ${maxListedScreenshotAttempts} most recent are listed, and the older attempts cannot be listed.`)
|
|
7319
7334
|
});
|
|
7320
7335
|
return {
|
|
7336
|
+
annotationJustifications: {
|
|
7337
|
+
destructiveHint: "Does not change baselines, results or the run.",
|
|
7338
|
+
openWorldHint: "Reads recorded QA Wolf screenshots without changing the application under test.",
|
|
7339
|
+
readOnlyHint: "Creates missing JPEG previews of the compared images and keeps them in team storage."
|
|
7340
|
+
},
|
|
7321
7341
|
annotations: {
|
|
7322
7342
|
destructiveHint: false,
|
|
7323
7343
|
openWorldHint: false,
|
|
@@ -7514,6 +7534,11 @@ var makeInspectOnRunnerContract = (ids) => {
|
|
|
7514
7534
|
})
|
|
7515
7535
|
]);
|
|
7516
7536
|
return {
|
|
7537
|
+
annotationJustifications: {
|
|
7538
|
+
destructiveHint: "Does not edit test code or application data, although the activity refresh can extend billed runtime.",
|
|
7539
|
+
openWorldHint: "Inspects the private runner session without submitting application actions.",
|
|
7540
|
+
readOnlyHint: "Retrieves browser inspection data and refreshes activity, which can cancel an inactivity shutdown."
|
|
7541
|
+
},
|
|
7517
7542
|
annotations: {
|
|
7518
7543
|
destructiveHint: false,
|
|
7519
7544
|
openWorldHint: false,
|
|
@@ -7679,6 +7704,11 @@ var makeInspectMobileOnRunnerContract = (ids) => {
|
|
|
7679
7704
|
])
|
|
7680
7705
|
]);
|
|
7681
7706
|
return {
|
|
7707
|
+
annotationJustifications: {
|
|
7708
|
+
destructiveHint: "Does not change application data, edit tests, or stop the runner.",
|
|
7709
|
+
openWorldHint: "Inspects the existing QA Wolf mobile runner without submitting application actions or contacting arbitrary services.",
|
|
7710
|
+
readOnlyHint: "Reads mobile session status, contexts, page source, or elements without refreshing the runner's inactivity timer."
|
|
7711
|
+
},
|
|
7682
7712
|
annotations: {
|
|
7683
7713
|
destructiveHint: false,
|
|
7684
7714
|
openWorldHint: false,
|
|
@@ -7855,6 +7885,11 @@ var makePerformActionOnRunnerContract = (ids) => {
|
|
|
7855
7885
|
failure
|
|
7856
7886
|
]);
|
|
7857
7887
|
return {
|
|
7888
|
+
annotationJustifications: {
|
|
7889
|
+
destructiveHint: "Actions can submit irreversible transactions or delete existing data, so uncertain outcomes must be inspected before retrying.",
|
|
7890
|
+
openWorldHint: "Clicks, typing and navigation can submit external forms or change application state.",
|
|
7891
|
+
readOnlyHint: "Performs a browser or device action and can start a browser when needed."
|
|
7892
|
+
},
|
|
7858
7893
|
annotations: {
|
|
7859
7894
|
destructiveHint: true,
|
|
7860
7895
|
openWorldHint: true,
|
|
@@ -7906,6 +7941,7 @@ var failedStepSchema = discriminatedUnion("failureReason", [
|
|
|
7906
7941
|
failureReason: _enum([
|
|
7907
7942
|
...screenFailureReasons,
|
|
7908
7943
|
"action-not-supported-on-mobile",
|
|
7944
|
+
"action-not-supported-on-browser",
|
|
7909
7945
|
outOfTimeFailureReason
|
|
7910
7946
|
]),
|
|
7911
7947
|
index: actionIndexSchema,
|
|
@@ -7920,6 +7956,7 @@ var sequenceFailureReasons = [
|
|
|
7920
7956
|
"action-failed",
|
|
7921
7957
|
...screenFailureReasons,
|
|
7922
7958
|
"action-not-supported-on-mobile",
|
|
7959
|
+
"action-not-supported-on-browser",
|
|
7923
7960
|
outOfTimeFailureReason,
|
|
7924
7961
|
unconfirmedFailureReason,
|
|
7925
7962
|
runnerUnreachableFailureReason
|
|
@@ -7928,11 +7965,11 @@ var sequenceFailureReasons = [
|
|
|
7928
7965
|
// node_modules/@qawolf/api-contracts/dist/v1/runner/performActions.js
|
|
7929
7966
|
var actionsDescription = `The actions to perform, in order, each exactly what \`runner.performAction\` takes: coordinates are whole pixels on the runner's virtual desktop, in the same space as \`runner.takeScreenshot\`, and the shapes follow the computer-use vocabulary. At most ${maxActionsPerRequest} per request. For when the next several steps are already known — click a field, type into it, press Enter — and one look at the screen at the end is enough. They run back to back on the runner, with no pause between them: put in one request only steps whose targets are all on the screen you last saw and are not moved by the steps before them, and when a step changes the page — a submit, a navigation, opening a menu — make it the last one and read the frame.`;
|
|
7930
7967
|
var screenshotModeDescription = "`final`, the default, answers with one screenshot in `imageJpegBase64`: the screen after the last action, or, after a stop, as it stands. `each` puts a screenshot after every action on its entry in `results`, for when each step must be checked; every frame is a full image, so keep such sequences short. `none` sends no screenshot.";
|
|
7931
|
-
var stopOnFailureDescription = "`true`, the default, leaves the remaining actions unperformed once one fails. `false` carries on past an action that reached the runner and did not take effect (`action-failed`, `action-not-supported-on-mobile`), so use it only for actions that do not depend on each other: a `type` after a `click` that failed goes to whatever has focus. A runner that cannot be reached, a screen that cannot serve, or running out of time ends the sequence either way.";
|
|
7968
|
+
var stopOnFailureDescription = "`true`, the default, leaves the remaining actions unperformed once one fails. `false` carries on past an action that reached the runner and did not take effect (`action-failed`, `action-not-supported-on-mobile`, `action-not-supported-on-browser`), so use it only for actions that do not depend on each other: a `type` after a `click` that failed goes to whatever has focus. A runner that cannot be reached, a screen that cannot serve, or running out of time ends the sequence either way.";
|
|
7932
7969
|
var finalImageDescription = "Present with `screenshotMode: final` when the runner still answered: the screen after the last action performed, or, after a stop, as it stands.";
|
|
7933
7970
|
var makePerformActionsOnRunnerContract = (ids) => {
|
|
7934
7971
|
const input = object({
|
|
7935
|
-
actions: array(
|
|
7972
|
+
actions: array(runnerActionSchema).min(1).max(maxActionsPerRequest).describe(actionsDescription),
|
|
7936
7973
|
id: runnerIdSchema.describe("Id of the runner to act on."),
|
|
7937
7974
|
screenshotMode: _enum(screenshotModes).optional().describe(screenshotModeDescription),
|
|
7938
7975
|
stopOnFailure: boolean2().optional().describe(stopOnFailureDescription),
|
|
@@ -7957,12 +7994,17 @@ var makePerformActionsOnRunnerContract = (ids) => {
|
|
|
7957
7994
|
})
|
|
7958
7995
|
]);
|
|
7959
7996
|
return {
|
|
7997
|
+
annotationJustifications: {
|
|
7998
|
+
destructiveHint: "Actions can submit irreversible transactions or delete existing data, so uncertain outcomes must be inspected before retrying.",
|
|
7999
|
+
openWorldHint: "Clicks, typing and navigation can submit external forms or change application state.",
|
|
8000
|
+
readOnlyHint: "Performs a sequence of browser or device actions on a runner."
|
|
8001
|
+
},
|
|
7960
8002
|
annotations: {
|
|
7961
8003
|
destructiveHint: true,
|
|
7962
8004
|
openWorldHint: true,
|
|
7963
8005
|
readOnlyHint: false
|
|
7964
8006
|
},
|
|
7965
|
-
description: "Perform a sequence of raw
|
|
8007
|
+
description: "Perform a sequence of raw actions on an interactive runner in one request, one after another, and answer with what happened to each. A `success` means every action took effect. A `failure` names the first action that did not (`failedIndex`, `failureReason`), the last one that did (`lastCompletedIndex`), and whether actions were left unperformed (`stoppedEarly`); `results` has one entry per action reached, in order. Read `effect` on an entry before sending its action again: `performed` means the runner did it; `not-performed` means the runner answered that it did not take effect, though a `navigate` that timed out may still be loading; `unknown` means the runner stopped answering with the action in flight (`runner-unreachable`), or its screen went quiet mid-action (`action-unconfirmed`), and it may have taken effect — a click that submitted a form, say — so take a screenshot instead of repeating it. A sequence gets about a minute to start its actions; an action it did not reach in time is `out-of-time`, nothing after it was attempted, and the rest can go in a new request. Everything `runner.performAction` says about a runner that has never run anything, a mobile runner, and the `screen-needs-a-run`, `screen-not-ready`, `runner-has-no-screen`, `action-not-supported-on-mobile` and `action-not-supported-on-browser` reasons holds for each action here.",
|
|
7966
8008
|
input,
|
|
7967
8009
|
kind: "write",
|
|
7968
8010
|
name: "runner.performActions",
|
|
@@ -8030,6 +8072,11 @@ var makeRecordOnRunnerContract = (ids) => {
|
|
|
8030
8072
|
url: url()
|
|
8031
8073
|
});
|
|
8032
8074
|
return {
|
|
8075
|
+
annotationJustifications: {
|
|
8076
|
+
destructiveHint: "Starts or stops a video recording without changing the application under test.",
|
|
8077
|
+
openWorldHint: "Controls recording on a QA Wolf runner without starting external work.",
|
|
8078
|
+
readOnlyHint: "Starts or stops video recording and changes automatic capture settings."
|
|
8079
|
+
},
|
|
8033
8080
|
annotations: {
|
|
8034
8081
|
destructiveHint: false,
|
|
8035
8082
|
openWorldHint: false,
|
|
@@ -8057,6 +8104,11 @@ var makeRunnerRecordingsContract = (ids) => {
|
|
|
8057
8104
|
}))
|
|
8058
8105
|
});
|
|
8059
8106
|
return {
|
|
8107
|
+
annotationJustifications: {
|
|
8108
|
+
destructiveHint: "Does not delete or change any recording.",
|
|
8109
|
+
openWorldHint: "Reads QA Wolf workspace storage without changing the application under test.",
|
|
8110
|
+
readOnlyHint: "Lists or retrieves a runner's finalized recordings."
|
|
8111
|
+
},
|
|
8060
8112
|
annotations: {
|
|
8061
8113
|
destructiveHint: false,
|
|
8062
8114
|
openWorldHint: false,
|
|
@@ -8287,6 +8339,11 @@ var makeCreateTriggerContract = (ids) => {
|
|
|
8287
8339
|
]).superRefine(checkTriggerConfiguration);
|
|
8288
8340
|
const output = object({ trigger: makeTriggerResourceSchema(ids) });
|
|
8289
8341
|
return {
|
|
8342
|
+
annotationJustifications: {
|
|
8343
|
+
destructiveHint: "Enables automatic execution of test code that may overwrite or delete application data.",
|
|
8344
|
+
openWorldHint: "Triggered runs can change the application under test and update connected integrations.",
|
|
8345
|
+
readOnlyHint: "Creates an active schedule or deployment trigger that can start test runs."
|
|
8346
|
+
},
|
|
8290
8347
|
annotations: {
|
|
8291
8348
|
destructiveHint: true,
|
|
8292
8349
|
openWorldHint: true,
|
|
@@ -8310,6 +8367,11 @@ var makeFindTriggersContract = (ids) => {
|
|
|
8310
8367
|
triggers: array(makeTriggerResourceSchema(ids)).describe("The team's triggers, newest first.")
|
|
8311
8368
|
});
|
|
8312
8369
|
return {
|
|
8370
|
+
annotationJustifications: {
|
|
8371
|
+
destructiveHint: "Does not modify or delete triggers or their runs.",
|
|
8372
|
+
openWorldHint: "Reads private QA Wolf trigger records without changing external systems.",
|
|
8373
|
+
readOnlyHint: "Lists trigger configuration in the authorized workspace without changing it."
|
|
8374
|
+
},
|
|
8313
8375
|
annotations: {
|
|
8314
8376
|
destructiveHint: false,
|
|
8315
8377
|
openWorldHint: false,
|
|
@@ -8328,6 +8390,11 @@ var makeGetTriggerContract = (ids) => {
|
|
|
8328
8390
|
const input = object({ triggerId: ids.trigger });
|
|
8329
8391
|
const output = object({ trigger: makeTriggerResourceSchema(ids) });
|
|
8330
8392
|
return {
|
|
8393
|
+
annotationJustifications: {
|
|
8394
|
+
destructiveHint: "Does not modify or delete the trigger or its runs.",
|
|
8395
|
+
openWorldHint: "Reads a private QA Wolf trigger without changing external systems.",
|
|
8396
|
+
readOnlyHint: "Retrieves one authorized trigger and its configuration without changing it."
|
|
8397
|
+
},
|
|
8331
8398
|
annotations: {
|
|
8332
8399
|
destructiveHint: false,
|
|
8333
8400
|
openWorldHint: false,
|
|
@@ -8346,6 +8413,11 @@ var makePauseTriggerContract = (ids) => {
|
|
|
8346
8413
|
const input = object({ triggerId: ids.trigger });
|
|
8347
8414
|
const output = object({ trigger: makeTriggerResourceSchema(ids) });
|
|
8348
8415
|
return {
|
|
8416
|
+
annotationJustifications: {
|
|
8417
|
+
destructiveHint: "Disables future automatic execution for the selected trigger until it is resumed.",
|
|
8418
|
+
openWorldHint: "Changes private QA Wolf scheduling state without starting external work.",
|
|
8419
|
+
readOnlyHint: "Pauses an existing trigger so it stops starting new work."
|
|
8420
|
+
},
|
|
8349
8421
|
annotations: {
|
|
8350
8422
|
destructiveHint: true,
|
|
8351
8423
|
openWorldHint: false,
|
|
@@ -8362,6 +8434,11 @@ var makeResumeTriggerContract = (ids) => {
|
|
|
8362
8434
|
const input = object({ triggerId: ids.trigger });
|
|
8363
8435
|
const output = object({ trigger: makeTriggerResourceSchema(ids) });
|
|
8364
8436
|
return {
|
|
8437
|
+
annotationJustifications: {
|
|
8438
|
+
destructiveHint: "Enables automatic test execution that may overwrite or delete application data.",
|
|
8439
|
+
openWorldHint: "Resumed execution can change the application under test and update connected integrations.",
|
|
8440
|
+
readOnlyHint: "Reactivates a paused trigger so future matching schedules or deployments can start runs."
|
|
8441
|
+
},
|
|
8365
8442
|
annotations: {
|
|
8366
8443
|
destructiveHint: true,
|
|
8367
8444
|
openWorldHint: true,
|
|
@@ -8380,6 +8457,11 @@ var makeDeleteTriggerContract = (ids) => {
|
|
|
8380
8457
|
triggerId: ids.trigger.describe("The id of the deleted trigger.")
|
|
8381
8458
|
});
|
|
8382
8459
|
return {
|
|
8460
|
+
annotationJustifications: {
|
|
8461
|
+
destructiveHint: "Permanently deletes the selected trigger configuration.",
|
|
8462
|
+
openWorldHint: "Removes private QA Wolf trigger configuration without starting external work.",
|
|
8463
|
+
readOnlyHint: "Permanently removes a trigger while preserving runs it already created."
|
|
8464
|
+
},
|
|
8383
8465
|
annotations: {
|
|
8384
8466
|
destructiveHint: true,
|
|
8385
8467
|
openWorldHint: false,
|
|
@@ -8416,6 +8498,11 @@ var makeUpdateTriggerContract = (ids) => {
|
|
|
8416
8498
|
]).superRefine(checkTriggerConfiguration);
|
|
8417
8499
|
const output = object({ trigger: makeTriggerResourceSchema(ids) });
|
|
8418
8500
|
return {
|
|
8501
|
+
annotationJustifications: {
|
|
8502
|
+
destructiveHint: "Overwrites trigger configuration and can enable tests that change or delete application data.",
|
|
8503
|
+
openWorldHint: "The updated trigger can execute tests against external applications and update connected integrations.",
|
|
8504
|
+
readOnlyHint: "Replaces an existing trigger configuration and can change future automatic runs."
|
|
8505
|
+
},
|
|
8419
8506
|
annotations: {
|
|
8420
8507
|
destructiveHint: true,
|
|
8421
8508
|
openWorldHint: true,
|
|
@@ -8457,6 +8544,11 @@ var makeAgentGetContract = (ids) => {
|
|
|
8457
8544
|
urlFieldDescription: "Absolute URL of the live session in the QA Wolf app."
|
|
8458
8545
|
});
|
|
8459
8546
|
return {
|
|
8547
|
+
annotationJustifications: {
|
|
8548
|
+
destructiveHint: "Does not cancel work or edit tests and messages.",
|
|
8549
|
+
openWorldHint: "Reads a QA Wolf session without posting to external services.",
|
|
8550
|
+
readOnlyHint: "Retrieves session status, replies and the live link without sending work."
|
|
8551
|
+
},
|
|
8460
8552
|
annotations: {
|
|
8461
8553
|
destructiveHint: false,
|
|
8462
8554
|
openWorldHint: false,
|
|
@@ -8488,6 +8580,11 @@ var makeAgentSendContract = (ids) => {
|
|
|
8488
8580
|
urlFieldDescription: "Absolute URL of the live session in the QA Wolf app."
|
|
8489
8581
|
});
|
|
8490
8582
|
return {
|
|
8583
|
+
annotationJustifications: {
|
|
8584
|
+
destructiveHint: "Delegated execution can overwrite test code or change and delete application data.",
|
|
8585
|
+
openWorldHint: "Delegated work can submit application actions and publish code to connected repositories.",
|
|
8586
|
+
readOnlyHint: "Creates or continues AI work that can implement, run and publish tests."
|
|
8587
|
+
},
|
|
8491
8588
|
annotations: {
|
|
8492
8589
|
destructiveHint: true,
|
|
8493
8590
|
openWorldHint: true,
|
|
@@ -8526,6 +8623,11 @@ var makeFindCodeHostIntegrationsContract = (ids) => {
|
|
|
8526
8623
|
settingsUrl: url().describe("Absolute URL of the workspace's integrations settings page.")
|
|
8527
8624
|
});
|
|
8528
8625
|
return {
|
|
8626
|
+
annotationJustifications: {
|
|
8627
|
+
destructiveHint: "Does not disconnect integrations or change repository access.",
|
|
8628
|
+
openWorldHint: "Reads QA Wolf integration records without contacting or changing GitHub or GitLab.",
|
|
8629
|
+
readOnlyHint: "Lists the workspace's stored code host integrations and settings link without modifying them."
|
|
8630
|
+
},
|
|
8529
8631
|
annotations: {
|
|
8530
8632
|
destructiveHint: false,
|
|
8531
8633
|
openWorldHint: false,
|
|
@@ -8558,6 +8660,11 @@ var makeListCodeHostRepositoriesContract = (ids) => {
|
|
|
8558
8660
|
repositories: array(makeCodeHostRepositoryResourceSchema()).describe("The repositories the workspace's code host integrations cover, alphabetical by full name.")
|
|
8559
8661
|
});
|
|
8560
8662
|
return {
|
|
8663
|
+
annotationJustifications: {
|
|
8664
|
+
destructiveHint: "Does not edit repositories, integration settings, or access permissions.",
|
|
8665
|
+
openWorldHint: "Reads repositories already recorded for the workspace's integrations, without accessing arbitrary external repositories.",
|
|
8666
|
+
readOnlyHint: "Lists repository metadata from the workspace's last code host sync without triggering a new sync."
|
|
8667
|
+
},
|
|
8561
8668
|
annotations: {
|
|
8562
8669
|
destructiveHint: false,
|
|
8563
8670
|
openWorldHint: false,
|
|
@@ -8601,6 +8708,11 @@ var makeFindDeploymentsContract = (ids) => {
|
|
|
8601
8708
|
nextCursor: nextCursorSchema
|
|
8602
8709
|
});
|
|
8603
8710
|
return {
|
|
8711
|
+
annotationJustifications: {
|
|
8712
|
+
destructiveHint: "Does not modify deployments, environments, triggers, or runs.",
|
|
8713
|
+
openWorldHint: "Reads QA Wolf deployment records without contacting deployment providers or starting tests.",
|
|
8714
|
+
readOnlyHint: "Lists stored workspace deployments without reporting or changing their status."
|
|
8715
|
+
},
|
|
8604
8716
|
annotations: {
|
|
8605
8717
|
destructiveHint: false,
|
|
8606
8718
|
openWorldHint: false,
|
|
@@ -8675,6 +8787,11 @@ var makeListDeploymentTriggerEvaluationsContract = (ids) => {
|
|
|
8675
8787
|
object({ state: literal("not-evaluated") }).describe("Triggers were never evaluated for this deployment. Only a deployment's first success report evaluates triggers, so a deployment that never reported success carries no verdicts.")
|
|
8676
8788
|
]);
|
|
8677
8789
|
return {
|
|
8790
|
+
annotationJustifications: {
|
|
8791
|
+
destructiveHint: "Does not alter recorded verdicts, trigger configuration, or existing runs.",
|
|
8792
|
+
openWorldHint: "Reads stored QA Wolf verdicts without starting tests or updating external services.",
|
|
8793
|
+
readOnlyHint: "Retrieves the recorded trigger verdicts for one deployment without evaluating triggers again."
|
|
8794
|
+
},
|
|
8678
8795
|
annotations: {
|
|
8679
8796
|
destructiveHint: false,
|
|
8680
8797
|
openWorldHint: false,
|
|
@@ -8746,6 +8863,11 @@ var makeReportDeploymentStatusContract = (ids) => {
|
|
|
8746
8863
|
}, { urlFieldDescription: "Absolute URL of the environment's runs page." });
|
|
8747
8864
|
const output = object({ deployment });
|
|
8748
8865
|
return {
|
|
8866
|
+
annotationJustifications: {
|
|
8867
|
+
destructiveHint: "Can replace deployment details and variable overrides, and trigger tests that overwrite or delete application data.",
|
|
8868
|
+
openWorldHint: "Successful deployments can start tests against external applications and update connected integrations.",
|
|
8869
|
+
readOnlyHint: "Creates or updates a deployment, can create an environment, and evaluates triggers on its first success report."
|
|
8870
|
+
},
|
|
8749
8871
|
annotations: {
|
|
8750
8872
|
destructiveHint: true,
|
|
8751
8873
|
openWorldHint: true,
|
|
@@ -8782,6 +8904,11 @@ var makeFindEmailsContract = (ids) => {
|
|
|
8782
8904
|
nextCursor: nextCursorSchema
|
|
8783
8905
|
});
|
|
8784
8906
|
return {
|
|
8907
|
+
annotationJustifications: {
|
|
8908
|
+
destructiveHint: "Does not send, edit, or delete email messages.",
|
|
8909
|
+
openWorldHint: "Reads the workspace's QA Wolf inbox records without contacting recipients or arbitrary mailboxes.",
|
|
8910
|
+
readOnlyHint: "Searches stored workspace emails and returns matching message summaries."
|
|
8911
|
+
},
|
|
8785
8912
|
annotations: {
|
|
8786
8913
|
destructiveHint: false,
|
|
8787
8914
|
openWorldHint: false,
|
|
@@ -8803,6 +8930,11 @@ var makeGetEmailContract = (ids) => {
|
|
|
8803
8930
|
});
|
|
8804
8931
|
const output = makeEmailResourceSchema();
|
|
8805
8932
|
return {
|
|
8933
|
+
annotationJustifications: {
|
|
8934
|
+
destructiveHint: "Does not alter or delete the message or its attachments.",
|
|
8935
|
+
openWorldHint: "Reads a stored workspace message without forwarding it or contacting external recipients.",
|
|
8936
|
+
readOnlyHint: "Retrieves the content of an existing workspace email."
|
|
8937
|
+
},
|
|
8806
8938
|
annotations: {
|
|
8807
8939
|
destructiveHint: false,
|
|
8808
8940
|
openWorldHint: false,
|
|
@@ -8831,6 +8963,11 @@ var makeGetEmailAttachmentContract = (ids) => {
|
|
|
8831
8963
|
type: string2().optional().describe("The MIME type.")
|
|
8832
8964
|
}, { urlFieldDescription: emailUrlFieldDescription });
|
|
8833
8965
|
return {
|
|
8966
|
+
annotationJustifications: {
|
|
8967
|
+
destructiveHint: "Does not modify or delete the email or attachment.",
|
|
8968
|
+
openWorldHint: "Access is limited to attachments of authorized workspace emails, not arbitrary external files.",
|
|
8969
|
+
readOnlyHint: "Reads one attachment from an existing workspace email and returns its content."
|
|
8970
|
+
},
|
|
8834
8971
|
annotations: {
|
|
8835
8972
|
destructiveHint: false,
|
|
8836
8973
|
openWorldHint: false,
|
|
@@ -8855,6 +8992,11 @@ var makeListEmailAddressesContract = (ids) => {
|
|
|
8855
8992
|
nextCursor: nextCursorSchema
|
|
8856
8993
|
});
|
|
8857
8994
|
return {
|
|
8995
|
+
annotationJustifications: {
|
|
8996
|
+
destructiveHint: "Does not register, replace, or remove inbox addresses.",
|
|
8997
|
+
openWorldHint: "Reads QA Wolf inbox configuration without contacting external mail services or recipients.",
|
|
8998
|
+
readOnlyHint: "Lists the workspace's registered inbox addresses without changing them."
|
|
8999
|
+
},
|
|
8858
9000
|
annotations: {
|
|
8859
9001
|
destructiveHint: false,
|
|
8860
9002
|
openWorldHint: false,
|
|
@@ -8882,6 +9024,11 @@ var makeRegisterEmailAddressContract = (ids) => {
|
|
|
8882
9024
|
});
|
|
8883
9025
|
const output = makeEmailAddressResourceSchema();
|
|
8884
9026
|
return {
|
|
9027
|
+
annotationJustifications: {
|
|
9028
|
+
destructiveHint: "Adds an address without replacing or deleting existing inbox addresses or emails.",
|
|
9029
|
+
openWorldHint: "Adds a QA Wolf workspace inbox address without sending messages to external recipients.",
|
|
9030
|
+
readOnlyHint: "Registers an additional inbox address for the workspace."
|
|
9031
|
+
},
|
|
8885
9032
|
annotations: {
|
|
8886
9033
|
destructiveHint: false,
|
|
8887
9034
|
openWorldHint: false,
|
|
@@ -8920,6 +9067,11 @@ var makeSendEmailContract = (ids) => {
|
|
|
8920
9067
|
urlFieldDescription: emailUrlFieldDescription
|
|
8921
9068
|
});
|
|
8922
9069
|
return {
|
|
9070
|
+
annotationJustifications: {
|
|
9071
|
+
destructiveHint: "Sending an email is irreversible; recipients may act on it, and the tool cannot recall it.",
|
|
9072
|
+
openWorldHint: "Delivers message content and attachments to caller-selected email recipients outside QA Wolf.",
|
|
9073
|
+
readOnlyHint: "Sends an email from a workspace inbox and stores the sent message."
|
|
9074
|
+
},
|
|
8923
9075
|
annotations: {
|
|
8924
9076
|
destructiveHint: true,
|
|
8925
9077
|
openWorldHint: true,
|
|
@@ -8965,6 +9117,11 @@ var makeCreateEnvironmentContract = (ids) => {
|
|
|
8965
9117
|
});
|
|
8966
9118
|
const output = makeEnvironmentResourceSchema(ids);
|
|
8967
9119
|
return {
|
|
9120
|
+
annotationJustifications: {
|
|
9121
|
+
destructiveHint: "Adds a new environment and branch rather than deleting or overwriting an existing one.",
|
|
9122
|
+
openWorldHint: "Creates a branch in the connected Git provider rather than changing only QA Wolf records.",
|
|
9123
|
+
readOnlyHint: "Creates a QA Wolf environment and its remote flow-code branch."
|
|
9124
|
+
},
|
|
8968
9125
|
annotations: {
|
|
8969
9126
|
destructiveHint: false,
|
|
8970
9127
|
openWorldHint: true,
|
|
@@ -8989,6 +9146,11 @@ var makeDeleteEnvironmentVariableContract = (ids) => {
|
|
|
8989
9146
|
name: string2().describe("The canonicalized name that was removed. Returned even when the environment had no such variable.")
|
|
8990
9147
|
});
|
|
8991
9148
|
return {
|
|
9149
|
+
annotationJustifications: {
|
|
9150
|
+
destructiveHint: "Deletes an existing variable value, while an already-absent variable is left absent.",
|
|
9151
|
+
openWorldHint: "Changes private test configuration without submitting it to an external application.",
|
|
9152
|
+
readOnlyHint: "Removes a named environment variable from QA Wolf storage."
|
|
9153
|
+
},
|
|
8992
9154
|
annotations: {
|
|
8993
9155
|
destructiveHint: true,
|
|
8994
9156
|
openWorldHint: false,
|
|
@@ -9016,6 +9178,11 @@ var makeFindEnvironmentsContract = (ids) => {
|
|
|
9016
9178
|
nextCursor: nextCursorSchema
|
|
9017
9179
|
});
|
|
9018
9180
|
return {
|
|
9181
|
+
annotationJustifications: {
|
|
9182
|
+
destructiveHint: "Does not edit environments, variables or branches.",
|
|
9183
|
+
openWorldHint: "Reads private QA Wolf environment metadata without publishing changes.",
|
|
9184
|
+
readOnlyHint: "Lists workspace environments and their configuration summaries."
|
|
9185
|
+
},
|
|
9019
9186
|
annotations: {
|
|
9020
9187
|
destructiveHint: false,
|
|
9021
9188
|
openWorldHint: false,
|
|
@@ -9044,6 +9211,11 @@ var makeGetEnvironmentVariableContract = (ids) => {
|
|
|
9044
9211
|
})).describe("The found variables, sorted by name.")
|
|
9045
9212
|
});
|
|
9046
9213
|
return {
|
|
9214
|
+
annotationJustifications: {
|
|
9215
|
+
destructiveHint: "Does not replace or remove variable values.",
|
|
9216
|
+
openWorldHint: "Reads private stored configuration without submitting it to an external application.",
|
|
9217
|
+
readOnlyHint: "Retrieves decrypted values of named environment variables and reports missing names."
|
|
9218
|
+
},
|
|
9047
9219
|
annotations: {
|
|
9048
9220
|
destructiveHint: false,
|
|
9049
9221
|
openWorldHint: false,
|
|
@@ -9065,6 +9237,11 @@ var makeGetEnvironmentContract = (ids) => {
|
|
|
9065
9237
|
});
|
|
9066
9238
|
const output = makeEnvironmentResourceSchema(ids);
|
|
9067
9239
|
return {
|
|
9240
|
+
annotationJustifications: {
|
|
9241
|
+
destructiveHint: "Does not alter environment settings or concurrency limits.",
|
|
9242
|
+
openWorldHint: "Reads QA Wolf environment state without updating the connected Git provider.",
|
|
9243
|
+
readOnlyHint: "Retrieves an environment's configuration, run health and code-reconciliation state."
|
|
9244
|
+
},
|
|
9068
9245
|
annotations: {
|
|
9069
9246
|
destructiveHint: false,
|
|
9070
9247
|
openWorldHint: false,
|
|
@@ -9086,6 +9263,11 @@ var makeListEnvironmentVariableNamesContract = (ids) => {
|
|
|
9086
9263
|
variableNames: array(string2()).describe("Names of the environment's variables, sorted alphabetically. Values are never returned.")
|
|
9087
9264
|
});
|
|
9088
9265
|
return {
|
|
9266
|
+
annotationJustifications: {
|
|
9267
|
+
destructiveHint: "Does not alter variables or expose their stored values.",
|
|
9268
|
+
openWorldHint: "Reads private configuration names without changing external systems.",
|
|
9269
|
+
readOnlyHint: "Lists available environment variable names without retrieving their values."
|
|
9270
|
+
},
|
|
9089
9271
|
annotations: {
|
|
9090
9272
|
destructiveHint: false,
|
|
9091
9273
|
openWorldHint: false,
|
|
@@ -9109,6 +9291,11 @@ var makeSetEnvironmentVariableContract = (ids) => {
|
|
|
9109
9291
|
name: string2().describe("The stored variable name after whitespace is replaced with underscores and letters are uppercased.")
|
|
9110
9292
|
});
|
|
9111
9293
|
return {
|
|
9294
|
+
annotationJustifications: {
|
|
9295
|
+
destructiveHint: "Can overwrite an existing variable value, while an unchanged value is skipped.",
|
|
9296
|
+
openWorldHint: "Changes stored QA Wolf configuration rather than submitting forms or publishing content.",
|
|
9297
|
+
readOnlyHint: "Creates or replaces a named environment variable without returning its value."
|
|
9298
|
+
},
|
|
9112
9299
|
annotations: {
|
|
9113
9300
|
destructiveHint: true,
|
|
9114
9301
|
openWorldHint: false,
|
|
@@ -9136,6 +9323,11 @@ var makeUpdateEnvironmentContract = (ids) => {
|
|
|
9136
9323
|
});
|
|
9137
9324
|
const output = makeEnvironmentResourceSchema(ids);
|
|
9138
9325
|
return {
|
|
9326
|
+
annotationJustifications: {
|
|
9327
|
+
destructiveHint: "Can overwrite existing environment settings and affect future run capacity.",
|
|
9328
|
+
openWorldHint: "Changes private environment settings without publishing code or contacting application users.",
|
|
9329
|
+
readOnlyHint: "Updates an environment's name or run concurrency limit."
|
|
9330
|
+
},
|
|
9139
9331
|
annotations: {
|
|
9140
9332
|
destructiveHint: true,
|
|
9141
9333
|
openWorldHint: false,
|
|
@@ -9163,6 +9355,11 @@ var makeCreateTagContract = (ids) => {
|
|
|
9163
9355
|
});
|
|
9164
9356
|
const output = makeTagResourceSchema();
|
|
9165
9357
|
return {
|
|
9358
|
+
annotationJustifications: {
|
|
9359
|
+
destructiveHint: "Creates a tag without deleting existing tags or flow associations.",
|
|
9360
|
+
openWorldHint: "Adds private QA Wolf metadata without publishing to an external application.",
|
|
9361
|
+
readOnlyHint: "Creates a workspace tag for grouping and selecting flows."
|
|
9362
|
+
},
|
|
9166
9363
|
annotations: {
|
|
9167
9364
|
destructiveHint: false,
|
|
9168
9365
|
openWorldHint: false,
|
|
@@ -9196,6 +9393,11 @@ var makeAddTagToFlowsContract = (ids) => {
|
|
|
9196
9393
|
})
|
|
9197
9394
|
});
|
|
9198
9395
|
return {
|
|
9396
|
+
annotationJustifications: {
|
|
9397
|
+
destructiveHint: "Adds associations without removing existing tags.",
|
|
9398
|
+
openWorldHint: "Changes private flow-tag associations without running flows or publishing code.",
|
|
9399
|
+
readOnlyHint: "Adds an existing tag to selected flows and skips flows already carrying it."
|
|
9400
|
+
},
|
|
9199
9401
|
annotations: {
|
|
9200
9402
|
destructiveHint: false,
|
|
9201
9403
|
openWorldHint: false,
|
|
@@ -9250,6 +9452,11 @@ var makeListFlowsContract = (ids) => {
|
|
|
9250
9452
|
}))
|
|
9251
9453
|
});
|
|
9252
9454
|
return {
|
|
9455
|
+
annotationJustifications: {
|
|
9456
|
+
destructiveHint: "Does not change flow code, readiness or tags.",
|
|
9457
|
+
openWorldHint: "Reads flow records without pushing code or executing application actions.",
|
|
9458
|
+
readOnlyHint: "Lists flows at an environment's reconciled commit or on a selected AI task branch."
|
|
9459
|
+
},
|
|
9253
9460
|
annotations: {
|
|
9254
9461
|
destructiveHint: false,
|
|
9255
9462
|
openWorldHint: false,
|
|
@@ -9276,6 +9483,11 @@ var makeRemoveTagFromFlowsContract = (ids) => {
|
|
|
9276
9483
|
})
|
|
9277
9484
|
});
|
|
9278
9485
|
return {
|
|
9486
|
+
annotationJustifications: {
|
|
9487
|
+
destructiveHint: "Deletes existing tag associations and skips flows that do not carry the tag.",
|
|
9488
|
+
openWorldHint: "Changes private flow-tag associations without updating external services.",
|
|
9489
|
+
readOnlyHint: "Removes a selected tag from specified flows."
|
|
9490
|
+
},
|
|
9279
9491
|
annotations: {
|
|
9280
9492
|
destructiveHint: true,
|
|
9281
9493
|
openWorldHint: false,
|
|
@@ -9305,6 +9517,11 @@ var makeUpdateFlowContract = (ids) => {
|
|
|
9305
9517
|
})
|
|
9306
9518
|
});
|
|
9307
9519
|
return {
|
|
9520
|
+
annotationJustifications: {
|
|
9521
|
+
destructiveHint: "Overwrites readiness and can deactivate a flow that was active.",
|
|
9522
|
+
openWorldHint: "Changes private readiness state without itself executing the flow or publishing code.",
|
|
9523
|
+
readOnlyHint: "Changes a flow between draft and active readiness."
|
|
9524
|
+
},
|
|
9308
9525
|
annotations: {
|
|
9309
9526
|
destructiveHint: true,
|
|
9310
9527
|
openWorldHint: false,
|
|
@@ -9327,6 +9544,7 @@ var issuePrioritySchema = _enum([
|
|
|
9327
9544
|
"urgent"
|
|
9328
9545
|
]);
|
|
9329
9546
|
var issueStatusSchema = _enum([
|
|
9547
|
+
"backlog",
|
|
9330
9548
|
"pending",
|
|
9331
9549
|
"inProgress",
|
|
9332
9550
|
"paused",
|
|
@@ -9335,7 +9553,12 @@ var issueStatusSchema = _enum([
|
|
|
9335
9553
|
"archived"
|
|
9336
9554
|
]);
|
|
9337
9555
|
var publicIssueTypeSchema = _enum(["bug", "coverageRequest", "maintenance"]);
|
|
9338
|
-
var openIssueStatuses = [
|
|
9556
|
+
var openIssueStatuses = [
|
|
9557
|
+
"backlog",
|
|
9558
|
+
"pending",
|
|
9559
|
+
"inProgress",
|
|
9560
|
+
"paused"
|
|
9561
|
+
];
|
|
9339
9562
|
var makeIssueResourceSchema = (ids) => resource({
|
|
9340
9563
|
coveredFlowIds: array(ids.flow).describe("The flows a coverage request covers. Always empty on bug and maintenance reports, whose flows are listed under reproductions."),
|
|
9341
9564
|
createdAt: exports_coerce.date().describe("When the issue was created."),
|
|
@@ -9357,7 +9580,7 @@ var makeIssueResourceSchema = (ids) => resource({
|
|
|
9357
9580
|
var makeFindIssuesContract = (ids) => {
|
|
9358
9581
|
const input = object({
|
|
9359
9582
|
...makePaginationInputFields({ defaultLimit: 20, maxLimit: 100 }),
|
|
9360
|
-
statuses: array(issueStatusSchema).min(1).default([...openIssueStatuses]).describe("Issue statuses to include. Defaults to pending, in-progress, and paused issues."),
|
|
9583
|
+
statuses: array(issueStatusSchema).min(1).default([...openIssueStatuses]).describe("Issue statuses to include. Defaults to backlog, pending, in-progress, and paused issues."),
|
|
9361
9584
|
type: publicIssueTypeSchema.describe("The issue type to include: bug report, maintenance report, or coverage request."),
|
|
9362
9585
|
workspaceId: ids.workspace.optional().describe("The workspace whose issues to list. Required when authenticating with an organization or user API key.")
|
|
9363
9586
|
});
|
|
@@ -9366,6 +9589,11 @@ var makeFindIssuesContract = (ids) => {
|
|
|
9366
9589
|
nextCursor: nextCursorSchema
|
|
9367
9590
|
});
|
|
9368
9591
|
return {
|
|
9592
|
+
annotationJustifications: {
|
|
9593
|
+
destructiveHint: "Does not edit issue details, statuses or coverage associations.",
|
|
9594
|
+
openWorldHint: "Reads QA Wolf issue records without publishing updates to linked trackers.",
|
|
9595
|
+
readOnlyHint: "Lists workspace bug reports, maintenance reports or coverage requests."
|
|
9596
|
+
},
|
|
9369
9597
|
annotations: {
|
|
9370
9598
|
destructiveHint: false,
|
|
9371
9599
|
openWorldHint: false,
|
|
@@ -9386,6 +9614,11 @@ var makeGetIssueContract = (ids) => {
|
|
|
9386
9614
|
issue: makeIssueResourceSchema(ids)
|
|
9387
9615
|
});
|
|
9388
9616
|
return {
|
|
9617
|
+
annotationJustifications: {
|
|
9618
|
+
destructiveHint: "Does not modify or remove the issue.",
|
|
9619
|
+
openWorldHint: "Reads the QA Wolf issue without changing linked external systems.",
|
|
9620
|
+
readOnlyHint: "Retrieves one issue and its associated details."
|
|
9621
|
+
},
|
|
9389
9622
|
annotations: {
|
|
9390
9623
|
destructiveHint: false,
|
|
9391
9624
|
openWorldHint: false,
|
|
@@ -9455,9 +9688,18 @@ var makeGetInvestigationContract = (ids) => {
|
|
|
9455
9688
|
findings: array(makeInvestigationFindingSchema(ids)),
|
|
9456
9689
|
runId: ids.run,
|
|
9457
9690
|
sessionId: ids.chatSession.optional().describe("The investigation session. Absent when the run has none."),
|
|
9458
|
-
status: _enum(["investigating", "finished", "not-investigated"]).describe('Whether the
|
|
9691
|
+
status: _enum(["investigating", "finished", "not-investigated"]).describe('Whether the lead or any child investigator is still working. "not-investigated" when the run has no investigation.'),
|
|
9692
|
+
subSessions: array(object({
|
|
9693
|
+
sessionId: ids.chatSession,
|
|
9694
|
+
status: agentSessionStatusSchema
|
|
9695
|
+
})).optional().describe("All child investigators, including sessions not attached to findings yet. Send instructions to each sessionId with agent.send.")
|
|
9459
9696
|
}, { urlFieldDescription: "The run in the QA Wolf app." });
|
|
9460
9697
|
return {
|
|
9698
|
+
annotationJustifications: {
|
|
9699
|
+
destructiveHint: "Does not answer, dispute or change the investigation.",
|
|
9700
|
+
openWorldHint: "Reads recorded QA Wolf findings without changing the application under test.",
|
|
9701
|
+
readOnlyHint: "Retrieves an investigation's findings, open questions and pending answers."
|
|
9702
|
+
},
|
|
9461
9703
|
annotations: {
|
|
9462
9704
|
destructiveHint: false,
|
|
9463
9705
|
openWorldHint: false,
|
|
@@ -9486,6 +9728,11 @@ var makeAddFlowsToIssueContract = (ids) => {
|
|
|
9486
9728
|
issue: makeIssueResourceSchema(ids)
|
|
9487
9729
|
});
|
|
9488
9730
|
return {
|
|
9731
|
+
annotationJustifications: {
|
|
9732
|
+
destructiveHint: "Adds coverage associations without removing existing ones.",
|
|
9733
|
+
openWorldHint: "Changes private coverage associations without publishing an external issue update.",
|
|
9734
|
+
readOnlyHint: "Adds existing flows to a coverage request's covered-flow set."
|
|
9735
|
+
},
|
|
9489
9736
|
annotations: {
|
|
9490
9737
|
destructiveHint: false,
|
|
9491
9738
|
openWorldHint: false,
|
|
@@ -9529,6 +9776,11 @@ var makeCreateIssueContract = (ids) => {
|
|
|
9529
9776
|
issue: makeIssueResourceSchema(ids)
|
|
9530
9777
|
});
|
|
9531
9778
|
return {
|
|
9779
|
+
annotationJustifications: {
|
|
9780
|
+
destructiveHint: "Configured notifications can send irreversible messages even though the QA Wolf issue itself is new.",
|
|
9781
|
+
openWorldHint: "Issue creation can send messages or synchronize records through connected communication and issue-tracking services.",
|
|
9782
|
+
readOnlyHint: "Creates a bug or coverage request and can start configured issue notifications."
|
|
9783
|
+
},
|
|
9532
9784
|
annotations: {
|
|
9533
9785
|
destructiveHint: true,
|
|
9534
9786
|
openWorldHint: true,
|
|
@@ -9553,6 +9805,11 @@ var makeRemoveFlowsFromIssueContract = (ids) => {
|
|
|
9553
9805
|
issue: makeIssueResourceSchema(ids)
|
|
9554
9806
|
});
|
|
9555
9807
|
return {
|
|
9808
|
+
annotationJustifications: {
|
|
9809
|
+
destructiveHint: "Deletes existing coverage associations while leaving already-unassociated flows unchanged.",
|
|
9810
|
+
openWorldHint: "Changes private coverage associations without publishing to an external tracker.",
|
|
9811
|
+
readOnlyHint: "Removes selected flows from a coverage request's covered-flow set."
|
|
9812
|
+
},
|
|
9556
9813
|
annotations: {
|
|
9557
9814
|
destructiveHint: true,
|
|
9558
9815
|
openWorldHint: true,
|
|
@@ -9583,6 +9840,11 @@ var makeUpdateIssueContract = (ids) => {
|
|
|
9583
9840
|
issue: makeIssueResourceSchema(ids)
|
|
9584
9841
|
});
|
|
9585
9842
|
return {
|
|
9843
|
+
annotationJustifications: {
|
|
9844
|
+
destructiveHint: "Can overwrite existing issue fields or send irreversible integration messages.",
|
|
9845
|
+
openWorldHint: "Issue changes can update connected issue trackers and communication services.",
|
|
9846
|
+
readOnlyHint: "Updates issue details, priority or status and can trigger integration updates."
|
|
9847
|
+
},
|
|
9586
9848
|
annotations: {
|
|
9587
9849
|
destructiveHint: true,
|
|
9588
9850
|
openWorldHint: true,
|
|
@@ -9659,6 +9921,11 @@ var makeFindLegacyTriggersContract = (ids) => {
|
|
|
9659
9921
|
legacyTriggers: array(makeLegacyTriggerSchema(ids)).describe("The workspace's legacy triggers, by name.")
|
|
9660
9922
|
});
|
|
9661
9923
|
return {
|
|
9924
|
+
annotationJustifications: {
|
|
9925
|
+
destructiveHint: "Does not pause, resume or change any trigger.",
|
|
9926
|
+
openWorldHint: "Reads private QA Wolf trigger configuration without starting external work.",
|
|
9927
|
+
readOnlyHint: "Lists a workspace's legacy per-environment triggers."
|
|
9928
|
+
},
|
|
9662
9929
|
annotations: {
|
|
9663
9930
|
destructiveHint: false,
|
|
9664
9931
|
openWorldHint: false,
|
|
@@ -9683,6 +9950,11 @@ var makeLifecycleShape = (ids) => ({
|
|
|
9683
9950
|
var makePauseLegacyTriggerContract = (ids) => {
|
|
9684
9951
|
const { input, output } = makeLifecycleShape(ids);
|
|
9685
9952
|
return {
|
|
9953
|
+
annotationJustifications: {
|
|
9954
|
+
destructiveHint: "Disables future automatic execution for the legacy trigger and its pull request copies until it is resumed.",
|
|
9955
|
+
openWorldHint: "Changes private QA Wolf scheduling state without starting external work.",
|
|
9956
|
+
readOnlyHint: "Pauses an existing legacy trigger so it stops starting new work."
|
|
9957
|
+
},
|
|
9686
9958
|
annotations: {
|
|
9687
9959
|
destructiveHint: true,
|
|
9688
9960
|
openWorldHint: false,
|
|
@@ -9698,6 +9970,11 @@ var makePauseLegacyTriggerContract = (ids) => {
|
|
|
9698
9970
|
var makeResumeLegacyTriggerContract = (ids) => {
|
|
9699
9971
|
const { input, output } = makeLifecycleShape(ids);
|
|
9700
9972
|
return {
|
|
9973
|
+
annotationJustifications: {
|
|
9974
|
+
destructiveHint: "Enables automatic test execution that can overwrite or delete application data.",
|
|
9975
|
+
openWorldHint: "Resumed execution can change the application under test and update connected integrations.",
|
|
9976
|
+
readOnlyHint: "Reactivates a legacy trigger and its pull request copies so future schedules or deployments can start runs."
|
|
9977
|
+
},
|
|
9701
9978
|
annotations: {
|
|
9702
9979
|
destructiveHint: true,
|
|
9703
9980
|
openWorldHint: true,
|
|
@@ -9748,6 +10025,11 @@ var makeAcceptScreenshotBaselineContract = (ids) => {
|
|
|
9748
10025
|
})
|
|
9749
10026
|
]);
|
|
9750
10027
|
return {
|
|
10028
|
+
annotationJustifications: {
|
|
10029
|
+
destructiveHint: "Replaces the workspace's screenshot baseline, which changes what every later run compares with.",
|
|
10030
|
+
openWorldHint: "Changes private QA Wolf baseline storage without starting external work.",
|
|
10031
|
+
readOnlyHint: "Makes the new screenshot of a failed comparison the baseline."
|
|
10032
|
+
},
|
|
9751
10033
|
annotations: {
|
|
9752
10034
|
destructiveHint: true,
|
|
9753
10035
|
openWorldHint: false,
|
|
@@ -9772,6 +10054,11 @@ var makeDiagnoseRunContract = (ids) => {
|
|
|
9772
10054
|
issue: makeIssueResourceSchema(ids)
|
|
9773
10055
|
});
|
|
9774
10056
|
return {
|
|
10057
|
+
annotationJustifications: {
|
|
10058
|
+
destructiveHint: "Can replace a flow's existing diagnosis association and change externally reported run information.",
|
|
10059
|
+
openWorldHint: "Recorded diagnosis changes can update run-related messages in configured external integrations.",
|
|
10060
|
+
readOnlyHint: "Records failed flows as reproductions of a selected bug or maintenance issue."
|
|
10061
|
+
},
|
|
9775
10062
|
annotations: {
|
|
9776
10063
|
destructiveHint: true,
|
|
9777
10064
|
openWorldHint: true,
|
|
@@ -9802,6 +10089,11 @@ var makeFindRunsContract = (ids) => {
|
|
|
9802
10089
|
}, { urlFieldDescription: "Absolute URL of the run page." })).describe("The environment's runs, newest first. Per-flow results are available via run.get.")
|
|
9803
10090
|
});
|
|
9804
10091
|
return {
|
|
10092
|
+
annotationJustifications: {
|
|
10093
|
+
destructiveHint: "Does not stop runs, overwrite results or change diagnoses.",
|
|
10094
|
+
openWorldHint: "Reads private run records without executing application actions.",
|
|
10095
|
+
readOnlyHint: "Lists recent environment runs without starting or retrying them."
|
|
10096
|
+
},
|
|
9805
10097
|
annotations: {
|
|
9806
10098
|
destructiveHint: false,
|
|
9807
10099
|
openWorldHint: false,
|
|
@@ -9863,6 +10155,7 @@ var makeGetRunContract = (ids) => {
|
|
|
9863
10155
|
}),
|
|
9864
10156
|
object({
|
|
9865
10157
|
attemptId: ids.runAttempt.optional(),
|
|
10158
|
+
canceledReason: string2().min(1).optional().describe("Why the attempt was canceled. userCanceled means a person stopped it; do not immediately retry that activity."),
|
|
9866
10159
|
completedAt: exports_iso.datetime().optional(),
|
|
9867
10160
|
kind: automatedKind,
|
|
9868
10161
|
startedAt: exports_iso.datetime().optional(),
|
|
@@ -9899,6 +10192,11 @@ var makeGetRunContract = (ids) => {
|
|
|
9899
10192
|
runId: ids.run.describe("The run this response describes. Treat it as canonical: it can differ from the id you asked for. A deploy notification returns a run id before the run exists, and if a second notification for the same commit is folded into an earlier run, that id resolves to the earlier run instead.")
|
|
9900
10193
|
}, { urlFieldDescription: "Absolute URL of the run page." });
|
|
9901
10194
|
return {
|
|
10195
|
+
annotationJustifications: {
|
|
10196
|
+
destructiveHint: "Does not retry, cancel or alter the run.",
|
|
10197
|
+
openWorldHint: "Reads recorded QA Wolf results without changing the application under test.",
|
|
10198
|
+
readOnlyHint: "Retrieves a run's status, per-flow results and result links."
|
|
10199
|
+
},
|
|
9902
10200
|
annotations: {
|
|
9903
10201
|
destructiveHint: false,
|
|
9904
10202
|
openWorldHint: false,
|
|
@@ -9976,6 +10274,11 @@ var makeGetRunAttemptArtifactsContract = (ids) => {
|
|
|
9976
10274
|
})
|
|
9977
10275
|
]);
|
|
9978
10276
|
return {
|
|
10277
|
+
annotationJustifications: {
|
|
10278
|
+
destructiveHint: "Does not retry, cancel or alter the run attempt.",
|
|
10279
|
+
openWorldHint: "Reads recorded QA Wolf artifacts without changing the application under test.",
|
|
10280
|
+
readOnlyHint: "Retrieves a finished attempt's metadata and signed artifact URLs."
|
|
10281
|
+
},
|
|
9979
10282
|
annotations: {
|
|
9980
10283
|
destructiveHint: false,
|
|
9981
10284
|
openWorldHint: false,
|
|
@@ -10000,6 +10303,11 @@ var makeOptOutOfInvestigationRunContract = (ids) => {
|
|
|
10000
10303
|
runId: ids.run
|
|
10001
10304
|
}, { urlFieldDescription: "Absolute URL of the run page." });
|
|
10002
10305
|
return {
|
|
10306
|
+
annotationJustifications: {
|
|
10307
|
+
destructiveHint: "Ends the investigation of the selected failures and changes externally reported run information.",
|
|
10308
|
+
openWorldHint: "Recorded opt-outs can update run-related messages in configured external integrations.",
|
|
10309
|
+
readOnlyHint: "Records failed flows as needing no bug or maintenance report."
|
|
10310
|
+
},
|
|
10003
10311
|
annotations: {
|
|
10004
10312
|
destructiveHint: true,
|
|
10005
10313
|
openWorldHint: true,
|
|
@@ -10024,6 +10332,11 @@ var makeReattemptRunContract = (ids) => {
|
|
|
10024
10332
|
runId: ids.run
|
|
10025
10333
|
}, { urlFieldDescription: "Absolute URL of the run page." });
|
|
10026
10334
|
return {
|
|
10335
|
+
annotationJustifications: {
|
|
10336
|
+
destructiveHint: "Repeated execution can overwrite or delete application data and creates additional billed work.",
|
|
10337
|
+
openWorldHint: "New attempts execute against the application under test and can affect connected services.",
|
|
10338
|
+
readOnlyHint: "Enqueues new attempts for eligible failed or canceled flows using the latest code."
|
|
10339
|
+
},
|
|
10027
10340
|
annotations: {
|
|
10028
10341
|
destructiveHint: true,
|
|
10029
10342
|
openWorldHint: true,
|
|
@@ -10063,6 +10376,11 @@ var makeRestoreScreenshotBaselineContract = (ids) => {
|
|
|
10063
10376
|
})
|
|
10064
10377
|
]);
|
|
10065
10378
|
return {
|
|
10379
|
+
annotationJustifications: {
|
|
10380
|
+
destructiveHint: "Replaces the current screenshot baseline with the one it replaced, which changes what every later run compares with.",
|
|
10381
|
+
openWorldHint: "Changes private QA Wolf baseline storage without starting external work.",
|
|
10382
|
+
readOnlyHint: "Puts back the screenshot baseline that an accepted comparison replaced."
|
|
10383
|
+
},
|
|
10066
10384
|
annotations: {
|
|
10067
10385
|
destructiveHint: true,
|
|
10068
10386
|
openWorldHint: false,
|
|
@@ -10084,6 +10402,11 @@ var makeStopRunContract = (ids) => {
|
|
|
10084
10402
|
status: _enum(["accepted", "already-finished", "execution-not-found"]).describe('"accepted" means stopping was requested; poll run.get for the final result. "already-finished" means the run has already finished and its result is unchanged. "execution-not-found" means the run exists but no execution was found to stop; it may still be starting or may no longer be available. No stop request was accepted in that case.')
|
|
10085
10403
|
}, { urlFieldDescription: "Absolute URL of the run page." });
|
|
10086
10404
|
return {
|
|
10405
|
+
annotationJustifications: {
|
|
10406
|
+
destructiveHint: "Interrupts unfinished work, while finished results remain intact and repeated stop requests are supported.",
|
|
10407
|
+
openWorldHint: "Run status changes can update messages or commit statuses in configured external integrations.",
|
|
10408
|
+
readOnlyHint: "Requests asynchronous cancellation of a run, queued flows and automatic retries."
|
|
10409
|
+
},
|
|
10087
10410
|
annotations: {
|
|
10088
10411
|
destructiveHint: true,
|
|
10089
10412
|
openWorldHint: true,
|
|
@@ -10122,6 +10445,11 @@ var makeEvaluateSnippetOnRunnerContract = (ids) => {
|
|
|
10122
10445
|
])
|
|
10123
10446
|
]);
|
|
10124
10447
|
return {
|
|
10448
|
+
annotationJustifications: {
|
|
10449
|
+
destructiveHint: "Code can overwrite or delete runner or application data, and a timeout does not prove execution stopped.",
|
|
10450
|
+
openWorldHint: "Supplied code can submit application actions or contact and change external services.",
|
|
10451
|
+
readOnlyHint: "Executes supplied code against the interactive runner's current session."
|
|
10452
|
+
},
|
|
10125
10453
|
annotations: {
|
|
10126
10454
|
destructiveHint: true,
|
|
10127
10455
|
openWorldHint: true,
|
|
@@ -10155,6 +10483,11 @@ var makeGetRunnerContract = (ids) => {
|
|
|
10155
10483
|
})
|
|
10156
10484
|
]);
|
|
10157
10485
|
return {
|
|
10486
|
+
annotationJustifications: {
|
|
10487
|
+
destructiveHint: "Does not stop the runner or change its execution.",
|
|
10488
|
+
openWorldHint: "Reads private runner placement state without acting on external applications.",
|
|
10489
|
+
readOnlyHint: "Checks whether a runner exists without starting it or refreshing its inactivity timer."
|
|
10490
|
+
},
|
|
10158
10491
|
annotations: {
|
|
10159
10492
|
destructiveHint: false,
|
|
10160
10493
|
openWorldHint: false,
|
|
@@ -10198,6 +10531,11 @@ var makeHighlightSelectorOnRunnerContract = (ids) => {
|
|
|
10198
10531
|
})
|
|
10199
10532
|
]);
|
|
10200
10533
|
return {
|
|
10534
|
+
annotationJustifications: {
|
|
10535
|
+
destructiveHint: "Only replaces or clears the inspection overlay rather than deleting application data.",
|
|
10536
|
+
openWorldHint: "Draws a private inspection overlay without submitting an application form.",
|
|
10537
|
+
readOnlyHint: "Changes the visual selector highlight on the runner's live page."
|
|
10538
|
+
},
|
|
10201
10539
|
annotations: {
|
|
10202
10540
|
destructiveHint: false,
|
|
10203
10541
|
openWorldHint: false,
|
|
@@ -10231,6 +10569,11 @@ var makeImportPackageOnRunnerContract = (ids) => {
|
|
|
10231
10569
|
})
|
|
10232
10570
|
]);
|
|
10233
10571
|
return {
|
|
10572
|
+
annotationJustifications: {
|
|
10573
|
+
destructiveHint: "Can replace existing dependencies or execute commands that overwrite or delete runner or application data.",
|
|
10574
|
+
openWorldHint: "Installation can contact external services and execute commands that change third-party systems.",
|
|
10575
|
+
readOnlyHint: "Installs caller-selected dependencies into a live runner and can execute commands with the runner's access."
|
|
10576
|
+
},
|
|
10234
10577
|
annotations: {
|
|
10235
10578
|
destructiveHint: true,
|
|
10236
10579
|
openWorldHint: true,
|
|
@@ -10260,9 +10603,14 @@ var makeLaunchRunnerContract = (ids) => {
|
|
|
10260
10603
|
outcome: literal("success")
|
|
10261
10604
|
});
|
|
10262
10605
|
return {
|
|
10606
|
+
annotationJustifications: {
|
|
10607
|
+
destructiveHint: "Starts billable resource consumption that cannot be undone by later termination.",
|
|
10608
|
+
openWorldHint: "Allocates a private QA Wolf runner without itself navigating to an application or submitting forms.",
|
|
10609
|
+
readOnlyHint: "Starts an interactive runner and allocates billed resources unless the requested runner is already running."
|
|
10610
|
+
},
|
|
10263
10611
|
annotations: {
|
|
10264
10612
|
destructiveHint: true,
|
|
10265
|
-
openWorldHint:
|
|
10613
|
+
openWorldHint: true,
|
|
10266
10614
|
readOnlyHint: false
|
|
10267
10615
|
},
|
|
10268
10616
|
description: "Launch an interactive runner on the caller's team under an id the caller chooses. Send `initialUrl` so its browser comes up on the page the work starts from, which saves a separate navigation and the browser's cold start. Launching the same id again returns the runner already running rather than starting a second one, and the same id with a different runnerName is refused. A runner is not permanent: it terminates on its own after a period of inactivity, and launching the same id after that starts and bills a new runner, so read `alreadyRunning` to tell which happened. A success means the runner is answering: the call waits for the pod it started to come up, so the very next call to the runner reaches it. If the pod does not come up in time the call fails instead, leaving the runner running, and launching the same id again attaches to it.",
|
|
@@ -10283,6 +10631,11 @@ var makeTerminateRunnerContract = (ids) => {
|
|
|
10283
10631
|
wasRunning: boolean2().describe("False when no running runner had this id: it was already terminated, was never launched, or terminated on its own after inactivity. These are not distinguished, because the run system keeps no record of a runner once it is gone. Not an error, and a retry needs no special handling.")
|
|
10284
10632
|
});
|
|
10285
10633
|
return {
|
|
10634
|
+
annotationJustifications: {
|
|
10635
|
+
destructiveHint: "Terminates running work and discards the live session, while an absent runner is left absent.",
|
|
10636
|
+
openWorldHint: "Stops a private QA Wolf runner without itself publishing to third-party services.",
|
|
10637
|
+
readOnlyHint: "Ends a selected interactive runner and the resources hosting it."
|
|
10638
|
+
},
|
|
10286
10639
|
annotations: {
|
|
10287
10640
|
destructiveHint: true,
|
|
10288
10641
|
openWorldHint: false,
|
|
@@ -10306,6 +10659,11 @@ var makeListRunnersContract = (ids) => {
|
|
|
10306
10659
|
runners: array(makeRunnerSchema()).describe("The runners running right now, in no particular order. Each entry carries the same fields a launch reports, so any of them can be addressed like a runner you launched yourself.")
|
|
10307
10660
|
});
|
|
10308
10661
|
return {
|
|
10662
|
+
annotationJustifications: {
|
|
10663
|
+
destructiveHint: "Does not interrupt or terminate any listed runner.",
|
|
10664
|
+
openWorldHint: "Reads private runner state without acting on third-party applications.",
|
|
10665
|
+
readOnlyHint: "Lists running workspace runners without starting them or refreshing their inactivity timers."
|
|
10666
|
+
},
|
|
10309
10667
|
annotations: {
|
|
10310
10668
|
destructiveHint: false,
|
|
10311
10669
|
openWorldHint: false,
|
|
@@ -10340,6 +10698,11 @@ var makePromoteSnapshotOnRunnerContract = (ids) => {
|
|
|
10340
10698
|
})
|
|
10341
10699
|
]);
|
|
10342
10700
|
return {
|
|
10701
|
+
annotationJustifications: {
|
|
10702
|
+
destructiveHint: "Overwrites an existing baseline, while a missing source snapshot leaves it unchanged.",
|
|
10703
|
+
openWorldHint: "Updates a stored test baseline rather than publishing to an external application.",
|
|
10704
|
+
readOnlyHint: "Replaces a named image-diff baseline with a screenshot produced by the runner."
|
|
10705
|
+
},
|
|
10343
10706
|
annotations: {
|
|
10344
10707
|
destructiveHint: true,
|
|
10345
10708
|
openWorldHint: false,
|
|
@@ -10365,6 +10728,11 @@ var makeReadRunnerJournalContract = (ids) => {
|
|
|
10365
10728
|
makeRunnerFailureSchema([runnerUnreachableFailureReason])
|
|
10366
10729
|
]);
|
|
10367
10730
|
return {
|
|
10731
|
+
annotationJustifications: {
|
|
10732
|
+
destructiveHint: "Does not erase journal entries or change run results, although the activity refresh can extend billed runtime.",
|
|
10733
|
+
openWorldHint: "Reads private runner history without submitting actions to external applications.",
|
|
10734
|
+
readOnlyHint: "Retrieves journal entries and refreshes activity, which can cancel an inactivity shutdown."
|
|
10735
|
+
},
|
|
10368
10736
|
annotations: {
|
|
10369
10737
|
destructiveHint: false,
|
|
10370
10738
|
openWorldHint: false,
|
|
@@ -10443,6 +10811,11 @@ var makeRunFlowOnRunnerContract = (ids) => {
|
|
|
10443
10811
|
failure
|
|
10444
10812
|
]);
|
|
10445
10813
|
return {
|
|
10814
|
+
annotationJustifications: {
|
|
10815
|
+
destructiveHint: "Test code can overwrite or delete application data, and uncertain acceptance must be checked before resubmission.",
|
|
10816
|
+
openWorldHint: "Executed tests can submit forms and change the application under test or its connected services.",
|
|
10817
|
+
readOnlyHint: "Submits test files for full-flow or selected-line execution on an interactive runner."
|
|
10818
|
+
},
|
|
10446
10819
|
annotations: {
|
|
10447
10820
|
destructiveHint: true,
|
|
10448
10821
|
openWorldHint: true,
|
|
@@ -10470,6 +10843,11 @@ var makeStopRunOnRunnerContract = (ids) => {
|
|
|
10470
10843
|
makeRunnerFailureSchema([runnerUnreachableFailureReason])
|
|
10471
10844
|
]);
|
|
10472
10845
|
return {
|
|
10846
|
+
annotationJustifications: {
|
|
10847
|
+
destructiveHint: "Stops unfinished work where it is, while an already-idle runner is left idle.",
|
|
10848
|
+
openWorldHint: "Changes private execution state without itself posting external messages.",
|
|
10849
|
+
readOnlyHint: "Interrupts current execution while leaving the runner available."
|
|
10850
|
+
},
|
|
10473
10851
|
annotations: {
|
|
10474
10852
|
destructiveHint: true,
|
|
10475
10853
|
openWorldHint: false,
|
|
@@ -10500,6 +10878,11 @@ var makeTakeScreenshotOnRunnerContract = (ids) => {
|
|
|
10500
10878
|
])
|
|
10501
10879
|
]);
|
|
10502
10880
|
return {
|
|
10881
|
+
annotationJustifications: {
|
|
10882
|
+
destructiveHint: "Does not change application data or stop execution, although the activity refresh can extend billed runtime.",
|
|
10883
|
+
openWorldHint: "Reads the private runner display without submitting an external application action.",
|
|
10884
|
+
readOnlyHint: "Captures the runner screen and refreshes activity, which can cancel an inactivity shutdown."
|
|
10885
|
+
},
|
|
10503
10886
|
annotations: {
|
|
10504
10887
|
destructiveHint: false,
|
|
10505
10888
|
openWorldHint: false,
|
|
@@ -10551,6 +10934,11 @@ var makeListSkillsContract = () => {
|
|
|
10551
10934
|
skills: array(skillSummary).describe("Every skill the server serves, in catalog order.")
|
|
10552
10935
|
});
|
|
10553
10936
|
return {
|
|
10937
|
+
annotationJustifications: {
|
|
10938
|
+
destructiveHint: "Does not change any skill or workspace data.",
|
|
10939
|
+
openWorldHint: "Reads the QA Wolf skill catalog without calling external services.",
|
|
10940
|
+
readOnlyHint: "Lists the QA Wolf skills with their names and descriptions."
|
|
10941
|
+
},
|
|
10554
10942
|
annotations: readOnlyAnnotations,
|
|
10555
10943
|
description: "List the QA Wolf skills, each with its name and the description that says when to use it. A skill is the instructions a coding agent follows for one kind of QA Wolf work, such as onboarding an application, creating a flow, repairing a failing flow, or setting up triggers. Call this before any QA Wolf work, pick the skill whose description matches the request, and read it with skill.get.",
|
|
10556
10944
|
input,
|
|
@@ -10569,6 +10957,11 @@ var makeGetSkillContract = () => {
|
|
|
10569
10957
|
})).describe("The files the skill links to under its directory.")
|
|
10570
10958
|
});
|
|
10571
10959
|
return {
|
|
10960
|
+
annotationJustifications: {
|
|
10961
|
+
destructiveHint: "Does not change any skill or workspace data.",
|
|
10962
|
+
openWorldHint: "Reads the QA Wolf skill catalog without calling external services.",
|
|
10963
|
+
readOnlyHint: "Retrieves one QA Wolf skill's instructions and reference files."
|
|
10964
|
+
},
|
|
10572
10965
|
annotations: readOnlyAnnotations,
|
|
10573
10966
|
description: "Read a QA Wolf skill: the instructions a coding agent follows for one kind of QA Wolf work. The reply carries the skill's SKILL.md and every file under its references directory, so nothing else has to be fetched for it. Read the skill before starting the work it covers and follow it. A link in the reply of the form ../<skill>/SKILL.md names another skill, which this call reads by that name.",
|
|
10574
10967
|
input,
|
|
@@ -10597,6 +10990,11 @@ var makeListTagsContract = (ids) => {
|
|
|
10597
10990
|
})).describe("The team's tags, alphabetical by name.")
|
|
10598
10991
|
});
|
|
10599
10992
|
return {
|
|
10993
|
+
annotationJustifications: {
|
|
10994
|
+
destructiveHint: "Does not create, rename or remove tags.",
|
|
10995
|
+
openWorldHint: "Reads private tag metadata without changing connected services.",
|
|
10996
|
+
readOnlyHint: "Lists existing workspace tags by name."
|
|
10997
|
+
},
|
|
10600
10998
|
annotations: {
|
|
10601
10999
|
destructiveHint: false,
|
|
10602
11000
|
openWorldHint: false,
|
|
@@ -15307,4 +15705,4 @@ export {
|
|
|
15307
15705
|
createRunnerSdk
|
|
15308
15706
|
};
|
|
15309
15707
|
|
|
15310
|
-
//# debugId=
|
|
15708
|
+
//# debugId=ADFCE2FBF1F4DDA964756E2164756E21
|