@vm0/cli 9.74.4 → 9.75.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/index.js +1675 -592
- package/package.json +1 -1
package/index.js
CHANGED
|
@@ -47,7 +47,7 @@ if (DSN) {
|
|
|
47
47
|
Sentry.init({
|
|
48
48
|
dsn: DSN,
|
|
49
49
|
environment: process.env.SENTRY_ENVIRONMENT ?? "production",
|
|
50
|
-
release: "9.
|
|
50
|
+
release: "9.75.1",
|
|
51
51
|
sendDefaultPii: false,
|
|
52
52
|
tracesSampleRate: 0,
|
|
53
53
|
shutdownTimeout: 500,
|
|
@@ -66,7 +66,7 @@ if (DSN) {
|
|
|
66
66
|
}
|
|
67
67
|
});
|
|
68
68
|
Sentry.setContext("cli", {
|
|
69
|
-
version: "9.
|
|
69
|
+
version: "9.75.1",
|
|
70
70
|
command: process.argv.slice(2).join(" ")
|
|
71
71
|
});
|
|
72
72
|
Sentry.setContext("runtime", {
|
|
@@ -85,7 +85,7 @@ process.stdout.on("error", handleEpipe);
|
|
|
85
85
|
process.stderr.on("error", handleEpipe);
|
|
86
86
|
|
|
87
87
|
// src/index.ts
|
|
88
|
-
import { Command as
|
|
88
|
+
import { Command as Command93 } from "commander";
|
|
89
89
|
|
|
90
90
|
// src/lib/network/proxy.ts
|
|
91
91
|
import { EnvHttpProxyAgent, setGlobalDispatcher } from "undici";
|
|
@@ -2769,7 +2769,7 @@ function mpFirewall(type2, authHeaders, placeholders) {
|
|
|
2769
2769
|
{
|
|
2770
2770
|
base: getFirewallBaseUrl(type2),
|
|
2771
2771
|
auth: { headers: authHeaders },
|
|
2772
|
-
permissions: [{ name: "
|
|
2772
|
+
permissions: [{ name: "unrestricted", rules: ["ANY /{path*}"] }]
|
|
2773
2773
|
}
|
|
2774
2774
|
],
|
|
2775
2775
|
placeholders
|
|
@@ -3087,6 +3087,7 @@ var chatThreadListItemSchema = z18.object({
|
|
|
3087
3087
|
id: z18.string(),
|
|
3088
3088
|
title: z18.string().nullable(),
|
|
3089
3089
|
preview: z18.string().nullable(),
|
|
3090
|
+
agentComposeId: z18.string(),
|
|
3090
3091
|
createdAt: z18.string(),
|
|
3091
3092
|
updatedAt: z18.string()
|
|
3092
3093
|
});
|
|
@@ -3379,6 +3380,7 @@ var deployScheduleRequestSchema = z20.object({
|
|
|
3379
3380
|
intervalSeconds: z20.number().int().min(0).optional(),
|
|
3380
3381
|
timezone: z20.string().default("UTC"),
|
|
3381
3382
|
prompt: z20.string().min(1, "Prompt required"),
|
|
3383
|
+
description: z20.string().optional(),
|
|
3382
3384
|
appendSystemPrompt: z20.string().optional(),
|
|
3383
3385
|
// vars and secrets removed - now managed via server-side tables
|
|
3384
3386
|
artifactName: z20.string().optional(),
|
|
@@ -3417,6 +3419,7 @@ var scheduleResponseSchema = z20.object({
|
|
|
3417
3419
|
intervalSeconds: z20.number().nullable(),
|
|
3418
3420
|
timezone: z20.string(),
|
|
3419
3421
|
prompt: z20.string(),
|
|
3422
|
+
description: z20.string().nullable(),
|
|
3420
3423
|
appendSystemPrompt: z20.string().nullable(),
|
|
3421
3424
|
vars: z20.record(z20.string(), z20.string()).nullable(),
|
|
3422
3425
|
// Secret names only (values are never returned)
|
|
@@ -7209,6 +7212,498 @@ function resolveFirewallRef(input) {
|
|
|
7209
7212
|
return trimmed;
|
|
7210
7213
|
}
|
|
7211
7214
|
|
|
7215
|
+
// ../../packages/core/src/firewalls/confluence.generated.ts
|
|
7216
|
+
var confluenceFirewall = {
|
|
7217
|
+
name: "confluence",
|
|
7218
|
+
description: "Confluence Cloud API",
|
|
7219
|
+
placeholders: {
|
|
7220
|
+
CONFLUENCE_TOKEN: "ATATT3xVm0PlaceHolder000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
7221
|
+
},
|
|
7222
|
+
apis: [
|
|
7223
|
+
{
|
|
7224
|
+
base: "https://api.atlassian.com",
|
|
7225
|
+
auth: {
|
|
7226
|
+
headers: {
|
|
7227
|
+
Authorization: "Bearer ${{ secrets.CONFLUENCE_TOKEN }}"
|
|
7228
|
+
}
|
|
7229
|
+
},
|
|
7230
|
+
permissions: [
|
|
7231
|
+
{
|
|
7232
|
+
name: "unrestricted",
|
|
7233
|
+
description: "Allow all endpoints",
|
|
7234
|
+
rules: ["ANY /{path*}"]
|
|
7235
|
+
},
|
|
7236
|
+
{
|
|
7237
|
+
name: "manage:confluence-configuration",
|
|
7238
|
+
description: "Manage global settings.",
|
|
7239
|
+
rules: [
|
|
7240
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/settings/lookandfeel",
|
|
7241
|
+
"PUT /ex/confluence/{cloudId}/wiki/rest/api/settings/lookandfeel",
|
|
7242
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/settings/lookandfeel/custom",
|
|
7243
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/settings/lookandfeel/custom",
|
|
7244
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/settings/systemInfo",
|
|
7245
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/settings/theme",
|
|
7246
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/settings/theme/selected",
|
|
7247
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/settings/theme/{themeKey}"
|
|
7248
|
+
]
|
|
7249
|
+
},
|
|
7250
|
+
{
|
|
7251
|
+
name: "read:audit-log:confluence",
|
|
7252
|
+
description: "View audit records.",
|
|
7253
|
+
rules: [
|
|
7254
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/audit",
|
|
7255
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/audit",
|
|
7256
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/audit/export",
|
|
7257
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/audit/retention",
|
|
7258
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/audit/since"
|
|
7259
|
+
]
|
|
7260
|
+
},
|
|
7261
|
+
{
|
|
7262
|
+
name: "read:confluence-content.all",
|
|
7263
|
+
description: "Read all content, including content body (expansions permitted). Note, APIs using this scope may also return data allowed by read:confluence-space.summary. However, this scope is not a substitute for read:confluence-space.summary.",
|
|
7264
|
+
rules: [
|
|
7265
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/history/{version}/macro/id/{macroId}",
|
|
7266
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/history/{version}/macro/id/{macroId}/convert/async/{to}",
|
|
7267
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/history/{version}/macro/id/{macroId}/convert/{to}",
|
|
7268
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/restriction",
|
|
7269
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/restriction/byOperation",
|
|
7270
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/restriction/byOperation/{operationKey}",
|
|
7271
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/restriction/byOperation/{operationKey}/byGroupId/{groupId}",
|
|
7272
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/restriction/byOperation/{operationKey}/user",
|
|
7273
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/contentbody/convert/async/bulk/tasks",
|
|
7274
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/contentbody/convert/async/bulk/tasks",
|
|
7275
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/contentbody/convert/async/{id}",
|
|
7276
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/contentbody/convert/async/{to}",
|
|
7277
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/state/content"
|
|
7278
|
+
]
|
|
7279
|
+
},
|
|
7280
|
+
{
|
|
7281
|
+
name: "read:confluence-content.permission",
|
|
7282
|
+
description: "Read content permissions.",
|
|
7283
|
+
rules: [
|
|
7284
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/permission/check"
|
|
7285
|
+
]
|
|
7286
|
+
},
|
|
7287
|
+
{
|
|
7288
|
+
name: "read:confluence-content.summary",
|
|
7289
|
+
description: "Read a summary of the content, which is the content without expansions. Note, APIs using this scope may also return data allowed by read:confluence-space.summary. However, this scope is not a substitute for read:confluence-space.summary.",
|
|
7290
|
+
rules: [
|
|
7291
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/analytics/content/{contentId}/viewers",
|
|
7292
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/analytics/content/{contentId}/views",
|
|
7293
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/descendant",
|
|
7294
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/descendant/{type}",
|
|
7295
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/notification/child-created",
|
|
7296
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/notification/created",
|
|
7297
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/state",
|
|
7298
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/label",
|
|
7299
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/relation/{relationName}/from/{sourceType}/{sourceKey}/to/{targetType}",
|
|
7300
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/relation/{relationName}/from/{sourceType}/{sourceKey}/to/{targetType}/{targetKey}",
|
|
7301
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/relation/{relationName}/to/{targetType}/{targetKey}/from/{sourceType}",
|
|
7302
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/template/blueprint",
|
|
7303
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/template/page",
|
|
7304
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/template/{contentTemplateId}",
|
|
7305
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/user/watch/content/{contentId}",
|
|
7306
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/user/watch/label/{labelName}",
|
|
7307
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/user/watch/space/{spaceKey}"
|
|
7308
|
+
]
|
|
7309
|
+
},
|
|
7310
|
+
{
|
|
7311
|
+
name: "read:confluence-groups",
|
|
7312
|
+
description: "Read user groups.",
|
|
7313
|
+
rules: [
|
|
7314
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/group",
|
|
7315
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/group/by-id",
|
|
7316
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/group/picker",
|
|
7317
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/group/{groupId}/membersByGroupId"
|
|
7318
|
+
]
|
|
7319
|
+
},
|
|
7320
|
+
{
|
|
7321
|
+
name: "read:confluence-space.summary",
|
|
7322
|
+
description: "Read a summary of space information without expansions.",
|
|
7323
|
+
rules: [
|
|
7324
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/longtask/{id}",
|
|
7325
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/label",
|
|
7326
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/settings",
|
|
7327
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/state",
|
|
7328
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/state/settings",
|
|
7329
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/theme"
|
|
7330
|
+
]
|
|
7331
|
+
},
|
|
7332
|
+
{
|
|
7333
|
+
name: "read:confluence-user",
|
|
7334
|
+
description: "Read users.",
|
|
7335
|
+
rules: [
|
|
7336
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/user",
|
|
7337
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/user/anonymous",
|
|
7338
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/user/bulk",
|
|
7339
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/user/current",
|
|
7340
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/user/memberof"
|
|
7341
|
+
]
|
|
7342
|
+
},
|
|
7343
|
+
{
|
|
7344
|
+
name: "read:content-details:confluence",
|
|
7345
|
+
description: "View content details.",
|
|
7346
|
+
rules: ["GET /ex/confluence/{cloudId}/wiki/rest/api/search/user"]
|
|
7347
|
+
},
|
|
7348
|
+
{
|
|
7349
|
+
name: "read:content.metadata:confluence",
|
|
7350
|
+
description: "View content summaries.",
|
|
7351
|
+
rules: ["GET /ex/confluence/{cloudId}/wiki/rest/api/longtask"]
|
|
7352
|
+
},
|
|
7353
|
+
{
|
|
7354
|
+
name: "read:space.permission:confluence",
|
|
7355
|
+
description: "View space permissions.",
|
|
7356
|
+
rules: [
|
|
7357
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/permission",
|
|
7358
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/permission/custom-content"
|
|
7359
|
+
]
|
|
7360
|
+
},
|
|
7361
|
+
{
|
|
7362
|
+
name: "read:user:confluence",
|
|
7363
|
+
description: "View user details.",
|
|
7364
|
+
rules: [
|
|
7365
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/watch"
|
|
7366
|
+
]
|
|
7367
|
+
},
|
|
7368
|
+
{
|
|
7369
|
+
name: "read:user.property:confluence",
|
|
7370
|
+
description: "View user properties.",
|
|
7371
|
+
rules: [
|
|
7372
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/content-states",
|
|
7373
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/user/{userId}/property",
|
|
7374
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/user/{userId}/property/{key}"
|
|
7375
|
+
]
|
|
7376
|
+
},
|
|
7377
|
+
{
|
|
7378
|
+
name: "read:watcher:confluence",
|
|
7379
|
+
description: "View content watchers.",
|
|
7380
|
+
rules: [
|
|
7381
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/watch"
|
|
7382
|
+
]
|
|
7383
|
+
},
|
|
7384
|
+
{
|
|
7385
|
+
name: "readonly:content.attachment:confluence",
|
|
7386
|
+
description: "Download attachments of a Confluence page or blogpost that you have access to.",
|
|
7387
|
+
rules: [
|
|
7388
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/child/attachment/{attachmentId}/download"
|
|
7389
|
+
]
|
|
7390
|
+
},
|
|
7391
|
+
{
|
|
7392
|
+
name: "search:confluence",
|
|
7393
|
+
description: "Search Confluence. Note, APIs using this scope may also return data allowed by read:confluence-space.summary and read:confluence-content.summary. However, this scope is not a substitute for read:confluence-space.summary or read:confluence-content.summary.",
|
|
7394
|
+
rules: [
|
|
7395
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/content/search",
|
|
7396
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/search"
|
|
7397
|
+
]
|
|
7398
|
+
},
|
|
7399
|
+
{
|
|
7400
|
+
name: "write:audit-log:confluence",
|
|
7401
|
+
description: "Create audit records.",
|
|
7402
|
+
rules: [
|
|
7403
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/audit",
|
|
7404
|
+
"PUT /ex/confluence/{cloudId}/wiki/rest/api/audit/retention"
|
|
7405
|
+
]
|
|
7406
|
+
},
|
|
7407
|
+
{
|
|
7408
|
+
name: "write:confluence-content",
|
|
7409
|
+
description: "Permits the creation of pages, blogs, comments and questions.",
|
|
7410
|
+
rules: [
|
|
7411
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/content/archive",
|
|
7412
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/content/blueprint/instance/{draftId}",
|
|
7413
|
+
"PUT /ex/confluence/{cloudId}/wiki/rest/api/content/blueprint/instance/{draftId}",
|
|
7414
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/copy",
|
|
7415
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/label",
|
|
7416
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/label",
|
|
7417
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/label/{label}",
|
|
7418
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/pageTree",
|
|
7419
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/pagehierarchy/copy",
|
|
7420
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/restriction",
|
|
7421
|
+
"PUT /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/restriction",
|
|
7422
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/restriction",
|
|
7423
|
+
"PUT /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/restriction/byOperation/{operationKey}/byGroupId/{groupId}",
|
|
7424
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/restriction/byOperation/{operationKey}/byGroupId/{groupId}",
|
|
7425
|
+
"PUT /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/restriction/byOperation/{operationKey}/user",
|
|
7426
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/restriction/byOperation/{operationKey}/user",
|
|
7427
|
+
"PUT /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/state",
|
|
7428
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/state",
|
|
7429
|
+
"GET /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/state/available",
|
|
7430
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/version",
|
|
7431
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/version/{versionNumber}",
|
|
7432
|
+
"PUT /ex/confluence/{cloudId}/wiki/rest/api/content/{pageId}/move/{position}/{targetId}",
|
|
7433
|
+
"PUT /ex/confluence/{cloudId}/wiki/rest/api/relation/{relationName}/from/{sourceType}/{sourceKey}/to/{targetType}/{targetKey}",
|
|
7434
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/relation/{relationName}/from/{sourceType}/{sourceKey}/to/{targetType}/{targetKey}",
|
|
7435
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/template",
|
|
7436
|
+
"PUT /ex/confluence/{cloudId}/wiki/rest/api/template",
|
|
7437
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/template/{contentTemplateId}",
|
|
7438
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/user/watch/content/{contentId}",
|
|
7439
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/user/watch/content/{contentId}",
|
|
7440
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/user/watch/label/{labelName}",
|
|
7441
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/user/watch/label/{labelName}",
|
|
7442
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/user/watch/space/{spaceKey}",
|
|
7443
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/user/watch/space/{spaceKey}"
|
|
7444
|
+
]
|
|
7445
|
+
},
|
|
7446
|
+
{
|
|
7447
|
+
name: "write:confluence-file",
|
|
7448
|
+
description: "Upload attachments.",
|
|
7449
|
+
rules: [
|
|
7450
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/child/attachment",
|
|
7451
|
+
"PUT /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/child/attachment",
|
|
7452
|
+
"PUT /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/child/attachment/{attachmentId}",
|
|
7453
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/child/attachment/{attachmentId}/data"
|
|
7454
|
+
]
|
|
7455
|
+
},
|
|
7456
|
+
{
|
|
7457
|
+
name: "write:confluence-groups",
|
|
7458
|
+
description: "Create, remove and update user groups.",
|
|
7459
|
+
rules: [
|
|
7460
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/group",
|
|
7461
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/group/by-id",
|
|
7462
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/group/userByGroupId",
|
|
7463
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/group/userByGroupId"
|
|
7464
|
+
]
|
|
7465
|
+
},
|
|
7466
|
+
{
|
|
7467
|
+
name: "write:confluence-props",
|
|
7468
|
+
description: "Write content properties.",
|
|
7469
|
+
rules: [
|
|
7470
|
+
"PUT /ex/confluence/{cloudId}/wiki/rest/api/content/{id}/child/attachment/{attachmentId}"
|
|
7471
|
+
]
|
|
7472
|
+
},
|
|
7473
|
+
{
|
|
7474
|
+
name: "write:confluence-space",
|
|
7475
|
+
description: "Create, update and delete space information.",
|
|
7476
|
+
rules: [
|
|
7477
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/space",
|
|
7478
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/space/_private",
|
|
7479
|
+
"PUT /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}",
|
|
7480
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}",
|
|
7481
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/label",
|
|
7482
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/label",
|
|
7483
|
+
"PUT /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/settings",
|
|
7484
|
+
"PUT /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/theme",
|
|
7485
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/theme"
|
|
7486
|
+
]
|
|
7487
|
+
},
|
|
7488
|
+
{
|
|
7489
|
+
name: "write:space.permission:confluence",
|
|
7490
|
+
description: "Update space permissions.",
|
|
7491
|
+
rules: [
|
|
7492
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/permission",
|
|
7493
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/permission/custom-content",
|
|
7494
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/space/{spaceKey}/permission/{id}"
|
|
7495
|
+
]
|
|
7496
|
+
},
|
|
7497
|
+
{
|
|
7498
|
+
name: "write:user.property:confluence",
|
|
7499
|
+
description: "Create, update and delete user properties.",
|
|
7500
|
+
rules: [
|
|
7501
|
+
"POST /ex/confluence/{cloudId}/wiki/rest/api/user/{userId}/property/{key}",
|
|
7502
|
+
"PUT /ex/confluence/{cloudId}/wiki/rest/api/user/{userId}/property/{key}",
|
|
7503
|
+
"DELETE /ex/confluence/{cloudId}/wiki/rest/api/user/{userId}/property/{key}"
|
|
7504
|
+
]
|
|
7505
|
+
}
|
|
7506
|
+
]
|
|
7507
|
+
}
|
|
7508
|
+
]
|
|
7509
|
+
};
|
|
7510
|
+
|
|
7511
|
+
// ../../packages/core/src/firewalls/figma.generated.ts
|
|
7512
|
+
var figmaFirewall = {
|
|
7513
|
+
name: "figma",
|
|
7514
|
+
description: "Figma API",
|
|
7515
|
+
placeholders: {
|
|
7516
|
+
FIGMA_TOKEN: "figd_Vm0PlaceHolder00000000000000000000000000"
|
|
7517
|
+
},
|
|
7518
|
+
apis: [
|
|
7519
|
+
{
|
|
7520
|
+
base: "https://api.figma.com",
|
|
7521
|
+
auth: {
|
|
7522
|
+
headers: {
|
|
7523
|
+
Authorization: "Bearer ${{ secrets.FIGMA_TOKEN }}"
|
|
7524
|
+
}
|
|
7525
|
+
},
|
|
7526
|
+
permissions: [
|
|
7527
|
+
{
|
|
7528
|
+
name: "unrestricted",
|
|
7529
|
+
description: "Allow all endpoints",
|
|
7530
|
+
rules: ["ANY /{path*}"]
|
|
7531
|
+
},
|
|
7532
|
+
{
|
|
7533
|
+
name: "current_user:read",
|
|
7534
|
+
description: "Read your name, email, and profile image.",
|
|
7535
|
+
rules: ["GET /v1/me"]
|
|
7536
|
+
},
|
|
7537
|
+
{
|
|
7538
|
+
name: "file_comments:read",
|
|
7539
|
+
description: "Read the comments for files.",
|
|
7540
|
+
rules: [
|
|
7541
|
+
"GET /v1/files/{file_key}/comments",
|
|
7542
|
+
"GET /v1/files/{file_key}/comments/{comment_id}/reactions"
|
|
7543
|
+
]
|
|
7544
|
+
},
|
|
7545
|
+
{
|
|
7546
|
+
name: "file_comments:write",
|
|
7547
|
+
description: "Post and delete comments and comment reactions in files.",
|
|
7548
|
+
rules: [
|
|
7549
|
+
"POST /v1/files/{file_key}/comments",
|
|
7550
|
+
"DELETE /v1/files/{file_key}/comments/{comment_id}",
|
|
7551
|
+
"POST /v1/files/{file_key}/comments/{comment_id}/reactions",
|
|
7552
|
+
"DELETE /v1/files/{file_key}/comments/{comment_id}/reactions"
|
|
7553
|
+
]
|
|
7554
|
+
},
|
|
7555
|
+
{
|
|
7556
|
+
name: "file_content:read",
|
|
7557
|
+
description: "Read the contents of files, such as nodes and the editor type.",
|
|
7558
|
+
rules: [
|
|
7559
|
+
"GET /v1/files/{file_key}",
|
|
7560
|
+
"GET /v1/files/{file_key}/images",
|
|
7561
|
+
"GET /v1/files/{file_key}/nodes",
|
|
7562
|
+
"GET /v1/images/{file_key}"
|
|
7563
|
+
]
|
|
7564
|
+
},
|
|
7565
|
+
{
|
|
7566
|
+
name: "file_dev_resources:read",
|
|
7567
|
+
description: "Read dev resources in files.",
|
|
7568
|
+
rules: ["GET /v1/files/{file_key}/dev_resources"]
|
|
7569
|
+
},
|
|
7570
|
+
{
|
|
7571
|
+
name: "file_dev_resources:write",
|
|
7572
|
+
description: "Write to dev resources in files.",
|
|
7573
|
+
rules: [
|
|
7574
|
+
"POST /v1/dev_resources",
|
|
7575
|
+
"PUT /v1/dev_resources",
|
|
7576
|
+
"DELETE /v1/files/{file_key}/dev_resources/{dev_resource_id}"
|
|
7577
|
+
]
|
|
7578
|
+
},
|
|
7579
|
+
{
|
|
7580
|
+
name: "file_metadata:read",
|
|
7581
|
+
description: "Read metadata of files.",
|
|
7582
|
+
rules: ["GET /v1/files/{file_key}/meta"]
|
|
7583
|
+
},
|
|
7584
|
+
{
|
|
7585
|
+
name: "file_variables:read",
|
|
7586
|
+
description: "Read variables in Figma file. Note: this is only available to members in Enterprise organizations.",
|
|
7587
|
+
rules: [
|
|
7588
|
+
"GET /v1/files/{file_key}/variables/local",
|
|
7589
|
+
"GET /v1/files/{file_key}/variables/published"
|
|
7590
|
+
]
|
|
7591
|
+
},
|
|
7592
|
+
{
|
|
7593
|
+
name: "file_variables:write",
|
|
7594
|
+
description: "Write to variables in Figma file. Note: this is only available to members in Enterprise organizations.",
|
|
7595
|
+
rules: ["POST /v1/files/{file_key}/variables"]
|
|
7596
|
+
},
|
|
7597
|
+
{
|
|
7598
|
+
name: "file_versions:read",
|
|
7599
|
+
description: "Read the version history for files you can access.",
|
|
7600
|
+
rules: ["GET /v1/files/{file_key}/versions"]
|
|
7601
|
+
},
|
|
7602
|
+
{
|
|
7603
|
+
name: "files:read",
|
|
7604
|
+
description: "Deprecated. Read files, projects, users, versions, comments, components & styles, and webhooks.",
|
|
7605
|
+
rules: [
|
|
7606
|
+
"GET /v1/component_sets/{key}",
|
|
7607
|
+
"GET /v1/components/{key}",
|
|
7608
|
+
"GET /v1/files/{file_key}",
|
|
7609
|
+
"GET /v1/files/{file_key}/comments",
|
|
7610
|
+
"GET /v1/files/{file_key}/comments/{comment_id}/reactions",
|
|
7611
|
+
"GET /v1/files/{file_key}/component_sets",
|
|
7612
|
+
"GET /v1/files/{file_key}/components",
|
|
7613
|
+
"GET /v1/files/{file_key}/images",
|
|
7614
|
+
"GET /v1/files/{file_key}/meta",
|
|
7615
|
+
"GET /v1/files/{file_key}/nodes",
|
|
7616
|
+
"GET /v1/files/{file_key}/styles",
|
|
7617
|
+
"GET /v1/files/{file_key}/versions",
|
|
7618
|
+
"GET /v1/images/{file_key}",
|
|
7619
|
+
"GET /v1/me",
|
|
7620
|
+
"GET /v1/projects/{project_id}/files",
|
|
7621
|
+
"GET /v1/styles/{key}",
|
|
7622
|
+
"GET /v1/teams/{team_id}/component_sets",
|
|
7623
|
+
"GET /v1/teams/{team_id}/components",
|
|
7624
|
+
"GET /v1/teams/{team_id}/projects",
|
|
7625
|
+
"GET /v1/teams/{team_id}/styles",
|
|
7626
|
+
"GET /v2/teams/{team_id}/webhooks",
|
|
7627
|
+
"GET /v2/webhooks/{webhook_id}",
|
|
7628
|
+
"GET /v2/webhooks/{webhook_id}/requests"
|
|
7629
|
+
]
|
|
7630
|
+
},
|
|
7631
|
+
{
|
|
7632
|
+
name: "library_analytics:read",
|
|
7633
|
+
description: "Read library analytics data.",
|
|
7634
|
+
rules: [
|
|
7635
|
+
"GET /v1/analytics/libraries/{file_key}/component/actions",
|
|
7636
|
+
"GET /v1/analytics/libraries/{file_key}/component/usages",
|
|
7637
|
+
"GET /v1/analytics/libraries/{file_key}/style/actions",
|
|
7638
|
+
"GET /v1/analytics/libraries/{file_key}/style/usages",
|
|
7639
|
+
"GET /v1/analytics/libraries/{file_key}/variable/actions",
|
|
7640
|
+
"GET /v1/analytics/libraries/{file_key}/variable/usages"
|
|
7641
|
+
]
|
|
7642
|
+
},
|
|
7643
|
+
{
|
|
7644
|
+
name: "library_assets:read",
|
|
7645
|
+
description: "Read data of individual published components and styles.",
|
|
7646
|
+
rules: [
|
|
7647
|
+
"GET /v1/component_sets/{key}",
|
|
7648
|
+
"GET /v1/components/{key}",
|
|
7649
|
+
"GET /v1/styles/{key}"
|
|
7650
|
+
]
|
|
7651
|
+
},
|
|
7652
|
+
{
|
|
7653
|
+
name: "library_content:read",
|
|
7654
|
+
description: "Read published components and styles of files.",
|
|
7655
|
+
rules: [
|
|
7656
|
+
"GET /v1/files/{file_key}/component_sets",
|
|
7657
|
+
"GET /v1/files/{file_key}/components",
|
|
7658
|
+
"GET /v1/files/{file_key}/styles"
|
|
7659
|
+
]
|
|
7660
|
+
},
|
|
7661
|
+
{
|
|
7662
|
+
name: "org:activity_log_read",
|
|
7663
|
+
description: "Read activity logs in the organization.",
|
|
7664
|
+
rules: ["GET /v1/activity_logs"]
|
|
7665
|
+
},
|
|
7666
|
+
{
|
|
7667
|
+
name: "projects:read",
|
|
7668
|
+
description: "List projects and files in projects.",
|
|
7669
|
+
rules: [
|
|
7670
|
+
"GET /v1/projects/{project_id}/files",
|
|
7671
|
+
"GET /v1/teams/{team_id}/projects"
|
|
7672
|
+
]
|
|
7673
|
+
},
|
|
7674
|
+
{
|
|
7675
|
+
name: "team_library_content:read",
|
|
7676
|
+
description: "Read published components and styles of teams.",
|
|
7677
|
+
rules: [
|
|
7678
|
+
"GET /v1/teams/{team_id}/component_sets",
|
|
7679
|
+
"GET /v1/teams/{team_id}/components",
|
|
7680
|
+
"GET /v1/teams/{team_id}/styles"
|
|
7681
|
+
]
|
|
7682
|
+
},
|
|
7683
|
+
{
|
|
7684
|
+
name: "webhooks:read",
|
|
7685
|
+
description: "Read metadata of webhooks.",
|
|
7686
|
+
rules: [
|
|
7687
|
+
"GET /v2/teams/{team_id}/webhooks",
|
|
7688
|
+
"GET /v2/webhooks",
|
|
7689
|
+
"GET /v2/webhooks/{webhook_id}",
|
|
7690
|
+
"GET /v2/webhooks/{webhook_id}/requests"
|
|
7691
|
+
]
|
|
7692
|
+
},
|
|
7693
|
+
{
|
|
7694
|
+
name: "webhooks:write",
|
|
7695
|
+
description: "Create and manage webhooks.",
|
|
7696
|
+
rules: [
|
|
7697
|
+
"POST /v2/webhooks",
|
|
7698
|
+
"PUT /v2/webhooks/{webhook_id}",
|
|
7699
|
+
"DELETE /v2/webhooks/{webhook_id}"
|
|
7700
|
+
]
|
|
7701
|
+
}
|
|
7702
|
+
]
|
|
7703
|
+
}
|
|
7704
|
+
]
|
|
7705
|
+
};
|
|
7706
|
+
|
|
7212
7707
|
// ../../packages/core/src/firewalls/github.generated.ts
|
|
7213
7708
|
var githubFirewall = {
|
|
7214
7709
|
name: "github",
|
|
@@ -10371,19 +10866,19 @@ var googleSheetsFirewall = {
|
|
|
10371
10866
|
]
|
|
10372
10867
|
};
|
|
10373
10868
|
|
|
10374
|
-
// ../../packages/core/src/firewalls/
|
|
10375
|
-
var
|
|
10376
|
-
name: "
|
|
10377
|
-
description: "
|
|
10869
|
+
// ../../packages/core/src/firewalls/jira.generated.ts
|
|
10870
|
+
var jiraFirewall = {
|
|
10871
|
+
name: "jira",
|
|
10872
|
+
description: "Jira Cloud API",
|
|
10378
10873
|
placeholders: {
|
|
10379
|
-
|
|
10874
|
+
JIRA_TOKEN: "ATATT3xVm0PlaceHolder000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
|
|
10380
10875
|
},
|
|
10381
10876
|
apis: [
|
|
10382
10877
|
{
|
|
10383
|
-
base: "https://
|
|
10878
|
+
base: "https://api.atlassian.com",
|
|
10384
10879
|
auth: {
|
|
10385
10880
|
headers: {
|
|
10386
|
-
Authorization: "Bearer ${{ secrets.
|
|
10881
|
+
Authorization: "Bearer ${{ secrets.JIRA_TOKEN }}"
|
|
10387
10882
|
}
|
|
10388
10883
|
},
|
|
10389
10884
|
permissions: [
|
|
@@ -10393,80 +10888,832 @@ var slackFirewall = {
|
|
|
10393
10888
|
rules: ["ANY /{path*}"]
|
|
10394
10889
|
},
|
|
10395
10890
|
{
|
|
10396
|
-
name: "
|
|
10397
|
-
|
|
10398
|
-
"POST /admin.audit.anomaly.allow.getItem",
|
|
10399
|
-
"POST /admin.audit.anomaly.allow.updateItem",
|
|
10400
|
-
"GET /team.accessLogs",
|
|
10401
|
-
"GET /team.billableInfo",
|
|
10402
|
-
"GET /team.integrationLogs"
|
|
10403
|
-
]
|
|
10404
|
-
},
|
|
10405
|
-
{
|
|
10406
|
-
name: "admin.analytics:read",
|
|
10891
|
+
name: "manage:jira-configuration",
|
|
10892
|
+
description: "Configure Jira settings that require the Jira administrators permission, for example, create projects and custom fields, view workflows, manage issue link types.",
|
|
10407
10893
|
rules: [
|
|
10408
|
-
"GET /
|
|
10409
|
-
"
|
|
10410
|
-
"
|
|
10894
|
+
"GET /ex/jira/{cloudId}/rest/api/3/announcementBanner",
|
|
10895
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/announcementBanner",
|
|
10896
|
+
"POST /ex/jira/{cloudId}/rest/api/3/app/field/context/configuration/list",
|
|
10897
|
+
"GET /ex/jira/{cloudId}/rest/api/3/app/field/{fieldIdOrKey}/context/configuration",
|
|
10898
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/app/field/{fieldIdOrKey}/context/configuration",
|
|
10899
|
+
"GET /ex/jira/{cloudId}/rest/api/3/application-properties",
|
|
10900
|
+
"GET /ex/jira/{cloudId}/rest/api/3/application-properties/advanced-settings",
|
|
10901
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/application-properties/{id}",
|
|
10902
|
+
"GET /ex/jira/{cloudId}/rest/api/3/applicationrole",
|
|
10903
|
+
"GET /ex/jira/{cloudId}/rest/api/3/applicationrole/{key}",
|
|
10904
|
+
"GET /ex/jira/{cloudId}/rest/api/3/auditing/record",
|
|
10905
|
+
"GET /ex/jira/{cloudId}/rest/api/3/avatar/{type}/system",
|
|
10906
|
+
"GET /ex/jira/{cloudId}/rest/api/3/config/fieldschemes",
|
|
10907
|
+
"POST /ex/jira/{cloudId}/rest/api/3/config/fieldschemes",
|
|
10908
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/config/fieldschemes/fields",
|
|
10909
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/config/fieldschemes/fields",
|
|
10910
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/config/fieldschemes/fields/parameters",
|
|
10911
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/config/fieldschemes/fields/parameters",
|
|
10912
|
+
"GET /ex/jira/{cloudId}/rest/api/3/config/fieldschemes/projects",
|
|
10913
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/config/fieldschemes/projects",
|
|
10914
|
+
"GET /ex/jira/{cloudId}/rest/api/3/config/fieldschemes/{id}",
|
|
10915
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/config/fieldschemes/{id}",
|
|
10916
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/config/fieldschemes/{id}",
|
|
10917
|
+
"POST /ex/jira/{cloudId}/rest/api/3/config/fieldschemes/{id}/clone",
|
|
10918
|
+
"GET /ex/jira/{cloudId}/rest/api/3/config/fieldschemes/{id}/fields",
|
|
10919
|
+
"GET /ex/jira/{cloudId}/rest/api/3/config/fieldschemes/{id}/fields/{fieldId}/parameters",
|
|
10920
|
+
"GET /ex/jira/{cloudId}/rest/api/3/config/fieldschemes/{id}/projects",
|
|
10921
|
+
"GET /ex/jira/{cloudId}/rest/api/3/configuration/timetracking",
|
|
10922
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/configuration/timetracking",
|
|
10923
|
+
"GET /ex/jira/{cloudId}/rest/api/3/configuration/timetracking/list",
|
|
10924
|
+
"GET /ex/jira/{cloudId}/rest/api/3/configuration/timetracking/options",
|
|
10925
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/configuration/timetracking/options",
|
|
10926
|
+
"GET /ex/jira/{cloudId}/rest/api/3/events",
|
|
10927
|
+
"POST /ex/jira/{cloudId}/rest/api/3/field",
|
|
10928
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/field/association",
|
|
10929
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/field/association",
|
|
10930
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/field/{fieldId}",
|
|
10931
|
+
"GET /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context",
|
|
10932
|
+
"POST /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context",
|
|
10933
|
+
"GET /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context/defaultValue",
|
|
10934
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context/defaultValue",
|
|
10935
|
+
"GET /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context/issuetypemapping",
|
|
10936
|
+
"POST /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context/mapping",
|
|
10937
|
+
"GET /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context/projectmapping",
|
|
10938
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context/{contextId}",
|
|
10939
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context/{contextId}",
|
|
10940
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context/{contextId}/issuetype",
|
|
10941
|
+
"POST /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context/{contextId}/issuetype/remove",
|
|
10942
|
+
"GET /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context/{contextId}/option",
|
|
10943
|
+
"POST /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context/{contextId}/option",
|
|
10944
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context/{contextId}/option",
|
|
10945
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context/{contextId}/option/move",
|
|
10946
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context/{contextId}/option/{optionId}",
|
|
10947
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context/{contextId}/option/{optionId}/issue",
|
|
10948
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context/{contextId}/project",
|
|
10949
|
+
"POST /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/context/{contextId}/project/remove",
|
|
10950
|
+
"GET /ex/jira/{cloudId}/rest/api/3/field/{fieldKey}/option",
|
|
10951
|
+
"POST /ex/jira/{cloudId}/rest/api/3/field/{fieldKey}/option",
|
|
10952
|
+
"GET /ex/jira/{cloudId}/rest/api/3/field/{fieldKey}/option/{optionId}",
|
|
10953
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/field/{fieldKey}/option/{optionId}",
|
|
10954
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/field/{fieldKey}/option/{optionId}",
|
|
10955
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/field/{fieldKey}/option/{optionId}/issue",
|
|
10956
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/field/{id}",
|
|
10957
|
+
"POST /ex/jira/{cloudId}/rest/api/3/field/{id}/restore",
|
|
10958
|
+
"POST /ex/jira/{cloudId}/rest/api/3/field/{id}/trash",
|
|
10959
|
+
"GET /ex/jira/{cloudId}/rest/api/3/fieldconfiguration",
|
|
10960
|
+
"POST /ex/jira/{cloudId}/rest/api/3/fieldconfiguration",
|
|
10961
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/fieldconfiguration/{id}",
|
|
10962
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/fieldconfiguration/{id}",
|
|
10963
|
+
"GET /ex/jira/{cloudId}/rest/api/3/fieldconfiguration/{id}/fields",
|
|
10964
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/fieldconfiguration/{id}/fields",
|
|
10965
|
+
"GET /ex/jira/{cloudId}/rest/api/3/fieldconfigurationscheme",
|
|
10966
|
+
"POST /ex/jira/{cloudId}/rest/api/3/fieldconfigurationscheme",
|
|
10967
|
+
"GET /ex/jira/{cloudId}/rest/api/3/fieldconfigurationscheme/mapping",
|
|
10968
|
+
"GET /ex/jira/{cloudId}/rest/api/3/fieldconfigurationscheme/project",
|
|
10969
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/fieldconfigurationscheme/project",
|
|
10970
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/fieldconfigurationscheme/{id}",
|
|
10971
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/fieldconfigurationscheme/{id}",
|
|
10972
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/fieldconfigurationscheme/{id}/mapping",
|
|
10973
|
+
"POST /ex/jira/{cloudId}/rest/api/3/fieldconfigurationscheme/{id}/mapping/delete",
|
|
10974
|
+
"POST /ex/jira/{cloudId}/rest/api/3/group",
|
|
10975
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/group",
|
|
10976
|
+
"GET /ex/jira/{cloudId}/rest/api/3/group/member",
|
|
10977
|
+
"POST /ex/jira/{cloudId}/rest/api/3/group/user",
|
|
10978
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/group/user",
|
|
10979
|
+
"GET /ex/jira/{cloudId}/rest/api/3/instance/license",
|
|
10980
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issueLinkType",
|
|
10981
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issueLinkType/{issueLinkTypeId}",
|
|
10982
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issueLinkType/{issueLinkTypeId}",
|
|
10983
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issuesecurityschemes",
|
|
10984
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuesecurityschemes/level",
|
|
10985
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issuesecurityschemes/level/default",
|
|
10986
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuesecurityschemes/level/member",
|
|
10987
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuesecurityschemes/project",
|
|
10988
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issuesecurityschemes/project",
|
|
10989
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuesecurityschemes/search",
|
|
10990
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issuesecurityschemes/{id}",
|
|
10991
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuesecurityschemes/{issueSecuritySchemeId}/members",
|
|
10992
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issuesecurityschemes/{schemeId}",
|
|
10993
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issuesecurityschemes/{schemeId}/level",
|
|
10994
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issuesecurityschemes/{schemeId}/level/{levelId}",
|
|
10995
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issuesecurityschemes/{schemeId}/level/{levelId}",
|
|
10996
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issuesecurityschemes/{schemeId}/level/{levelId}/member",
|
|
10997
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issuesecurityschemes/{schemeId}/level/{levelId}/member/{memberId}",
|
|
10998
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issuetype",
|
|
10999
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issuetype/{id}",
|
|
11000
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issuetype/{id}",
|
|
11001
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issuetype/{id}/avatar2",
|
|
11002
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issuetype/{issueTypeId}/properties/{propertyKey}",
|
|
11003
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issuetype/{issueTypeId}/properties/{propertyKey}",
|
|
11004
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuetypescheme",
|
|
11005
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issuetypescheme",
|
|
11006
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuetypescheme/mapping",
|
|
11007
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuetypescheme/project",
|
|
11008
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issuetypescheme/project",
|
|
11009
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issuetypescheme/{issueTypeSchemeId}",
|
|
11010
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issuetypescheme/{issueTypeSchemeId}",
|
|
11011
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issuetypescheme/{issueTypeSchemeId}/issuetype",
|
|
11012
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issuetypescheme/{issueTypeSchemeId}/issuetype/move",
|
|
11013
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issuetypescheme/{issueTypeSchemeId}/issuetype/{issueTypeId}",
|
|
11014
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuetypescreenscheme",
|
|
11015
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issuetypescreenscheme",
|
|
11016
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuetypescreenscheme/mapping",
|
|
11017
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuetypescreenscheme/project",
|
|
11018
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issuetypescreenscheme/project",
|
|
11019
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issuetypescreenscheme/{issueTypeScreenSchemeId}",
|
|
11020
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issuetypescreenscheme/{issueTypeScreenSchemeId}",
|
|
11021
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issuetypescreenscheme/{issueTypeScreenSchemeId}/mapping",
|
|
11022
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issuetypescreenscheme/{issueTypeScreenSchemeId}/mapping/default",
|
|
11023
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issuetypescreenscheme/{issueTypeScreenSchemeId}/mapping/remove",
|
|
11024
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuetypescreenscheme/{issueTypeScreenSchemeId}/project",
|
|
11025
|
+
"POST /ex/jira/{cloudId}/rest/api/3/jql/sanitize",
|
|
11026
|
+
"GET /ex/jira/{cloudId}/rest/api/3/license/approximateLicenseCount",
|
|
11027
|
+
"GET /ex/jira/{cloudId}/rest/api/3/license/approximateLicenseCount/product/{applicationKey}",
|
|
11028
|
+
"GET /ex/jira/{cloudId}/rest/api/3/mypreferences",
|
|
11029
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/mypreferences",
|
|
11030
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/mypreferences",
|
|
11031
|
+
"GET /ex/jira/{cloudId}/rest/api/3/mypreferences/locale",
|
|
11032
|
+
"GET /ex/jira/{cloudId}/rest/api/3/notificationscheme",
|
|
11033
|
+
"POST /ex/jira/{cloudId}/rest/api/3/notificationscheme",
|
|
11034
|
+
"GET /ex/jira/{cloudId}/rest/api/3/notificationscheme/project",
|
|
11035
|
+
"GET /ex/jira/{cloudId}/rest/api/3/notificationscheme/{id}",
|
|
11036
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/notificationscheme/{id}",
|
|
11037
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/notificationscheme/{id}/notification",
|
|
11038
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/notificationscheme/{notificationSchemeId}",
|
|
11039
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/notificationscheme/{notificationSchemeId}/notification/{notificationId}",
|
|
11040
|
+
"GET /ex/jira/{cloudId}/rest/api/3/permissions",
|
|
11041
|
+
"POST /ex/jira/{cloudId}/rest/api/3/permissionscheme",
|
|
11042
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/permissionscheme/{schemeId}",
|
|
11043
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/permissionscheme/{schemeId}",
|
|
11044
|
+
"POST /ex/jira/{cloudId}/rest/api/3/permissionscheme/{schemeId}/permission",
|
|
11045
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/permissionscheme/{schemeId}/permission/{permissionId}",
|
|
11046
|
+
"POST /ex/jira/{cloudId}/rest/api/3/priority",
|
|
11047
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/priority/default",
|
|
11048
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/priority/move",
|
|
11049
|
+
"GET /ex/jira/{cloudId}/rest/api/3/priority/search",
|
|
11050
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/priority/{id}",
|
|
11051
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/priority/{id}",
|
|
11052
|
+
"GET /ex/jira/{cloudId}/rest/api/3/priorityscheme",
|
|
11053
|
+
"POST /ex/jira/{cloudId}/rest/api/3/priorityscheme",
|
|
11054
|
+
"POST /ex/jira/{cloudId}/rest/api/3/priorityscheme/mappings",
|
|
11055
|
+
"GET /ex/jira/{cloudId}/rest/api/3/priorityscheme/priorities/available",
|
|
11056
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/priorityscheme/{schemeId}",
|
|
11057
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/priorityscheme/{schemeId}",
|
|
11058
|
+
"GET /ex/jira/{cloudId}/rest/api/3/priorityscheme/{schemeId}/priorities",
|
|
11059
|
+
"GET /ex/jira/{cloudId}/rest/api/3/priorityscheme/{schemeId}/projects",
|
|
11060
|
+
"POST /ex/jira/{cloudId}/rest/api/3/project",
|
|
11061
|
+
"POST /ex/jira/{cloudId}/rest/api/3/project-template",
|
|
11062
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/project-template/edit-template",
|
|
11063
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project-template/live-template",
|
|
11064
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/project-template/remove-template",
|
|
11065
|
+
"POST /ex/jira/{cloudId}/rest/api/3/project-template/save-template",
|
|
11066
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}",
|
|
11067
|
+
"POST /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/delete",
|
|
11068
|
+
"POST /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/restore",
|
|
11069
|
+
"POST /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/role/{id}",
|
|
11070
|
+
"POST /ex/jira/{cloudId}/rest/api/3/resolution",
|
|
11071
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/resolution/default",
|
|
11072
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/resolution/move",
|
|
11073
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/resolution/{id}",
|
|
11074
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/resolution/{id}",
|
|
11075
|
+
"GET /ex/jira/{cloudId}/rest/api/3/role",
|
|
11076
|
+
"POST /ex/jira/{cloudId}/rest/api/3/role",
|
|
11077
|
+
"GET /ex/jira/{cloudId}/rest/api/3/role/{id}",
|
|
11078
|
+
"POST /ex/jira/{cloudId}/rest/api/3/role/{id}",
|
|
11079
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/role/{id}",
|
|
11080
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/role/{id}",
|
|
11081
|
+
"GET /ex/jira/{cloudId}/rest/api/3/role/{id}/actors",
|
|
11082
|
+
"POST /ex/jira/{cloudId}/rest/api/3/role/{id}/actors",
|
|
11083
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/role/{id}/actors",
|
|
11084
|
+
"POST /ex/jira/{cloudId}/rest/api/3/screenscheme",
|
|
11085
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/screenscheme/{screenSchemeId}",
|
|
11086
|
+
"GET /ex/jira/{cloudId}/rest/api/3/securitylevel/{id}",
|
|
11087
|
+
"GET /ex/jira/{cloudId}/rest/api/3/settings/columns",
|
|
11088
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/settings/columns",
|
|
11089
|
+
"GET /ex/jira/{cloudId}/rest/api/3/statuses",
|
|
11090
|
+
"POST /ex/jira/{cloudId}/rest/api/3/statuses",
|
|
11091
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/statuses",
|
|
11092
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/statuses",
|
|
11093
|
+
"GET /ex/jira/{cloudId}/rest/api/3/statuses/byNames",
|
|
11094
|
+
"GET /ex/jira/{cloudId}/rest/api/3/statuses/search",
|
|
11095
|
+
"GET /ex/jira/{cloudId}/rest/api/3/statuses/{statusId}/project/{projectId}/issueTypeUsages",
|
|
11096
|
+
"GET /ex/jira/{cloudId}/rest/api/3/statuses/{statusId}/projectUsages",
|
|
11097
|
+
"GET /ex/jira/{cloudId}/rest/api/3/statuses/{statusId}/workflowUsages",
|
|
11098
|
+
"GET /ex/jira/{cloudId}/rest/api/3/universal_avatar/type/{type}/owner/{entityId}",
|
|
11099
|
+
"POST /ex/jira/{cloudId}/rest/api/3/universal_avatar/type/{type}/owner/{entityId}",
|
|
11100
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/universal_avatar/type/{type}/owner/{owningObjectId}/avatar/{id}",
|
|
11101
|
+
"POST /ex/jira/{cloudId}/rest/api/3/user",
|
|
11102
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/user",
|
|
11103
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/user/columns",
|
|
11104
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/user/columns",
|
|
11105
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflow",
|
|
11106
|
+
"POST /ex/jira/{cloudId}/rest/api/3/workflow",
|
|
11107
|
+
"POST /ex/jira/{cloudId}/rest/api/3/workflow/history",
|
|
11108
|
+
"POST /ex/jira/{cloudId}/rest/api/3/workflow/history/list",
|
|
11109
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflow/rule/config",
|
|
11110
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/workflow/rule/config",
|
|
11111
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflow/transitions/{transitionId}/properties",
|
|
11112
|
+
"POST /ex/jira/{cloudId}/rest/api/3/workflow/transitions/{transitionId}/properties",
|
|
11113
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/workflow/transitions/{transitionId}/properties",
|
|
11114
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/workflow/transitions/{transitionId}/properties",
|
|
11115
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/workflow/{entityId}",
|
|
11116
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflow/{workflowId}/project/{projectId}/issueTypeUsages",
|
|
11117
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflow/{workflowId}/projectUsages",
|
|
11118
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflow/{workflowId}/workflowSchemes",
|
|
11119
|
+
"POST /ex/jira/{cloudId}/rest/api/3/workflows",
|
|
11120
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflows/capabilities",
|
|
11121
|
+
"POST /ex/jira/{cloudId}/rest/api/3/workflows/create",
|
|
11122
|
+
"POST /ex/jira/{cloudId}/rest/api/3/workflows/create/validation",
|
|
11123
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflows/defaultEditor",
|
|
11124
|
+
"POST /ex/jira/{cloudId}/rest/api/3/workflows/preview",
|
|
11125
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflows/search",
|
|
11126
|
+
"POST /ex/jira/{cloudId}/rest/api/3/workflows/update",
|
|
11127
|
+
"POST /ex/jira/{cloudId}/rest/api/3/workflows/update/validation",
|
|
11128
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflowscheme",
|
|
11129
|
+
"POST /ex/jira/{cloudId}/rest/api/3/workflowscheme",
|
|
11130
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflowscheme/project",
|
|
11131
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/workflowscheme/project",
|
|
11132
|
+
"POST /ex/jira/{cloudId}/rest/api/3/workflowscheme/project/switch",
|
|
11133
|
+
"POST /ex/jira/{cloudId}/rest/api/3/workflowscheme/read",
|
|
11134
|
+
"POST /ex/jira/{cloudId}/rest/api/3/workflowscheme/update",
|
|
11135
|
+
"POST /ex/jira/{cloudId}/rest/api/3/workflowscheme/update/mappings",
|
|
11136
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}",
|
|
11137
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}",
|
|
11138
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}",
|
|
11139
|
+
"POST /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/createdraft",
|
|
11140
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/default",
|
|
11141
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/default",
|
|
11142
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/default",
|
|
11143
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/draft",
|
|
11144
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/draft",
|
|
11145
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/draft",
|
|
11146
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/draft/default",
|
|
11147
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/draft/default",
|
|
11148
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/draft/default",
|
|
11149
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/draft/issuetype/{issueType}",
|
|
11150
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/draft/issuetype/{issueType}",
|
|
11151
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/draft/issuetype/{issueType}",
|
|
11152
|
+
"POST /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/draft/publish",
|
|
11153
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/draft/workflow",
|
|
11154
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/draft/workflow",
|
|
11155
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/draft/workflow",
|
|
11156
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/issuetype/{issueType}",
|
|
11157
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/issuetype/{issueType}",
|
|
11158
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/issuetype/{issueType}",
|
|
11159
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/workflow",
|
|
11160
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/workflow",
|
|
11161
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/workflowscheme/{id}/workflow",
|
|
11162
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflowscheme/{workflowSchemeId}/projectUsages"
|
|
10411
11163
|
]
|
|
10412
11164
|
},
|
|
10413
11165
|
{
|
|
10414
|
-
name: "
|
|
10415
|
-
|
|
10416
|
-
},
|
|
10417
|
-
{
|
|
10418
|
-
name: "admin.apps:read",
|
|
11166
|
+
name: "manage:jira-project",
|
|
11167
|
+
description: "Create and edit project settings and create new project-level objects, for example, versions, components.",
|
|
10419
11168
|
rules: [
|
|
10420
|
-
"
|
|
10421
|
-
"
|
|
10422
|
-
"
|
|
10423
|
-
"GET /
|
|
11169
|
+
"POST /ex/jira/{cloudId}/rest/api/3/component",
|
|
11170
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/component/{id}",
|
|
11171
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/component/{id}",
|
|
11172
|
+
"GET /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/contexts",
|
|
11173
|
+
"GET /ex/jira/{cloudId}/rest/api/3/field/{fieldId}/screens",
|
|
11174
|
+
"POST /ex/jira/{cloudId}/rest/api/3/forge/panel/action/bulk/async",
|
|
11175
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuesecurityschemes",
|
|
11176
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuesecurityschemes/{id}",
|
|
11177
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}",
|
|
11178
|
+
"POST /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/archive",
|
|
11179
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/avatar",
|
|
11180
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/avatar/{id}",
|
|
11181
|
+
"POST /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/avatar2",
|
|
11182
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/classification-level/default",
|
|
11183
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/classification-level/default",
|
|
11184
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/features/{featureKey}",
|
|
11185
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/properties/{propertyKey}",
|
|
11186
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/properties/{propertyKey}",
|
|
11187
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/role/{id}",
|
|
11188
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/role/{id}",
|
|
11189
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectId}/email",
|
|
11190
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/project/{projectId}/email",
|
|
11191
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/project/{projectKeyOrId}/permissionscheme",
|
|
11192
|
+
"POST /ex/jira/{cloudId}/rest/api/3/projectCategory",
|
|
11193
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/projectCategory/{id}",
|
|
11194
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/projectCategory/{id}",
|
|
11195
|
+
"GET /ex/jira/{cloudId}/rest/api/3/screens",
|
|
11196
|
+
"POST /ex/jira/{cloudId}/rest/api/3/screens",
|
|
11197
|
+
"POST /ex/jira/{cloudId}/rest/api/3/screens/addToDefault/{fieldId}",
|
|
11198
|
+
"GET /ex/jira/{cloudId}/rest/api/3/screens/tabs",
|
|
11199
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/screens/{screenId}",
|
|
11200
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/screens/{screenId}",
|
|
11201
|
+
"GET /ex/jira/{cloudId}/rest/api/3/screens/{screenId}/availableFields",
|
|
11202
|
+
"GET /ex/jira/{cloudId}/rest/api/3/screens/{screenId}/tabs",
|
|
11203
|
+
"POST /ex/jira/{cloudId}/rest/api/3/screens/{screenId}/tabs",
|
|
11204
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/screens/{screenId}/tabs/{tabId}",
|
|
11205
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/screens/{screenId}/tabs/{tabId}",
|
|
11206
|
+
"GET /ex/jira/{cloudId}/rest/api/3/screens/{screenId}/tabs/{tabId}/fields",
|
|
11207
|
+
"POST /ex/jira/{cloudId}/rest/api/3/screens/{screenId}/tabs/{tabId}/fields",
|
|
11208
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/screens/{screenId}/tabs/{tabId}/fields/{id}",
|
|
11209
|
+
"POST /ex/jira/{cloudId}/rest/api/3/screens/{screenId}/tabs/{tabId}/fields/{id}/move",
|
|
11210
|
+
"POST /ex/jira/{cloudId}/rest/api/3/screens/{screenId}/tabs/{tabId}/move/{pos}",
|
|
11211
|
+
"GET /ex/jira/{cloudId}/rest/api/3/screenscheme",
|
|
11212
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/screenscheme/{screenSchemeId}",
|
|
11213
|
+
"POST /ex/jira/{cloudId}/rest/api/3/version",
|
|
11214
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/version/{id}",
|
|
11215
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/version/{id}",
|
|
11216
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/version/{id}/mergeto/{moveIssuesTo}",
|
|
11217
|
+
"POST /ex/jira/{cloudId}/rest/api/3/version/{id}/move",
|
|
11218
|
+
"POST /ex/jira/{cloudId}/rest/api/3/version/{id}/removeAndSwap",
|
|
11219
|
+
"GET /ex/jira/{cloudId}/rest/api/3/workflow/search"
|
|
10424
11220
|
]
|
|
10425
11221
|
},
|
|
10426
11222
|
{
|
|
10427
|
-
name: "
|
|
11223
|
+
name: "manage:jira-webhook",
|
|
11224
|
+
description: "Manage Jira webhooks. Enables an OAuth app to register and unregister dynamic webhooks in Jira. It also provides for fetching of registered webhooks.",
|
|
10428
11225
|
rules: [
|
|
10429
|
-
"
|
|
10430
|
-
"POST /
|
|
10431
|
-
"
|
|
10432
|
-
"
|
|
10433
|
-
"
|
|
10434
|
-
"POST /admin.apps.uninstall"
|
|
11226
|
+
"GET /ex/jira/{cloudId}/rest/api/3/webhook",
|
|
11227
|
+
"POST /ex/jira/{cloudId}/rest/api/3/webhook",
|
|
11228
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/webhook",
|
|
11229
|
+
"GET /ex/jira/{cloudId}/rest/api/3/webhook/failed",
|
|
11230
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/webhook/refresh"
|
|
10435
11231
|
]
|
|
10436
11232
|
},
|
|
10437
11233
|
{
|
|
10438
|
-
name: "
|
|
10439
|
-
|
|
10440
|
-
},
|
|
10441
|
-
{
|
|
10442
|
-
name: "admin.barriers:write",
|
|
11234
|
+
name: "read:jira-user",
|
|
11235
|
+
description: "View user information in Jira that you have access to, including usernames, email addresses, and avatars.",
|
|
10443
11236
|
rules: [
|
|
10444
|
-
"
|
|
10445
|
-
"POST /
|
|
10446
|
-
"POST /
|
|
11237
|
+
"GET /ex/jira/{cloudId}/rest/api/3/configuration",
|
|
11238
|
+
"POST /ex/jira/{cloudId}/rest/api/3/expression/analyse",
|
|
11239
|
+
"POST /ex/jira/{cloudId}/rest/api/3/expression/eval",
|
|
11240
|
+
"POST /ex/jira/{cloudId}/rest/api/3/expression/evaluate",
|
|
11241
|
+
"GET /ex/jira/{cloudId}/rest/api/3/group",
|
|
11242
|
+
"GET /ex/jira/{cloudId}/rest/api/3/group/bulk",
|
|
11243
|
+
"GET /ex/jira/{cloudId}/rest/api/3/groups/picker",
|
|
11244
|
+
"POST /ex/jira/{cloudId}/rest/api/3/jql/pdcleaner",
|
|
11245
|
+
"GET /ex/jira/{cloudId}/rest/api/3/myself",
|
|
11246
|
+
"GET /ex/jira/{cloudId}/rest/api/3/user",
|
|
11247
|
+
"GET /ex/jira/{cloudId}/rest/api/3/user/assignable/multiProjectSearch",
|
|
11248
|
+
"GET /ex/jira/{cloudId}/rest/api/3/user/assignable/search",
|
|
11249
|
+
"GET /ex/jira/{cloudId}/rest/api/3/user/bulk",
|
|
11250
|
+
"GET /ex/jira/{cloudId}/rest/api/3/user/bulk/migration",
|
|
11251
|
+
"GET /ex/jira/{cloudId}/rest/api/3/user/columns",
|
|
11252
|
+
"GET /ex/jira/{cloudId}/rest/api/3/user/groups",
|
|
11253
|
+
"GET /ex/jira/{cloudId}/rest/api/3/user/permission/search",
|
|
11254
|
+
"GET /ex/jira/{cloudId}/rest/api/3/user/picker",
|
|
11255
|
+
"GET /ex/jira/{cloudId}/rest/api/3/user/properties",
|
|
11256
|
+
"GET /ex/jira/{cloudId}/rest/api/3/user/properties/{propertyKey}",
|
|
11257
|
+
"GET /ex/jira/{cloudId}/rest/api/3/user/search",
|
|
11258
|
+
"GET /ex/jira/{cloudId}/rest/api/3/user/search/query",
|
|
11259
|
+
"GET /ex/jira/{cloudId}/rest/api/3/user/search/query/key",
|
|
11260
|
+
"GET /ex/jira/{cloudId}/rest/api/3/user/viewissue/search",
|
|
11261
|
+
"GET /ex/jira/{cloudId}/rest/api/3/users",
|
|
11262
|
+
"GET /ex/jira/{cloudId}/rest/api/3/users/search"
|
|
10447
11263
|
]
|
|
10448
11264
|
},
|
|
10449
11265
|
{
|
|
10450
|
-
name: "
|
|
11266
|
+
name: "read:jira-work",
|
|
11267
|
+
description: "Read project and issue data. Search for issues and objects associated with issues (such as attachments and worklogs).",
|
|
10451
11268
|
rules: [
|
|
10452
|
-
"
|
|
10453
|
-
"
|
|
10454
|
-
"
|
|
11269
|
+
"GET /ex/jira/{cloudId}/rest/api/3/attachment/content/{id}",
|
|
11270
|
+
"GET /ex/jira/{cloudId}/rest/api/3/attachment/meta",
|
|
11271
|
+
"GET /ex/jira/{cloudId}/rest/api/3/attachment/thumbnail/{id}",
|
|
11272
|
+
"GET /ex/jira/{cloudId}/rest/api/3/attachment/{id}",
|
|
11273
|
+
"GET /ex/jira/{cloudId}/rest/api/3/attachment/{id}/expand/human",
|
|
11274
|
+
"GET /ex/jira/{cloudId}/rest/api/3/attachment/{id}/expand/raw",
|
|
11275
|
+
"GET /ex/jira/{cloudId}/rest/api/3/bulk/issues/fields",
|
|
11276
|
+
"GET /ex/jira/{cloudId}/rest/api/3/bulk/issues/transition",
|
|
11277
|
+
"GET /ex/jira/{cloudId}/rest/api/3/bulk/queue/{taskId}",
|
|
11278
|
+
"POST /ex/jira/{cloudId}/rest/api/3/changelog/bulkfetch",
|
|
11279
|
+
"GET /ex/jira/{cloudId}/rest/api/3/classification-levels",
|
|
11280
|
+
"POST /ex/jira/{cloudId}/rest/api/3/comment/list",
|
|
11281
|
+
"GET /ex/jira/{cloudId}/rest/api/3/comment/{commentId}/properties",
|
|
11282
|
+
"GET /ex/jira/{cloudId}/rest/api/3/comment/{commentId}/properties/{propertyKey}",
|
|
11283
|
+
"GET /ex/jira/{cloudId}/rest/api/3/component",
|
|
11284
|
+
"GET /ex/jira/{cloudId}/rest/api/3/component/{id}",
|
|
11285
|
+
"GET /ex/jira/{cloudId}/rest/api/3/component/{id}/relatedIssueCounts",
|
|
11286
|
+
"GET /ex/jira/{cloudId}/rest/api/3/customFieldOption/{id}",
|
|
11287
|
+
"GET /ex/jira/{cloudId}/rest/api/3/dashboard",
|
|
11288
|
+
"GET /ex/jira/{cloudId}/rest/api/3/dashboard/gadgets",
|
|
11289
|
+
"GET /ex/jira/{cloudId}/rest/api/3/dashboard/search",
|
|
11290
|
+
"GET /ex/jira/{cloudId}/rest/api/3/dashboard/{dashboardId}/gadget",
|
|
11291
|
+
"POST /ex/jira/{cloudId}/rest/api/3/dashboard/{dashboardId}/gadget",
|
|
11292
|
+
"GET /ex/jira/{cloudId}/rest/api/3/dashboard/{dashboardId}/items/{itemId}/properties",
|
|
11293
|
+
"GET /ex/jira/{cloudId}/rest/api/3/dashboard/{dashboardId}/items/{itemId}/properties/{propertyKey}",
|
|
11294
|
+
"GET /ex/jira/{cloudId}/rest/api/3/dashboard/{id}",
|
|
11295
|
+
"GET /ex/jira/{cloudId}/rest/api/3/data-policy",
|
|
11296
|
+
"GET /ex/jira/{cloudId}/rest/api/3/data-policy/project",
|
|
11297
|
+
"POST /ex/jira/{cloudId}/rest/api/3/expression/analyse",
|
|
11298
|
+
"POST /ex/jira/{cloudId}/rest/api/3/expression/eval",
|
|
11299
|
+
"POST /ex/jira/{cloudId}/rest/api/3/expression/evaluate",
|
|
11300
|
+
"GET /ex/jira/{cloudId}/rest/api/3/field",
|
|
11301
|
+
"GET /ex/jira/{cloudId}/rest/api/3/field/search",
|
|
11302
|
+
"GET /ex/jira/{cloudId}/rest/api/3/field/search/trashed",
|
|
11303
|
+
"GET /ex/jira/{cloudId}/rest/api/3/field/{fieldKey}/option/suggestions/edit",
|
|
11304
|
+
"GET /ex/jira/{cloudId}/rest/api/3/field/{fieldKey}/option/suggestions/search",
|
|
11305
|
+
"GET /ex/jira/{cloudId}/rest/api/3/filter/defaultShareScope",
|
|
11306
|
+
"GET /ex/jira/{cloudId}/rest/api/3/filter/favourite",
|
|
11307
|
+
"GET /ex/jira/{cloudId}/rest/api/3/filter/my",
|
|
11308
|
+
"GET /ex/jira/{cloudId}/rest/api/3/filter/search",
|
|
11309
|
+
"GET /ex/jira/{cloudId}/rest/api/3/filter/{id}",
|
|
11310
|
+
"GET /ex/jira/{cloudId}/rest/api/3/filter/{id}/columns",
|
|
11311
|
+
"GET /ex/jira/{cloudId}/rest/api/3/filter/{id}/permission",
|
|
11312
|
+
"GET /ex/jira/{cloudId}/rest/api/3/filter/{id}/permission/{permissionId}",
|
|
11313
|
+
"GET /ex/jira/{cloudId}/rest/api/3/groupuserpicker",
|
|
11314
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issue/bulkfetch",
|
|
11315
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/createmeta",
|
|
11316
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/createmeta/{projectIdOrKey}/issuetypes",
|
|
11317
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/createmeta/{projectIdOrKey}/issuetypes/{issueTypeId}",
|
|
11318
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/limit/report",
|
|
11319
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/picker",
|
|
11320
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issue/watching",
|
|
11321
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}",
|
|
11322
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/changelog",
|
|
11323
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/changelog/list",
|
|
11324
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/comment",
|
|
11325
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/comment/{id}",
|
|
11326
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/editmeta",
|
|
11327
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/properties",
|
|
11328
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/properties/{propertyKey}",
|
|
11329
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/remotelink",
|
|
11330
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/remotelink/{linkId}",
|
|
11331
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/transitions",
|
|
11332
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/votes",
|
|
11333
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/watchers",
|
|
11334
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/worklog",
|
|
11335
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/worklog/{id}",
|
|
11336
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/worklog/{worklogId}/properties",
|
|
11337
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/worklog/{worklogId}/properties/{propertyKey}",
|
|
11338
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issueLink/{linkId}",
|
|
11339
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issueLinkType",
|
|
11340
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issueLinkType/{issueLinkTypeId}",
|
|
11341
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issues/archive/export",
|
|
11342
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuetype",
|
|
11343
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuetype/project",
|
|
11344
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuetype/{id}",
|
|
11345
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuetype/{id}/alternatives",
|
|
11346
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuetype/{issueTypeId}/properties",
|
|
11347
|
+
"GET /ex/jira/{cloudId}/rest/api/3/issuetype/{issueTypeId}/properties/{propertyKey}",
|
|
11348
|
+
"GET /ex/jira/{cloudId}/rest/api/3/jql/autocompletedata",
|
|
11349
|
+
"POST /ex/jira/{cloudId}/rest/api/3/jql/autocompletedata",
|
|
11350
|
+
"GET /ex/jira/{cloudId}/rest/api/3/jql/autocompletedata/suggestions",
|
|
11351
|
+
"POST /ex/jira/{cloudId}/rest/api/3/jql/match",
|
|
11352
|
+
"POST /ex/jira/{cloudId}/rest/api/3/jql/parse",
|
|
11353
|
+
"GET /ex/jira/{cloudId}/rest/api/3/label",
|
|
11354
|
+
"GET /ex/jira/{cloudId}/rest/api/3/mypermissions",
|
|
11355
|
+
"POST /ex/jira/{cloudId}/rest/api/3/permissions/project",
|
|
11356
|
+
"GET /ex/jira/{cloudId}/rest/api/3/permissionscheme",
|
|
11357
|
+
"GET /ex/jira/{cloudId}/rest/api/3/permissionscheme/{schemeId}",
|
|
11358
|
+
"GET /ex/jira/{cloudId}/rest/api/3/permissionscheme/{schemeId}/permission",
|
|
11359
|
+
"GET /ex/jira/{cloudId}/rest/api/3/permissionscheme/{schemeId}/permission/{permissionId}",
|
|
11360
|
+
"GET /ex/jira/{cloudId}/rest/api/3/plans/plan",
|
|
11361
|
+
"GET /ex/jira/{cloudId}/rest/api/3/plans/plan/{planId}",
|
|
11362
|
+
"GET /ex/jira/{cloudId}/rest/api/3/plans/plan/{planId}/team",
|
|
11363
|
+
"GET /ex/jira/{cloudId}/rest/api/3/plans/plan/{planId}/team/atlassian/{atlassianTeamId}",
|
|
11364
|
+
"GET /ex/jira/{cloudId}/rest/api/3/plans/plan/{planId}/team/planonly/{planOnlyTeamId}",
|
|
11365
|
+
"GET /ex/jira/{cloudId}/rest/api/3/priority",
|
|
11366
|
+
"GET /ex/jira/{cloudId}/rest/api/3/priority/{id}",
|
|
11367
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project",
|
|
11368
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/recent",
|
|
11369
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/search",
|
|
11370
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/type",
|
|
11371
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/type/accessible",
|
|
11372
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/type/{projectTypeKey}",
|
|
11373
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/type/{projectTypeKey}/accessible",
|
|
11374
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}",
|
|
11375
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/avatars",
|
|
11376
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/classification-config",
|
|
11377
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/classification-level/default",
|
|
11378
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/component",
|
|
11379
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/components",
|
|
11380
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/features",
|
|
11381
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/properties",
|
|
11382
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/properties/{propertyKey}",
|
|
11383
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/role",
|
|
11384
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/role/{id}",
|
|
11385
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/roledetails",
|
|
11386
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/statuses",
|
|
11387
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/version",
|
|
11388
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectIdOrKey}/versions",
|
|
11389
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectId}/hierarchy",
|
|
11390
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectKeyOrId}/issuesecuritylevelscheme",
|
|
11391
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectKeyOrId}/notificationscheme",
|
|
11392
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectKeyOrId}/permissionscheme",
|
|
11393
|
+
"GET /ex/jira/{cloudId}/rest/api/3/project/{projectKeyOrId}/securitylevel",
|
|
11394
|
+
"GET /ex/jira/{cloudId}/rest/api/3/projectCategory",
|
|
11395
|
+
"GET /ex/jira/{cloudId}/rest/api/3/projectCategory/{id}",
|
|
11396
|
+
"GET /ex/jira/{cloudId}/rest/api/3/projects/fields",
|
|
11397
|
+
"GET /ex/jira/{cloudId}/rest/api/3/projectvalidate/key",
|
|
11398
|
+
"GET /ex/jira/{cloudId}/rest/api/3/projectvalidate/validProjectKey",
|
|
11399
|
+
"GET /ex/jira/{cloudId}/rest/api/3/projectvalidate/validProjectName",
|
|
11400
|
+
"GET /ex/jira/{cloudId}/rest/api/3/resolution",
|
|
11401
|
+
"GET /ex/jira/{cloudId}/rest/api/3/resolution/search",
|
|
11402
|
+
"GET /ex/jira/{cloudId}/rest/api/3/resolution/{id}",
|
|
11403
|
+
"GET /ex/jira/{cloudId}/rest/api/3/search",
|
|
11404
|
+
"POST /ex/jira/{cloudId}/rest/api/3/search",
|
|
11405
|
+
"POST /ex/jira/{cloudId}/rest/api/3/search/approximate-count",
|
|
11406
|
+
"GET /ex/jira/{cloudId}/rest/api/3/search/jql",
|
|
11407
|
+
"POST /ex/jira/{cloudId}/rest/api/3/search/jql",
|
|
11408
|
+
"GET /ex/jira/{cloudId}/rest/api/3/status",
|
|
11409
|
+
"GET /ex/jira/{cloudId}/rest/api/3/status/{idOrName}",
|
|
11410
|
+
"GET /ex/jira/{cloudId}/rest/api/3/statuscategory",
|
|
11411
|
+
"GET /ex/jira/{cloudId}/rest/api/3/statuscategory/{idOrKey}",
|
|
11412
|
+
"GET /ex/jira/{cloudId}/rest/api/3/task/{taskId}",
|
|
11413
|
+
"GET /ex/jira/{cloudId}/rest/api/3/uiModifications",
|
|
11414
|
+
"POST /ex/jira/{cloudId}/rest/api/3/uiModifications",
|
|
11415
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/uiModifications/{uiModificationId}",
|
|
11416
|
+
"GET /ex/jira/{cloudId}/rest/api/3/universal_avatar/view/type/{type}",
|
|
11417
|
+
"GET /ex/jira/{cloudId}/rest/api/3/universal_avatar/view/type/{type}/avatar/{id}",
|
|
11418
|
+
"GET /ex/jira/{cloudId}/rest/api/3/universal_avatar/view/type/{type}/owner/{entityId}",
|
|
11419
|
+
"GET /ex/jira/{cloudId}/rest/api/3/version/{id}",
|
|
11420
|
+
"GET /ex/jira/{cloudId}/rest/api/3/version/{id}/relatedIssueCounts",
|
|
11421
|
+
"GET /ex/jira/{cloudId}/rest/api/3/version/{id}/relatedwork",
|
|
11422
|
+
"GET /ex/jira/{cloudId}/rest/api/3/version/{id}/unresolvedIssueCount",
|
|
11423
|
+
"GET /ex/jira/{cloudId}/rest/api/3/webhook",
|
|
11424
|
+
"POST /ex/jira/{cloudId}/rest/api/3/webhook",
|
|
11425
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/webhook",
|
|
11426
|
+
"GET /ex/jira/{cloudId}/rest/api/3/webhook/failed",
|
|
11427
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/webhook/refresh",
|
|
11428
|
+
"GET /ex/jira/{cloudId}/rest/api/3/worklog/deleted",
|
|
11429
|
+
"POST /ex/jira/{cloudId}/rest/api/3/worklog/list",
|
|
11430
|
+
"GET /ex/jira/{cloudId}/rest/api/3/worklog/updated"
|
|
10455
11431
|
]
|
|
10456
11432
|
},
|
|
10457
11433
|
{
|
|
10458
|
-
name: "
|
|
11434
|
+
name: "write:jira-work",
|
|
11435
|
+
description: "Create and edit issues in Jira, post comments, create worklogs, and delete issues.",
|
|
10459
11436
|
rules: [
|
|
10460
|
-
"
|
|
10461
|
-
"POST /
|
|
10462
|
-
"POST /
|
|
10463
|
-
"POST /
|
|
10464
|
-
"POST /
|
|
10465
|
-
"
|
|
10466
|
-
"POST /
|
|
11437
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/attachment/{id}",
|
|
11438
|
+
"POST /ex/jira/{cloudId}/rest/api/3/bulk/issues/delete",
|
|
11439
|
+
"POST /ex/jira/{cloudId}/rest/api/3/bulk/issues/fields",
|
|
11440
|
+
"POST /ex/jira/{cloudId}/rest/api/3/bulk/issues/move",
|
|
11441
|
+
"POST /ex/jira/{cloudId}/rest/api/3/bulk/issues/transition",
|
|
11442
|
+
"POST /ex/jira/{cloudId}/rest/api/3/bulk/issues/unwatch",
|
|
11443
|
+
"POST /ex/jira/{cloudId}/rest/api/3/bulk/issues/watch",
|
|
11444
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/comment/{commentId}/properties/{propertyKey}",
|
|
11445
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/comment/{commentId}/properties/{propertyKey}",
|
|
11446
|
+
"POST /ex/jira/{cloudId}/rest/api/3/dashboard",
|
|
11447
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/dashboard/bulk/edit",
|
|
11448
|
+
"POST /ex/jira/{cloudId}/rest/api/3/dashboard/{dashboardId}/gadget",
|
|
11449
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/dashboard/{dashboardId}/gadget/{gadgetId}",
|
|
11450
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/dashboard/{dashboardId}/gadget/{gadgetId}",
|
|
11451
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/dashboard/{dashboardId}/items/{itemId}/properties/{propertyKey}",
|
|
11452
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/dashboard/{dashboardId}/items/{itemId}/properties/{propertyKey}",
|
|
11453
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/dashboard/{id}",
|
|
11454
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/dashboard/{id}",
|
|
11455
|
+
"POST /ex/jira/{cloudId}/rest/api/3/dashboard/{id}/copy",
|
|
11456
|
+
"POST /ex/jira/{cloudId}/rest/api/3/filter",
|
|
11457
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/filter/defaultShareScope",
|
|
11458
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/filter/{id}",
|
|
11459
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/filter/{id}",
|
|
11460
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/filter/{id}/columns",
|
|
11461
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/filter/{id}/columns",
|
|
11462
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/filter/{id}/favourite",
|
|
11463
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/filter/{id}/favourite",
|
|
11464
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/filter/{id}/owner",
|
|
11465
|
+
"POST /ex/jira/{cloudId}/rest/api/3/filter/{id}/permission",
|
|
11466
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/filter/{id}/permission/{permissionId}",
|
|
11467
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issue",
|
|
11468
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issue/archive",
|
|
11469
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issue/archive",
|
|
11470
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issue/bulk",
|
|
11471
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issue/properties",
|
|
11472
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issue/properties/multi",
|
|
11473
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issue/properties/{propertyKey}",
|
|
11474
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issue/properties/{propertyKey}",
|
|
11475
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issue/unarchive",
|
|
11476
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}",
|
|
11477
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}",
|
|
11478
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/assignee",
|
|
11479
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/attachments",
|
|
11480
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/comment",
|
|
11481
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/comment/{id}",
|
|
11482
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/comment/{id}",
|
|
11483
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/notify",
|
|
11484
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/properties/{propertyKey}",
|
|
11485
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/properties/{propertyKey}",
|
|
11486
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/remotelink",
|
|
11487
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/remotelink",
|
|
11488
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/remotelink/{linkId}",
|
|
11489
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/remotelink/{linkId}",
|
|
11490
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/transitions",
|
|
11491
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/votes",
|
|
11492
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/votes",
|
|
11493
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/watchers",
|
|
11494
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/watchers",
|
|
11495
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/worklog",
|
|
11496
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/worklog",
|
|
11497
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/worklog/move",
|
|
11498
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/worklog/{id}",
|
|
11499
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/worklog/{id}",
|
|
11500
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/worklog/{worklogId}/properties/{propertyKey}",
|
|
11501
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issue/{issueIdOrKey}/worklog/{worklogId}/properties/{propertyKey}",
|
|
11502
|
+
"POST /ex/jira/{cloudId}/rest/api/3/issueLink",
|
|
11503
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/issueLink/{linkId}",
|
|
11504
|
+
"POST /ex/jira/{cloudId}/rest/api/3/plans/plan",
|
|
11505
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/plans/plan/{planId}",
|
|
11506
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/plans/plan/{planId}/archive",
|
|
11507
|
+
"POST /ex/jira/{cloudId}/rest/api/3/plans/plan/{planId}/duplicate",
|
|
11508
|
+
"POST /ex/jira/{cloudId}/rest/api/3/plans/plan/{planId}/team/atlassian",
|
|
11509
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/plans/plan/{planId}/team/atlassian/{atlassianTeamId}",
|
|
11510
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/plans/plan/{planId}/team/atlassian/{atlassianTeamId}",
|
|
11511
|
+
"POST /ex/jira/{cloudId}/rest/api/3/plans/plan/{planId}/team/planonly",
|
|
11512
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/plans/plan/{planId}/team/planonly/{planOnlyTeamId}",
|
|
11513
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/plans/plan/{planId}/team/planonly/{planOnlyTeamId}",
|
|
11514
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/plans/plan/{planId}/trash",
|
|
11515
|
+
"POST /ex/jira/{cloudId}/rest/api/3/task/{taskId}/cancel",
|
|
11516
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/user/properties/{propertyKey}",
|
|
11517
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/user/properties/{propertyKey}",
|
|
11518
|
+
"POST /ex/jira/{cloudId}/rest/api/3/version/{id}/relatedwork",
|
|
11519
|
+
"PUT /ex/jira/{cloudId}/rest/api/3/version/{id}/relatedwork",
|
|
11520
|
+
"DELETE /ex/jira/{cloudId}/rest/api/3/version/{versionId}/relatedwork/{relatedWorkId}"
|
|
10467
11521
|
]
|
|
10468
|
-
}
|
|
10469
|
-
|
|
11522
|
+
}
|
|
11523
|
+
]
|
|
11524
|
+
}
|
|
11525
|
+
]
|
|
11526
|
+
};
|
|
11527
|
+
|
|
11528
|
+
// ../../packages/core/src/firewalls/notion.generated.ts
|
|
11529
|
+
var notionFirewall = {
|
|
11530
|
+
name: "notion",
|
|
11531
|
+
description: "Notion API",
|
|
11532
|
+
placeholders: {
|
|
11533
|
+
NOTION_TOKEN: "ntn_00000000000Vm0PlaceHolder000000000000000000Aaa"
|
|
11534
|
+
},
|
|
11535
|
+
apis: [
|
|
11536
|
+
{
|
|
11537
|
+
base: "https://api.notion.com/v1",
|
|
11538
|
+
auth: {
|
|
11539
|
+
headers: {
|
|
11540
|
+
Authorization: "Bearer ${{ secrets.NOTION_TOKEN }}"
|
|
11541
|
+
}
|
|
11542
|
+
},
|
|
11543
|
+
permissions: [
|
|
11544
|
+
{
|
|
11545
|
+
name: "unrestricted",
|
|
11546
|
+
description: "Allow all endpoints",
|
|
11547
|
+
rules: ["ANY /{path*}"]
|
|
11548
|
+
},
|
|
11549
|
+
{
|
|
11550
|
+
name: "insert_comments",
|
|
11551
|
+
description: "Create comments",
|
|
11552
|
+
rules: ["POST /comments"]
|
|
11553
|
+
},
|
|
11554
|
+
{
|
|
11555
|
+
name: "insert_content",
|
|
11556
|
+
description: "Create pages, databases, blocks, data sources, and upload files",
|
|
11557
|
+
rules: [
|
|
11558
|
+
"PATCH /blocks/{block_id}/children",
|
|
11559
|
+
"POST /data_sources",
|
|
11560
|
+
"POST /databases",
|
|
11561
|
+
"POST /file_uploads",
|
|
11562
|
+
"POST /file_uploads/{file_upload_id}/complete",
|
|
11563
|
+
"POST /file_uploads/{file_upload_id}/send",
|
|
11564
|
+
"POST /pages",
|
|
11565
|
+
"POST /views",
|
|
11566
|
+
"POST /views/{view_id}/queries"
|
|
11567
|
+
]
|
|
11568
|
+
},
|
|
11569
|
+
{
|
|
11570
|
+
name: "read_comments",
|
|
11571
|
+
description: "Read comments",
|
|
11572
|
+
rules: ["GET /comments", "GET /comments/{comment_id}"]
|
|
11573
|
+
},
|
|
11574
|
+
{
|
|
11575
|
+
name: "read_content",
|
|
11576
|
+
description: "Read pages, databases, blocks, data sources, and files",
|
|
11577
|
+
rules: [
|
|
11578
|
+
"GET /blocks/{block_id}",
|
|
11579
|
+
"GET /blocks/{block_id}/children",
|
|
11580
|
+
"GET /data_sources/{data_source_id}",
|
|
11581
|
+
"POST /data_sources/{data_source_id}/query",
|
|
11582
|
+
"GET /data_sources/{data_source_id}/templates",
|
|
11583
|
+
"GET /databases/{database_id}",
|
|
11584
|
+
"GET /file_uploads",
|
|
11585
|
+
"GET /file_uploads/{file_upload_id}",
|
|
11586
|
+
"GET /pages/{page_id}",
|
|
11587
|
+
"GET /pages/{page_id}/markdown",
|
|
11588
|
+
"GET /pages/{page_id}/properties/{property_id}",
|
|
11589
|
+
"POST /search",
|
|
11590
|
+
"GET /views",
|
|
11591
|
+
"GET /views/{view_id}",
|
|
11592
|
+
"GET /views/{view_id}/queries/{query_id}"
|
|
11593
|
+
]
|
|
11594
|
+
},
|
|
11595
|
+
{
|
|
11596
|
+
name: "read_users",
|
|
11597
|
+
description: "Read user information",
|
|
11598
|
+
rules: ["GET /users", "GET /users/me", "GET /users/{user_id}"]
|
|
11599
|
+
},
|
|
11600
|
+
{
|
|
11601
|
+
name: "update_content",
|
|
11602
|
+
description: "Update and delete pages, databases, blocks, and data sources",
|
|
11603
|
+
rules: [
|
|
11604
|
+
"PATCH /blocks/{block_id}",
|
|
11605
|
+
"DELETE /blocks/{block_id}",
|
|
11606
|
+
"PATCH /data_sources/{data_source_id}",
|
|
11607
|
+
"PATCH /databases/{database_id}",
|
|
11608
|
+
"PATCH /pages/{page_id}",
|
|
11609
|
+
"PATCH /pages/{page_id}/markdown",
|
|
11610
|
+
"POST /pages/{page_id}/move",
|
|
11611
|
+
"PATCH /views/{view_id}",
|
|
11612
|
+
"DELETE /views/{view_id}",
|
|
11613
|
+
"DELETE /views/{view_id}/queries/{query_id}"
|
|
11614
|
+
]
|
|
11615
|
+
}
|
|
11616
|
+
]
|
|
11617
|
+
}
|
|
11618
|
+
]
|
|
11619
|
+
};
|
|
11620
|
+
|
|
11621
|
+
// ../../packages/core/src/firewalls/slack.generated.ts
|
|
11622
|
+
var slackFirewall = {
|
|
11623
|
+
name: "slack",
|
|
11624
|
+
description: "Slack API",
|
|
11625
|
+
placeholders: {
|
|
11626
|
+
SLACK_TOKEN: "xoxb-000000000000-0000000000000-Vm0PlaceHolder0000000000"
|
|
11627
|
+
},
|
|
11628
|
+
apis: [
|
|
11629
|
+
{
|
|
11630
|
+
base: "https://slack.com/api",
|
|
11631
|
+
auth: {
|
|
11632
|
+
headers: {
|
|
11633
|
+
Authorization: "Bearer ${{ secrets.SLACK_TOKEN }}"
|
|
11634
|
+
}
|
|
11635
|
+
},
|
|
11636
|
+
permissions: [
|
|
11637
|
+
{
|
|
11638
|
+
name: "unrestricted",
|
|
11639
|
+
description: "Allow all endpoints",
|
|
11640
|
+
rules: ["ANY /{path*}"]
|
|
11641
|
+
},
|
|
11642
|
+
{
|
|
11643
|
+
name: "admin",
|
|
11644
|
+
rules: [
|
|
11645
|
+
"POST /admin.audit.anomaly.allow.getItem",
|
|
11646
|
+
"POST /admin.audit.anomaly.allow.updateItem",
|
|
11647
|
+
"GET /team.accessLogs",
|
|
11648
|
+
"GET /team.billableInfo",
|
|
11649
|
+
"GET /team.integrationLogs"
|
|
11650
|
+
]
|
|
11651
|
+
},
|
|
11652
|
+
{
|
|
11653
|
+
name: "admin.analytics:read",
|
|
11654
|
+
rules: [
|
|
11655
|
+
"GET /admin.analytics.getFile",
|
|
11656
|
+
"GET /admin.analytics.messages.activity",
|
|
11657
|
+
"GET /admin.analytics.messages.metadata"
|
|
11658
|
+
]
|
|
11659
|
+
},
|
|
11660
|
+
{
|
|
11661
|
+
name: "admin.app_activities:read",
|
|
11662
|
+
rules: ["POST /admin.apps.activities.list"]
|
|
11663
|
+
},
|
|
11664
|
+
{
|
|
11665
|
+
name: "admin.apps:read",
|
|
11666
|
+
rules: [
|
|
11667
|
+
"GET /admin.apps.approved.list",
|
|
11668
|
+
"POST /admin.apps.config.lookup",
|
|
11669
|
+
"GET /admin.apps.requests.list",
|
|
11670
|
+
"GET /admin.apps.restricted.list"
|
|
11671
|
+
]
|
|
11672
|
+
},
|
|
11673
|
+
{
|
|
11674
|
+
name: "admin.apps:write",
|
|
11675
|
+
rules: [
|
|
11676
|
+
"POST /admin.apps.approve",
|
|
11677
|
+
"POST /admin.apps.clearResolution",
|
|
11678
|
+
"POST /admin.apps.config.set",
|
|
11679
|
+
"POST /admin.apps.requests.cancel",
|
|
11680
|
+
"POST /admin.apps.restrict",
|
|
11681
|
+
"POST /admin.apps.uninstall"
|
|
11682
|
+
]
|
|
11683
|
+
},
|
|
11684
|
+
{
|
|
11685
|
+
name: "admin.barriers:read",
|
|
11686
|
+
rules: ["GET /admin.barriers.list"]
|
|
11687
|
+
},
|
|
11688
|
+
{
|
|
11689
|
+
name: "admin.barriers:write",
|
|
11690
|
+
rules: [
|
|
11691
|
+
"POST /admin.barriers.create",
|
|
11692
|
+
"POST /admin.barriers.delete",
|
|
11693
|
+
"POST /admin.barriers.update"
|
|
11694
|
+
]
|
|
11695
|
+
},
|
|
11696
|
+
{
|
|
11697
|
+
name: "admin.conversations:manage_objects",
|
|
11698
|
+
rules: [
|
|
11699
|
+
"POST /admin.conversations.createForObjects",
|
|
11700
|
+
"POST /admin.conversations.linkObjects",
|
|
11701
|
+
"POST /admin.conversations.unlinkObjects"
|
|
11702
|
+
]
|
|
11703
|
+
},
|
|
11704
|
+
{
|
|
11705
|
+
name: "admin.conversations:read",
|
|
11706
|
+
rules: [
|
|
11707
|
+
"POST /admin.conversations.ekm.listOriginalConnectedChannelInfo",
|
|
11708
|
+
"POST /admin.conversations.getConversationPrefs",
|
|
11709
|
+
"POST /admin.conversations.getCustomRetention",
|
|
11710
|
+
"POST /admin.conversations.getTeams",
|
|
11711
|
+
"POST /admin.conversations.lookup",
|
|
11712
|
+
"GET /admin.conversations.restrictAccess.listGroups",
|
|
11713
|
+
"POST /admin.conversations.search"
|
|
11714
|
+
]
|
|
11715
|
+
},
|
|
11716
|
+
{
|
|
10470
11717
|
name: "admin.conversations:write",
|
|
10471
11718
|
rules: [
|
|
10472
11719
|
"POST /admin.conversations.archive",
|
|
@@ -11201,12 +12448,16 @@ var slackFirewall = {
|
|
|
11201
12448
|
|
|
11202
12449
|
// ../../packages/core/src/firewalls/index.ts
|
|
11203
12450
|
var builtinFirewalls = {
|
|
12451
|
+
confluence: confluenceFirewall,
|
|
12452
|
+
figma: figmaFirewall,
|
|
11204
12453
|
github: githubFirewall,
|
|
11205
12454
|
gmail: gmailFirewall,
|
|
11206
12455
|
"google-calendar": googleCalendarFirewall,
|
|
11207
12456
|
"google-docs": googleDocsFirewall,
|
|
11208
12457
|
"google-drive": googleDriveFirewall,
|
|
11209
12458
|
"google-sheets": googleSheetsFirewall,
|
|
12459
|
+
jira: jiraFirewall,
|
|
12460
|
+
notion: notionFirewall,
|
|
11210
12461
|
slack: slackFirewall
|
|
11211
12462
|
};
|
|
11212
12463
|
|
|
@@ -12032,9 +13283,25 @@ var zeroOrgDeleteContract = c29.router({
|
|
|
12032
13283
|
}
|
|
12033
13284
|
});
|
|
12034
13285
|
|
|
12035
|
-
// ../../packages/core/src/contracts/zero-org-
|
|
13286
|
+
// ../../packages/core/src/contracts/zero-org-list.ts
|
|
12036
13287
|
var c30 = initContract();
|
|
12037
|
-
var
|
|
13288
|
+
var zeroOrgListContract = c30.router({
|
|
13289
|
+
list: {
|
|
13290
|
+
method: "GET",
|
|
13291
|
+
path: "/api/zero/org/list",
|
|
13292
|
+
headers: authHeadersSchema,
|
|
13293
|
+
responses: {
|
|
13294
|
+
200: orgListResponseSchema,
|
|
13295
|
+
401: apiErrorSchema,
|
|
13296
|
+
500: apiErrorSchema
|
|
13297
|
+
},
|
|
13298
|
+
summary: "List all accessible orgs for the authenticated user"
|
|
13299
|
+
}
|
|
13300
|
+
});
|
|
13301
|
+
|
|
13302
|
+
// ../../packages/core/src/contracts/zero-org-members.ts
|
|
13303
|
+
var c31 = initContract();
|
|
13304
|
+
var zeroOrgMembersContract = c31.router({
|
|
12038
13305
|
members: {
|
|
12039
13306
|
method: "GET",
|
|
12040
13307
|
path: "/api/zero/org/members",
|
|
@@ -12078,7 +13345,7 @@ var zeroOrgMembersContract = c30.router({
|
|
|
12078
13345
|
summary: "Remove a member from the org (zero proxy)"
|
|
12079
13346
|
}
|
|
12080
13347
|
});
|
|
12081
|
-
var zeroOrgInviteContract =
|
|
13348
|
+
var zeroOrgInviteContract = c31.router({
|
|
12082
13349
|
invite: {
|
|
12083
13350
|
method: "POST",
|
|
12084
13351
|
path: "/api/zero/org/invite",
|
|
@@ -12097,8 +13364,8 @@ var zeroOrgInviteContract = c30.router({
|
|
|
12097
13364
|
|
|
12098
13365
|
// ../../packages/core/src/contracts/zero-composes.ts
|
|
12099
13366
|
import { z as z34 } from "zod";
|
|
12100
|
-
var
|
|
12101
|
-
var zeroComposesMainContract =
|
|
13367
|
+
var c32 = initContract();
|
|
13368
|
+
var zeroComposesMainContract = c32.router({
|
|
12102
13369
|
getByName: {
|
|
12103
13370
|
method: "GET",
|
|
12104
13371
|
path: "/api/zero/composes",
|
|
@@ -12116,7 +13383,7 @@ var zeroComposesMainContract = c31.router({
|
|
|
12116
13383
|
summary: "Get agent compose by name (zero proxy)"
|
|
12117
13384
|
}
|
|
12118
13385
|
});
|
|
12119
|
-
var zeroComposesByIdContract =
|
|
13386
|
+
var zeroComposesByIdContract = c32.router({
|
|
12120
13387
|
getById: {
|
|
12121
13388
|
method: "GET",
|
|
12122
13389
|
path: "/api/zero/composes/:id",
|
|
@@ -12139,9 +13406,9 @@ var zeroComposesByIdContract = c31.router({
|
|
|
12139
13406
|
pathParams: z34.object({
|
|
12140
13407
|
id: z34.string().uuid("Compose ID is required")
|
|
12141
13408
|
}),
|
|
12142
|
-
body:
|
|
13409
|
+
body: c32.noBody(),
|
|
12143
13410
|
responses: {
|
|
12144
|
-
204:
|
|
13411
|
+
204: c32.noBody(),
|
|
12145
13412
|
401: apiErrorSchema,
|
|
12146
13413
|
403: apiErrorSchema,
|
|
12147
13414
|
404: apiErrorSchema,
|
|
@@ -12150,7 +13417,7 @@ var zeroComposesByIdContract = c31.router({
|
|
|
12150
13417
|
summary: "Delete agent compose (zero proxy)"
|
|
12151
13418
|
}
|
|
12152
13419
|
});
|
|
12153
|
-
var zeroComposesListContract =
|
|
13420
|
+
var zeroComposesListContract = c32.router({
|
|
12154
13421
|
list: {
|
|
12155
13422
|
method: "GET",
|
|
12156
13423
|
path: "/api/zero/composes/list",
|
|
@@ -12182,8 +13449,8 @@ var zeroRunRequestSchema = unifiedRunRequestSchema.omit({
|
|
|
12182
13449
|
vars: true,
|
|
12183
13450
|
secrets: true
|
|
12184
13451
|
});
|
|
12185
|
-
var
|
|
12186
|
-
var zeroRunsMainContract =
|
|
13452
|
+
var c33 = initContract();
|
|
13453
|
+
var zeroRunsMainContract = c33.router({
|
|
12187
13454
|
create: {
|
|
12188
13455
|
method: "POST",
|
|
12189
13456
|
path: "/api/zero/runs",
|
|
@@ -12199,7 +13466,7 @@ var zeroRunsMainContract = c32.router({
|
|
|
12199
13466
|
summary: "Create and execute agent run (zero proxy)"
|
|
12200
13467
|
}
|
|
12201
13468
|
});
|
|
12202
|
-
var zeroRunsByIdContract =
|
|
13469
|
+
var zeroRunsByIdContract = c33.router({
|
|
12203
13470
|
getById: {
|
|
12204
13471
|
method: "GET",
|
|
12205
13472
|
path: "/api/zero/runs/:id",
|
|
@@ -12216,7 +13483,7 @@ var zeroRunsByIdContract = c32.router({
|
|
|
12216
13483
|
summary: "Get agent run by ID (zero proxy)"
|
|
12217
13484
|
}
|
|
12218
13485
|
});
|
|
12219
|
-
var zeroRunsCancelContract =
|
|
13486
|
+
var zeroRunsCancelContract = c33.router({
|
|
12220
13487
|
cancel: {
|
|
12221
13488
|
method: "POST",
|
|
12222
13489
|
path: "/api/zero/runs/:id/cancel",
|
|
@@ -12235,7 +13502,7 @@ var zeroRunsCancelContract = c32.router({
|
|
|
12235
13502
|
summary: "Cancel a pending or running run (zero proxy)"
|
|
12236
13503
|
}
|
|
12237
13504
|
});
|
|
12238
|
-
var zeroRunsQueueContract =
|
|
13505
|
+
var zeroRunsQueueContract = c33.router({
|
|
12239
13506
|
getQueue: {
|
|
12240
13507
|
method: "GET",
|
|
12241
13508
|
path: "/api/zero/runs/queue",
|
|
@@ -12248,7 +13515,7 @@ var zeroRunsQueueContract = c32.router({
|
|
|
12248
13515
|
summary: "Get org run queue status (zero proxy)"
|
|
12249
13516
|
}
|
|
12250
13517
|
});
|
|
12251
|
-
var zeroRunAgentEventsContract =
|
|
13518
|
+
var zeroRunAgentEventsContract = c33.router({
|
|
12252
13519
|
getAgentEvents: {
|
|
12253
13520
|
method: "GET",
|
|
12254
13521
|
path: "/api/zero/runs/:id/telemetry/agent",
|
|
@@ -12272,8 +13539,8 @@ var zeroRunAgentEventsContract = c32.router({
|
|
|
12272
13539
|
|
|
12273
13540
|
// ../../packages/core/src/contracts/zero-schedules.ts
|
|
12274
13541
|
import { z as z36 } from "zod";
|
|
12275
|
-
var
|
|
12276
|
-
var zeroSchedulesMainContract =
|
|
13542
|
+
var c34 = initContract();
|
|
13543
|
+
var zeroSchedulesMainContract = c34.router({
|
|
12277
13544
|
deploy: {
|
|
12278
13545
|
method: "POST",
|
|
12279
13546
|
path: "/api/zero/schedules",
|
|
@@ -12301,7 +13568,7 @@ var zeroSchedulesMainContract = c33.router({
|
|
|
12301
13568
|
summary: "List all schedules (zero proxy)"
|
|
12302
13569
|
}
|
|
12303
13570
|
});
|
|
12304
|
-
var zeroSchedulesByNameContract =
|
|
13571
|
+
var zeroSchedulesByNameContract = c34.router({
|
|
12305
13572
|
delete: {
|
|
12306
13573
|
method: "DELETE",
|
|
12307
13574
|
path: "/api/zero/schedules/:name",
|
|
@@ -12313,7 +13580,7 @@ var zeroSchedulesByNameContract = c33.router({
|
|
|
12313
13580
|
composeId: z36.string().uuid("Compose ID required")
|
|
12314
13581
|
}),
|
|
12315
13582
|
responses: {
|
|
12316
|
-
204:
|
|
13583
|
+
204: c34.noBody(),
|
|
12317
13584
|
401: apiErrorSchema,
|
|
12318
13585
|
403: apiErrorSchema,
|
|
12319
13586
|
404: apiErrorSchema
|
|
@@ -12321,7 +13588,7 @@ var zeroSchedulesByNameContract = c33.router({
|
|
|
12321
13588
|
summary: "Delete schedule (zero proxy)"
|
|
12322
13589
|
}
|
|
12323
13590
|
});
|
|
12324
|
-
var zeroSchedulesEnableContract =
|
|
13591
|
+
var zeroSchedulesEnableContract = c34.router({
|
|
12325
13592
|
enable: {
|
|
12326
13593
|
method: "POST",
|
|
12327
13594
|
path: "/api/zero/schedules/:name/enable",
|
|
@@ -12364,8 +13631,8 @@ var zeroSchedulesEnableContract = c33.router({
|
|
|
12364
13631
|
|
|
12365
13632
|
// ../../packages/core/src/contracts/zero-model-providers.ts
|
|
12366
13633
|
import { z as z37 } from "zod";
|
|
12367
|
-
var
|
|
12368
|
-
var zeroModelProvidersMainContract =
|
|
13634
|
+
var c35 = initContract();
|
|
13635
|
+
var zeroModelProvidersMainContract = c35.router({
|
|
12369
13636
|
list: {
|
|
12370
13637
|
method: "GET",
|
|
12371
13638
|
path: "/api/zero/model-providers",
|
|
@@ -12393,7 +13660,7 @@ var zeroModelProvidersMainContract = c34.router({
|
|
|
12393
13660
|
summary: "Create or update an org-level model provider (admin only)"
|
|
12394
13661
|
}
|
|
12395
13662
|
});
|
|
12396
|
-
var zeroModelProvidersByTypeContract =
|
|
13663
|
+
var zeroModelProvidersByTypeContract = c35.router({
|
|
12397
13664
|
delete: {
|
|
12398
13665
|
method: "DELETE",
|
|
12399
13666
|
path: "/api/zero/model-providers/:type",
|
|
@@ -12402,7 +13669,7 @@ var zeroModelProvidersByTypeContract = c34.router({
|
|
|
12402
13669
|
type: modelProviderTypeSchema
|
|
12403
13670
|
}),
|
|
12404
13671
|
responses: {
|
|
12405
|
-
204:
|
|
13672
|
+
204: c35.noBody(),
|
|
12406
13673
|
401: apiErrorSchema,
|
|
12407
13674
|
403: apiErrorSchema,
|
|
12408
13675
|
404: apiErrorSchema,
|
|
@@ -12411,7 +13678,7 @@ var zeroModelProvidersByTypeContract = c34.router({
|
|
|
12411
13678
|
summary: "Delete an org-level model provider (admin only)"
|
|
12412
13679
|
}
|
|
12413
13680
|
});
|
|
12414
|
-
var zeroModelProvidersDefaultContract =
|
|
13681
|
+
var zeroModelProvidersDefaultContract = c35.router({
|
|
12415
13682
|
setDefault: {
|
|
12416
13683
|
method: "POST",
|
|
12417
13684
|
path: "/api/zero/model-providers/:type/default",
|
|
@@ -12430,7 +13697,7 @@ var zeroModelProvidersDefaultContract = c34.router({
|
|
|
12430
13697
|
summary: "Set org-level model provider as default (admin only)"
|
|
12431
13698
|
}
|
|
12432
13699
|
});
|
|
12433
|
-
var zeroModelProvidersUpdateModelContract =
|
|
13700
|
+
var zeroModelProvidersUpdateModelContract = c35.router({
|
|
12434
13701
|
updateModel: {
|
|
12435
13702
|
method: "PATCH",
|
|
12436
13703
|
path: "/api/zero/model-providers/:type/model",
|
|
@@ -12451,8 +13718,8 @@ var zeroModelProvidersUpdateModelContract = c34.router({
|
|
|
12451
13718
|
});
|
|
12452
13719
|
|
|
12453
13720
|
// ../../packages/core/src/contracts/zero-user-preferences.ts
|
|
12454
|
-
var
|
|
12455
|
-
var zeroUserPreferencesContract =
|
|
13721
|
+
var c36 = initContract();
|
|
13722
|
+
var zeroUserPreferencesContract = c36.router({
|
|
12456
13723
|
get: {
|
|
12457
13724
|
method: "GET",
|
|
12458
13725
|
path: "/api/zero/user-preferences",
|
|
@@ -12480,8 +13747,8 @@ var zeroUserPreferencesContract = c35.router({
|
|
|
12480
13747
|
});
|
|
12481
13748
|
|
|
12482
13749
|
// ../../packages/core/src/contracts/zero-secrets.ts
|
|
12483
|
-
var
|
|
12484
|
-
var zeroSecretsContract =
|
|
13750
|
+
var c37 = initContract();
|
|
13751
|
+
var zeroSecretsContract = c37.router({
|
|
12485
13752
|
set: {
|
|
12486
13753
|
method: "POST",
|
|
12487
13754
|
path: "/api/zero/secrets",
|
|
@@ -12497,7 +13764,7 @@ var zeroSecretsContract = c36.router({
|
|
|
12497
13764
|
summary: "Create or update a secret"
|
|
12498
13765
|
}
|
|
12499
13766
|
});
|
|
12500
|
-
var zeroVariablesContract =
|
|
13767
|
+
var zeroVariablesContract = c37.router({
|
|
12501
13768
|
set: {
|
|
12502
13769
|
method: "POST",
|
|
12503
13770
|
path: "/api/zero/variables",
|
|
@@ -12516,8 +13783,8 @@ var zeroVariablesContract = c36.router({
|
|
|
12516
13783
|
|
|
12517
13784
|
// ../../packages/core/src/contracts/zero-sessions.ts
|
|
12518
13785
|
import { z as z38 } from "zod";
|
|
12519
|
-
var
|
|
12520
|
-
var zeroSessionsByIdContract =
|
|
13786
|
+
var c38 = initContract();
|
|
13787
|
+
var zeroSessionsByIdContract = c38.router({
|
|
12521
13788
|
getById: {
|
|
12522
13789
|
method: "GET",
|
|
12523
13790
|
path: "/api/zero/sessions/:id",
|
|
@@ -12537,8 +13804,8 @@ var zeroSessionsByIdContract = c37.router({
|
|
|
12537
13804
|
|
|
12538
13805
|
// ../../packages/core/src/contracts/integrations.ts
|
|
12539
13806
|
import { z as z39 } from "zod";
|
|
12540
|
-
var
|
|
12541
|
-
var integrationsSlackMessageContract =
|
|
13807
|
+
var c39 = initContract();
|
|
13808
|
+
var integrationsSlackMessageContract = c39.router({
|
|
12542
13809
|
sendMessage: {
|
|
12543
13810
|
method: "POST",
|
|
12544
13811
|
path: "/api/agent/integrations/slack/message",
|
|
@@ -12564,6 +13831,147 @@ var integrationsSlackMessageContract = c38.router({
|
|
|
12564
13831
|
}
|
|
12565
13832
|
});
|
|
12566
13833
|
|
|
13834
|
+
// ../../packages/core/src/contracts/zero-billing.ts
|
|
13835
|
+
import { z as z40 } from "zod";
|
|
13836
|
+
var c40 = initContract();
|
|
13837
|
+
var autoRechargeSchema = z40.object({
|
|
13838
|
+
enabled: z40.boolean(),
|
|
13839
|
+
threshold: z40.number().nullable(),
|
|
13840
|
+
amount: z40.number().nullable()
|
|
13841
|
+
});
|
|
13842
|
+
var billingStatusResponseSchema = z40.object({
|
|
13843
|
+
tier: z40.string(),
|
|
13844
|
+
credits: z40.number(),
|
|
13845
|
+
subscriptionStatus: z40.string().nullable(),
|
|
13846
|
+
currentPeriodEnd: z40.string().nullable(),
|
|
13847
|
+
hasSubscription: z40.boolean(),
|
|
13848
|
+
autoRecharge: autoRechargeSchema
|
|
13849
|
+
});
|
|
13850
|
+
var checkoutResponseSchema = z40.object({
|
|
13851
|
+
url: z40.string()
|
|
13852
|
+
});
|
|
13853
|
+
var portalResponseSchema = z40.object({
|
|
13854
|
+
url: z40.string()
|
|
13855
|
+
});
|
|
13856
|
+
var checkoutRequestSchema = z40.object({
|
|
13857
|
+
tier: z40.enum(["pro", "team"]),
|
|
13858
|
+
successUrl: z40.string().url(),
|
|
13859
|
+
cancelUrl: z40.string().url()
|
|
13860
|
+
});
|
|
13861
|
+
var portalRequestSchema = z40.object({
|
|
13862
|
+
returnUrl: z40.string().min(1)
|
|
13863
|
+
});
|
|
13864
|
+
var autoRechargeUpdateRequestSchema = z40.object({
|
|
13865
|
+
enabled: z40.boolean(),
|
|
13866
|
+
threshold: z40.number().int().positive().optional(),
|
|
13867
|
+
amount: z40.number().int().min(1e3).optional()
|
|
13868
|
+
});
|
|
13869
|
+
var zeroBillingStatusContract = c40.router({
|
|
13870
|
+
get: {
|
|
13871
|
+
method: "GET",
|
|
13872
|
+
path: "/api/zero/billing/status",
|
|
13873
|
+
headers: authHeadersSchema,
|
|
13874
|
+
responses: {
|
|
13875
|
+
200: billingStatusResponseSchema,
|
|
13876
|
+
401: apiErrorSchema,
|
|
13877
|
+
500: apiErrorSchema
|
|
13878
|
+
},
|
|
13879
|
+
summary: "Get billing status for current org"
|
|
13880
|
+
}
|
|
13881
|
+
});
|
|
13882
|
+
var zeroBillingCheckoutContract = c40.router({
|
|
13883
|
+
create: {
|
|
13884
|
+
method: "POST",
|
|
13885
|
+
path: "/api/zero/billing/checkout",
|
|
13886
|
+
headers: authHeadersSchema,
|
|
13887
|
+
body: checkoutRequestSchema,
|
|
13888
|
+
responses: {
|
|
13889
|
+
200: checkoutResponseSchema,
|
|
13890
|
+
400: apiErrorSchema,
|
|
13891
|
+
401: apiErrorSchema,
|
|
13892
|
+
500: apiErrorSchema,
|
|
13893
|
+
503: apiErrorSchema
|
|
13894
|
+
},
|
|
13895
|
+
summary: "Create Stripe checkout session"
|
|
13896
|
+
}
|
|
13897
|
+
});
|
|
13898
|
+
var zeroBillingPortalContract = c40.router({
|
|
13899
|
+
create: {
|
|
13900
|
+
method: "POST",
|
|
13901
|
+
path: "/api/zero/billing/portal",
|
|
13902
|
+
headers: authHeadersSchema,
|
|
13903
|
+
body: portalRequestSchema,
|
|
13904
|
+
responses: {
|
|
13905
|
+
200: portalResponseSchema,
|
|
13906
|
+
400: apiErrorSchema,
|
|
13907
|
+
401: apiErrorSchema,
|
|
13908
|
+
500: apiErrorSchema,
|
|
13909
|
+
503: apiErrorSchema
|
|
13910
|
+
},
|
|
13911
|
+
summary: "Create Stripe billing portal session"
|
|
13912
|
+
}
|
|
13913
|
+
});
|
|
13914
|
+
var zeroBillingAutoRechargeContract = c40.router({
|
|
13915
|
+
get: {
|
|
13916
|
+
method: "GET",
|
|
13917
|
+
path: "/api/zero/billing/auto-recharge",
|
|
13918
|
+
headers: authHeadersSchema,
|
|
13919
|
+
responses: {
|
|
13920
|
+
200: autoRechargeSchema,
|
|
13921
|
+
401: apiErrorSchema,
|
|
13922
|
+
500: apiErrorSchema
|
|
13923
|
+
},
|
|
13924
|
+
summary: "Get auto-recharge configuration"
|
|
13925
|
+
},
|
|
13926
|
+
update: {
|
|
13927
|
+
method: "PUT",
|
|
13928
|
+
path: "/api/zero/billing/auto-recharge",
|
|
13929
|
+
headers: authHeadersSchema,
|
|
13930
|
+
body: autoRechargeUpdateRequestSchema,
|
|
13931
|
+
responses: {
|
|
13932
|
+
200: autoRechargeSchema,
|
|
13933
|
+
400: apiErrorSchema,
|
|
13934
|
+
401: apiErrorSchema,
|
|
13935
|
+
403: apiErrorSchema,
|
|
13936
|
+
500: apiErrorSchema
|
|
13937
|
+
},
|
|
13938
|
+
summary: "Update auto-recharge configuration"
|
|
13939
|
+
}
|
|
13940
|
+
});
|
|
13941
|
+
|
|
13942
|
+
// ../../packages/core/src/contracts/zero-usage.ts
|
|
13943
|
+
import { z as z41 } from "zod";
|
|
13944
|
+
var c41 = initContract();
|
|
13945
|
+
var memberUsageSchema = z41.object({
|
|
13946
|
+
userId: z41.string(),
|
|
13947
|
+
email: z41.string(),
|
|
13948
|
+
inputTokens: z41.number(),
|
|
13949
|
+
outputTokens: z41.number(),
|
|
13950
|
+
cacheReadInputTokens: z41.number(),
|
|
13951
|
+
cacheCreationInputTokens: z41.number(),
|
|
13952
|
+
creditsCharged: z41.number()
|
|
13953
|
+
});
|
|
13954
|
+
var usageMembersResponseSchema = z41.object({
|
|
13955
|
+
period: z41.object({
|
|
13956
|
+
start: z41.string(),
|
|
13957
|
+
end: z41.string()
|
|
13958
|
+
}).nullable(),
|
|
13959
|
+
members: z41.array(memberUsageSchema)
|
|
13960
|
+
});
|
|
13961
|
+
var zeroUsageMembersContract = c41.router({
|
|
13962
|
+
get: {
|
|
13963
|
+
method: "GET",
|
|
13964
|
+
path: "/api/zero/usage/members",
|
|
13965
|
+
headers: authHeadersSchema,
|
|
13966
|
+
responses: {
|
|
13967
|
+
200: usageMembersResponseSchema,
|
|
13968
|
+
401: apiErrorSchema,
|
|
13969
|
+
500: apiErrorSchema
|
|
13970
|
+
},
|
|
13971
|
+
summary: "Get per-member usage for current billing period"
|
|
13972
|
+
}
|
|
13973
|
+
});
|
|
13974
|
+
|
|
12567
13975
|
// ../../packages/core/src/storage-names.ts
|
|
12568
13976
|
function getInstructionsStorageName(agentName) {
|
|
12569
13977
|
return `agent-instructions@${agentName}`;
|
|
@@ -13203,7 +14611,7 @@ function getConfigPath() {
|
|
|
13203
14611
|
return join2(homedir2(), ".vm0", "config.json");
|
|
13204
14612
|
}
|
|
13205
14613
|
var infoCommand = new Command6().name("info").description("Display environment and debug information").action(async () => {
|
|
13206
|
-
console.log(chalk4.bold(`VM0 CLI v${"9.
|
|
14614
|
+
console.log(chalk4.bold(`VM0 CLI v${"9.75.1"}`));
|
|
13207
14615
|
console.log();
|
|
13208
14616
|
const config = await loadConfig();
|
|
13209
14617
|
const hasEnvToken = !!process.env.VM0_TOKEN;
|
|
@@ -13841,35 +15249,6 @@ async function getConnector(type2) {
|
|
|
13841
15249
|
handleError(result, `Failed to get connector "${type2}"`);
|
|
13842
15250
|
}
|
|
13843
15251
|
|
|
13844
|
-
// src/lib/api/domains/usage.ts
|
|
13845
|
-
async function getUsage(options) {
|
|
13846
|
-
const baseUrl = await getBaseUrl();
|
|
13847
|
-
const headers = await getHeaders();
|
|
13848
|
-
const activeOrg = await getActiveOrg();
|
|
13849
|
-
if (!activeOrg) {
|
|
13850
|
-
throw new Error(
|
|
13851
|
-
"No active organization configured. Run: vm0 org use <slug>"
|
|
13852
|
-
);
|
|
13853
|
-
}
|
|
13854
|
-
const params = new URLSearchParams({
|
|
13855
|
-
start_date: options.startDate,
|
|
13856
|
-
end_date: options.endDate,
|
|
13857
|
-
org: activeOrg
|
|
13858
|
-
});
|
|
13859
|
-
const response = await fetch(`${baseUrl}/api/usage?${params}`, {
|
|
13860
|
-
method: "GET",
|
|
13861
|
-
headers
|
|
13862
|
-
});
|
|
13863
|
-
if (!response.ok) {
|
|
13864
|
-
const body = await response.json();
|
|
13865
|
-
handleError(
|
|
13866
|
-
{ status: response.status, body },
|
|
13867
|
-
"Failed to fetch usage data"
|
|
13868
|
-
);
|
|
13869
|
-
}
|
|
13870
|
-
return response.json();
|
|
13871
|
-
}
|
|
13872
|
-
|
|
13873
15252
|
// src/lib/api/domains/user-preferences.ts
|
|
13874
15253
|
import { initClient as initClient11 } from "@ts-rest/core";
|
|
13875
15254
|
async function getUserPreferences() {
|
|
@@ -13992,8 +15371,8 @@ async function resolveSkills(skillUrls) {
|
|
|
13992
15371
|
}
|
|
13993
15372
|
|
|
13994
15373
|
// src/lib/domain/yaml-validator.ts
|
|
13995
|
-
import { z as
|
|
13996
|
-
var cliAgentNameSchema =
|
|
15374
|
+
import { z as z42 } from "zod";
|
|
15375
|
+
var cliAgentNameSchema = z42.string().min(3, "Agent name must be at least 3 characters").max(64, "Agent name must be 64 characters or less").regex(
|
|
13997
15376
|
/^[a-zA-Z0-9]([a-zA-Z0-9-]{0,62}[a-zA-Z0-9])?$/,
|
|
13998
15377
|
"Agent name must start and end with letter or number, and contain only letters, numbers, and hyphens"
|
|
13999
15378
|
);
|
|
@@ -14007,7 +15386,7 @@ var cliAgentDefinitionSchema = agentDefinitionSchema.superRefine(
|
|
|
14007
15386
|
resolveSkillRef(skillRef);
|
|
14008
15387
|
} catch (error) {
|
|
14009
15388
|
ctx.addIssue({
|
|
14010
|
-
code:
|
|
15389
|
+
code: z42.ZodIssueCode.custom,
|
|
14011
15390
|
message: error instanceof Error ? error.message : `Invalid skill reference: ${skillRef}`,
|
|
14012
15391
|
path: ["skills", i]
|
|
14013
15392
|
});
|
|
@@ -14017,15 +15396,15 @@ var cliAgentDefinitionSchema = agentDefinitionSchema.superRefine(
|
|
|
14017
15396
|
}
|
|
14018
15397
|
}
|
|
14019
15398
|
);
|
|
14020
|
-
var cliComposeSchema =
|
|
14021
|
-
version:
|
|
14022
|
-
agents:
|
|
14023
|
-
volumes:
|
|
15399
|
+
var cliComposeSchema = z42.object({
|
|
15400
|
+
version: z42.string().min(1, "Missing config.version"),
|
|
15401
|
+
agents: z42.record(cliAgentNameSchema, cliAgentDefinitionSchema),
|
|
15402
|
+
volumes: z42.record(z42.string(), volumeConfigSchema).optional()
|
|
14024
15403
|
}).superRefine((config, ctx) => {
|
|
14025
15404
|
const agentKeys = Object.keys(config.agents);
|
|
14026
15405
|
if (agentKeys.length === 0) {
|
|
14027
15406
|
ctx.addIssue({
|
|
14028
|
-
code:
|
|
15407
|
+
code: z42.ZodIssueCode.custom,
|
|
14029
15408
|
message: "agents must have at least one agent defined",
|
|
14030
15409
|
path: ["agents"]
|
|
14031
15410
|
});
|
|
@@ -14033,7 +15412,7 @@ var cliComposeSchema = z40.object({
|
|
|
14033
15412
|
}
|
|
14034
15413
|
if (agentKeys.length > 1) {
|
|
14035
15414
|
ctx.addIssue({
|
|
14036
|
-
code:
|
|
15415
|
+
code: z42.ZodIssueCode.custom,
|
|
14037
15416
|
message: "Multiple agents not supported yet. Only one agent allowed.",
|
|
14038
15417
|
path: ["agents"]
|
|
14039
15418
|
});
|
|
@@ -14045,7 +15424,7 @@ var cliComposeSchema = z40.object({
|
|
|
14045
15424
|
if (agentVolumes && agentVolumes.length > 0) {
|
|
14046
15425
|
if (!config.volumes) {
|
|
14047
15426
|
ctx.addIssue({
|
|
14048
|
-
code:
|
|
15427
|
+
code: z42.ZodIssueCode.custom,
|
|
14049
15428
|
message: "Agent references volumes but no volumes section defined. Each volume must have explicit name and version.",
|
|
14050
15429
|
path: ["volumes"]
|
|
14051
15430
|
});
|
|
@@ -14055,7 +15434,7 @@ var cliComposeSchema = z40.object({
|
|
|
14055
15434
|
const parts = volDeclaration.split(":");
|
|
14056
15435
|
if (parts.length !== 2) {
|
|
14057
15436
|
ctx.addIssue({
|
|
14058
|
-
code:
|
|
15437
|
+
code: z42.ZodIssueCode.custom,
|
|
14059
15438
|
message: `Invalid volume declaration: ${volDeclaration}. Expected format: volume-key:/mount/path`,
|
|
14060
15439
|
path: ["agents", agentName, "volumes"]
|
|
14061
15440
|
});
|
|
@@ -14064,7 +15443,7 @@ var cliComposeSchema = z40.object({
|
|
|
14064
15443
|
const volumeKey = parts[0].trim();
|
|
14065
15444
|
if (!config.volumes[volumeKey]) {
|
|
14066
15445
|
ctx.addIssue({
|
|
14067
|
-
code:
|
|
15446
|
+
code: z42.ZodIssueCode.custom,
|
|
14068
15447
|
message: `Volume "${volumeKey}" is not defined in volumes section. Each volume must have explicit name and version.`,
|
|
14069
15448
|
path: ["volumes", volumeKey]
|
|
14070
15449
|
});
|
|
@@ -15263,7 +16642,7 @@ var composeCommand = new Command7().name("compose").description("Create or updat
|
|
|
15263
16642
|
options.autoUpdate = false;
|
|
15264
16643
|
}
|
|
15265
16644
|
if (options.autoUpdate !== false) {
|
|
15266
|
-
await startSilentUpgrade("9.
|
|
16645
|
+
await startSilentUpgrade("9.75.1");
|
|
15267
16646
|
}
|
|
15268
16647
|
try {
|
|
15269
16648
|
let result;
|
|
@@ -16098,7 +17477,7 @@ var mainRunCommand = new Command8().name("run").description("Run an agent").argu
|
|
|
16098
17477
|
withErrorHandler(
|
|
16099
17478
|
async (identifier, prompt, options) => {
|
|
16100
17479
|
if (options.autoUpdate !== false) {
|
|
16101
|
-
await startSilentUpgrade("9.
|
|
17480
|
+
await startSilentUpgrade("9.75.1");
|
|
16102
17481
|
}
|
|
16103
17482
|
const { org, name, version } = parseIdentifier(identifier);
|
|
16104
17483
|
let composeId;
|
|
@@ -17854,7 +19233,7 @@ var cookAction = new Command35().name("cook").description("Quick start: prepare,
|
|
|
17854
19233
|
withErrorHandler(
|
|
17855
19234
|
async (prompt, options) => {
|
|
17856
19235
|
if (options.autoUpdate !== false) {
|
|
17857
|
-
const shouldExit = await checkAndUpgrade("9.
|
|
19236
|
+
const shouldExit = await checkAndUpgrade("9.75.1", prompt);
|
|
17858
19237
|
if (shouldExit) {
|
|
17859
19238
|
process.exit(0);
|
|
17860
19239
|
}
|
|
@@ -18566,26 +19945,6 @@ var ApiClient = class {
|
|
|
18566
19945
|
const message = errorBody.error?.message || `Failed to list runs for schedule "${params.name}"`;
|
|
18567
19946
|
throw new Error(message);
|
|
18568
19947
|
}
|
|
18569
|
-
/**
|
|
18570
|
-
* Get usage statistics
|
|
18571
|
-
*/
|
|
18572
|
-
async getUsage(options) {
|
|
18573
|
-
const baseUrl = await this.getBaseUrl();
|
|
18574
|
-
const headers = await this.getHeaders();
|
|
18575
|
-
const params = new URLSearchParams({
|
|
18576
|
-
start_date: options.startDate,
|
|
18577
|
-
end_date: options.endDate
|
|
18578
|
-
});
|
|
18579
|
-
const response = await fetch(`${baseUrl}/api/usage?${params}`, {
|
|
18580
|
-
method: "GET",
|
|
18581
|
-
headers
|
|
18582
|
-
});
|
|
18583
|
-
if (!response.ok) {
|
|
18584
|
-
const error = await response.json();
|
|
18585
|
-
throw new Error(error.error?.message || "Failed to fetch usage data");
|
|
18586
|
-
}
|
|
18587
|
-
return response.json();
|
|
18588
|
-
}
|
|
18589
19948
|
/**
|
|
18590
19949
|
* Generic GET request
|
|
18591
19950
|
*/
|
|
@@ -20236,7 +21595,7 @@ var listCommand9 = new Command65().name("list").alias("ls").description("List al
|
|
|
20236
21595
|
);
|
|
20237
21596
|
return;
|
|
20238
21597
|
}
|
|
20239
|
-
const nameWidth = Math.max(4, ...data.composes.map((
|
|
21598
|
+
const nameWidth = Math.max(4, ...data.composes.map((c42) => c42.name.length));
|
|
20240
21599
|
const header = ["NAME".padEnd(nameWidth), "VERSION", "UPDATED"].join(
|
|
20241
21600
|
" "
|
|
20242
21601
|
);
|
|
@@ -20569,9 +21928,6 @@ var initCommand4 = new Command68().name("init").description("Initialize a new VM
|
|
|
20569
21928
|
console.log(
|
|
20570
21929
|
` 2. Edit ${chalk60.cyan("AGENTS.md")} to customize your agent's workflow`
|
|
20571
21930
|
);
|
|
20572
|
-
console.log(
|
|
20573
|
-
` Or install Claude plugin: ${chalk60.cyan(`vm0 setup-claude && claude "/vm0-agent let's build an agent"`)}`
|
|
20574
|
-
);
|
|
20575
21931
|
console.log(
|
|
20576
21932
|
` 3. Run your agent: ${chalk60.cyan(`vm0 cook "let's start working"`)}`
|
|
20577
21933
|
);
|
|
@@ -20837,7 +22193,7 @@ async function gatherFrequency(optionFrequency, existingFrequency) {
|
|
|
20837
22193
|
if (!isInteractive()) {
|
|
20838
22194
|
throw new Error("--frequency is required (daily|weekly|monthly|once|loop)");
|
|
20839
22195
|
}
|
|
20840
|
-
const defaultIndex = existingFrequency ? FREQUENCY_CHOICES.findIndex((
|
|
22196
|
+
const defaultIndex = existingFrequency ? FREQUENCY_CHOICES.findIndex((c42) => c42.value === existingFrequency) : 0;
|
|
20841
22197
|
frequency = await promptSelect(
|
|
20842
22198
|
"Schedule frequency",
|
|
20843
22199
|
FREQUENCY_CHOICES,
|
|
@@ -20862,7 +22218,7 @@ async function gatherDay(frequency, optionDay, existingDay) {
|
|
|
20862
22218
|
throw new Error("--day is required for weekly/monthly");
|
|
20863
22219
|
}
|
|
20864
22220
|
if (frequency === "weekly") {
|
|
20865
|
-
const defaultDayIndex = existingDay !== void 0 ? DAY_OF_WEEK_CHOICES.findIndex((
|
|
22221
|
+
const defaultDayIndex = existingDay !== void 0 ? DAY_OF_WEEK_CHOICES.findIndex((c42) => c42.value === existingDay) : 0;
|
|
20866
22222
|
const day2 = await promptSelect(
|
|
20867
22223
|
"Day of week",
|
|
20868
22224
|
DAY_OF_WEEK_CHOICES,
|
|
@@ -21510,217 +22866,68 @@ var disableCommand = new Command74().name("disable").description("Disable a sche
|
|
|
21510
22866
|
// src/commands/schedule/index.ts
|
|
21511
22867
|
var scheduleCommand = new Command75().name("schedule").description("Manage agent schedules").addCommand(setupCommand2).addCommand(listCommand10).addCommand(statusCommand7).addCommand(deleteCommand2).addCommand(enableCommand).addCommand(disableCommand);
|
|
21512
22868
|
|
|
21513
|
-
// src/commands/usage/index.ts
|
|
21514
|
-
import { Command as Command76 } from "commander";
|
|
21515
|
-
import chalk67 from "chalk";
|
|
21516
|
-
|
|
21517
|
-
// src/lib/utils/duration-formatter.ts
|
|
21518
|
-
function formatDuration(ms) {
|
|
21519
|
-
if (ms === null || ms === void 0 || ms === 0) {
|
|
21520
|
-
return "-";
|
|
21521
|
-
}
|
|
21522
|
-
if (ms < 0) {
|
|
21523
|
-
return "-";
|
|
21524
|
-
}
|
|
21525
|
-
const totalSeconds = Math.floor(ms / 1e3);
|
|
21526
|
-
if (totalSeconds === 0) {
|
|
21527
|
-
return "< 1s";
|
|
21528
|
-
}
|
|
21529
|
-
const hours = Math.floor(totalSeconds / 3600);
|
|
21530
|
-
const minutes = Math.floor(totalSeconds % 3600 / 60);
|
|
21531
|
-
const seconds = totalSeconds % 60;
|
|
21532
|
-
const parts = [];
|
|
21533
|
-
if (hours > 0) {
|
|
21534
|
-
parts.push(`${hours}h`);
|
|
21535
|
-
}
|
|
21536
|
-
if (minutes > 0) {
|
|
21537
|
-
parts.push(`${minutes}m`);
|
|
21538
|
-
}
|
|
21539
|
-
if (seconds > 0) {
|
|
21540
|
-
parts.push(`${seconds}s`);
|
|
21541
|
-
}
|
|
21542
|
-
return parts.join(" ");
|
|
21543
|
-
}
|
|
21544
|
-
|
|
21545
|
-
// src/commands/usage/index.ts
|
|
21546
|
-
var MAX_RANGE_MS = 30 * 24 * 60 * 60 * 1e3;
|
|
21547
|
-
var DEFAULT_RANGE_MS = 7 * 24 * 60 * 60 * 1e3;
|
|
21548
|
-
function formatDateDisplay(dateStr) {
|
|
21549
|
-
const date = new Date(dateStr);
|
|
21550
|
-
return date.toLocaleDateString("en-US", { month: "short", day: "numeric" });
|
|
21551
|
-
}
|
|
21552
|
-
function formatDateRange(start, end) {
|
|
21553
|
-
const startDate = new Date(start);
|
|
21554
|
-
const endDate = new Date(end);
|
|
21555
|
-
endDate.setDate(endDate.getDate() - 1);
|
|
21556
|
-
const startStr = startDate.toLocaleDateString("en-US", {
|
|
21557
|
-
month: "short",
|
|
21558
|
-
day: "numeric"
|
|
21559
|
-
});
|
|
21560
|
-
const endStr = endDate.toLocaleDateString("en-US", {
|
|
21561
|
-
month: "short",
|
|
21562
|
-
day: "numeric",
|
|
21563
|
-
year: "numeric"
|
|
21564
|
-
});
|
|
21565
|
-
return `${startStr} - ${endStr}`;
|
|
21566
|
-
}
|
|
21567
|
-
function fillMissingDates(daily, startDate, endDate) {
|
|
21568
|
-
const dateMap = /* @__PURE__ */ new Map();
|
|
21569
|
-
for (const day of daily) {
|
|
21570
|
-
dateMap.set(day.date, day);
|
|
21571
|
-
}
|
|
21572
|
-
const result = [];
|
|
21573
|
-
const current = new Date(startDate);
|
|
21574
|
-
current.setUTCHours(0, 0, 0, 0);
|
|
21575
|
-
while (current < endDate) {
|
|
21576
|
-
const dateStr = current.toISOString().split("T")[0];
|
|
21577
|
-
const existing = dateMap.get(dateStr);
|
|
21578
|
-
if (existing) {
|
|
21579
|
-
result.push(existing);
|
|
21580
|
-
} else {
|
|
21581
|
-
result.push({ date: dateStr, run_count: 0, run_time_ms: 0 });
|
|
21582
|
-
}
|
|
21583
|
-
current.setDate(current.getDate() + 1);
|
|
21584
|
-
}
|
|
21585
|
-
result.sort((a, b) => b.date.localeCompare(a.date));
|
|
21586
|
-
return result;
|
|
21587
|
-
}
|
|
21588
|
-
var usageCommand = new Command76().name("usage").description("View usage statistics").option("--since <date>", "Start date (ISO format or relative: 7d, 30d)").option(
|
|
21589
|
-
"--until <date>",
|
|
21590
|
-
"End date (ISO format or relative, defaults to now)"
|
|
21591
|
-
).action(
|
|
21592
|
-
withErrorHandler(async (options) => {
|
|
21593
|
-
const now = /* @__PURE__ */ new Date();
|
|
21594
|
-
let endDate;
|
|
21595
|
-
let startDate;
|
|
21596
|
-
if (options.until) {
|
|
21597
|
-
try {
|
|
21598
|
-
const untilMs = parseTime(options.until);
|
|
21599
|
-
endDate = new Date(untilMs);
|
|
21600
|
-
} catch {
|
|
21601
|
-
throw new Error(
|
|
21602
|
-
"Invalid --until format. Use ISO (2026-01-01) or relative (7d, 30d)"
|
|
21603
|
-
);
|
|
21604
|
-
}
|
|
21605
|
-
} else {
|
|
21606
|
-
endDate = now;
|
|
21607
|
-
}
|
|
21608
|
-
if (options.since) {
|
|
21609
|
-
try {
|
|
21610
|
-
const sinceMs = parseTime(options.since);
|
|
21611
|
-
startDate = new Date(sinceMs);
|
|
21612
|
-
} catch {
|
|
21613
|
-
throw new Error(
|
|
21614
|
-
"Invalid --since format. Use ISO (2026-01-01) or relative (7d, 30d)"
|
|
21615
|
-
);
|
|
21616
|
-
}
|
|
21617
|
-
} else {
|
|
21618
|
-
startDate = new Date(endDate.getTime() - DEFAULT_RANGE_MS);
|
|
21619
|
-
}
|
|
21620
|
-
if (startDate >= endDate) {
|
|
21621
|
-
throw new Error("--since must be before --until");
|
|
21622
|
-
}
|
|
21623
|
-
const rangeMs = endDate.getTime() - startDate.getTime();
|
|
21624
|
-
if (rangeMs > MAX_RANGE_MS) {
|
|
21625
|
-
throw new Error(
|
|
21626
|
-
"Time range exceeds maximum of 30 days. Use --until to specify an end date"
|
|
21627
|
-
);
|
|
21628
|
-
}
|
|
21629
|
-
const usage = await getUsage({
|
|
21630
|
-
startDate: startDate.toISOString(),
|
|
21631
|
-
endDate: endDate.toISOString()
|
|
21632
|
-
});
|
|
21633
|
-
const filledDaily = fillMissingDates(
|
|
21634
|
-
usage.daily,
|
|
21635
|
-
new Date(usage.period.start),
|
|
21636
|
-
new Date(usage.period.end)
|
|
21637
|
-
);
|
|
21638
|
-
console.log();
|
|
21639
|
-
console.log(
|
|
21640
|
-
chalk67.bold(
|
|
21641
|
-
`Usage Summary (${formatDateRange(usage.period.start, usage.period.end)})`
|
|
21642
|
-
)
|
|
21643
|
-
);
|
|
21644
|
-
console.log();
|
|
21645
|
-
console.log(chalk67.dim("DATE RUNS RUN TIME"));
|
|
21646
|
-
for (const day of filledDaily) {
|
|
21647
|
-
const dateDisplay = formatDateDisplay(day.date).padEnd(10);
|
|
21648
|
-
const runsDisplay = String(day.run_count).padStart(6);
|
|
21649
|
-
const timeDisplay = formatDuration(day.run_time_ms);
|
|
21650
|
-
console.log(`${dateDisplay}${runsDisplay} ${timeDisplay}`);
|
|
21651
|
-
}
|
|
21652
|
-
console.log(chalk67.dim("\u2500".repeat(29)));
|
|
21653
|
-
const totalRunsDisplay = String(usage.summary.total_runs).padStart(6);
|
|
21654
|
-
const totalTimeDisplay = formatDuration(usage.summary.total_run_time_ms);
|
|
21655
|
-
console.log(
|
|
21656
|
-
`${"TOTAL".padEnd(10)}${totalRunsDisplay} ${totalTimeDisplay}`
|
|
21657
|
-
);
|
|
21658
|
-
console.log();
|
|
21659
|
-
})
|
|
21660
|
-
);
|
|
21661
|
-
|
|
21662
22869
|
// src/commands/secret/index.ts
|
|
21663
|
-
import { Command as
|
|
22870
|
+
import { Command as Command79 } from "commander";
|
|
21664
22871
|
|
|
21665
22872
|
// src/commands/secret/list.ts
|
|
21666
|
-
import { Command as
|
|
21667
|
-
import
|
|
21668
|
-
var listCommand11 = new
|
|
22873
|
+
import { Command as Command76 } from "commander";
|
|
22874
|
+
import chalk67 from "chalk";
|
|
22875
|
+
var listCommand11 = new Command76().name("list").alias("ls").description("List all secrets").action(
|
|
21669
22876
|
withErrorHandler(async () => {
|
|
21670
22877
|
const result = await listSecrets();
|
|
21671
22878
|
if (result.secrets.length === 0) {
|
|
21672
|
-
console.log(
|
|
22879
|
+
console.log(chalk67.dim("No secrets found"));
|
|
21673
22880
|
console.log();
|
|
21674
22881
|
console.log("To add a secret:");
|
|
21675
|
-
console.log(
|
|
22882
|
+
console.log(chalk67.cyan(" vm0 secret set MY_API_KEY --body <value>"));
|
|
21676
22883
|
return;
|
|
21677
22884
|
}
|
|
21678
|
-
console.log(
|
|
22885
|
+
console.log(chalk67.bold("Secrets:"));
|
|
21679
22886
|
console.log();
|
|
21680
22887
|
for (const secret of result.secrets) {
|
|
21681
22888
|
let typeIndicator = "";
|
|
21682
22889
|
let derivedLine = null;
|
|
21683
22890
|
if (secret.type === "model-provider") {
|
|
21684
|
-
typeIndicator =
|
|
22891
|
+
typeIndicator = chalk67.dim(" [model-provider]");
|
|
21685
22892
|
} else if (secret.type === "connector") {
|
|
21686
22893
|
const derived = getConnectorDerivedNames(secret.name);
|
|
21687
22894
|
if (derived) {
|
|
21688
|
-
typeIndicator =
|
|
21689
|
-
derivedLine =
|
|
22895
|
+
typeIndicator = chalk67.dim(` [${derived.connectorLabel} connector]`);
|
|
22896
|
+
derivedLine = chalk67.dim(
|
|
21690
22897
|
`Available as: ${derived.envVarNames.join(", ")}`
|
|
21691
22898
|
);
|
|
21692
22899
|
} else {
|
|
21693
|
-
typeIndicator =
|
|
22900
|
+
typeIndicator = chalk67.dim(" [connector]");
|
|
21694
22901
|
}
|
|
21695
22902
|
} else if (secret.type === "user") {
|
|
21696
22903
|
const derived = getConnectorDerivedNames(secret.name);
|
|
21697
22904
|
if (derived) {
|
|
21698
|
-
typeIndicator =
|
|
21699
|
-
derivedLine =
|
|
22905
|
+
typeIndicator = chalk67.dim(` [${derived.connectorLabel} connector]`);
|
|
22906
|
+
derivedLine = chalk67.dim(
|
|
21700
22907
|
`Available as: ${derived.envVarNames.join(", ")}`
|
|
21701
22908
|
);
|
|
21702
22909
|
}
|
|
21703
22910
|
}
|
|
21704
|
-
console.log(` ${
|
|
22911
|
+
console.log(` ${chalk67.cyan(secret.name)}${typeIndicator}`);
|
|
21705
22912
|
if (derivedLine) {
|
|
21706
22913
|
console.log(` ${derivedLine}`);
|
|
21707
22914
|
}
|
|
21708
22915
|
if (secret.description) {
|
|
21709
|
-
console.log(` ${
|
|
22916
|
+
console.log(` ${chalk67.dim(secret.description)}`);
|
|
21710
22917
|
}
|
|
21711
22918
|
console.log(
|
|
21712
|
-
` ${
|
|
22919
|
+
` ${chalk67.dim(`Updated: ${new Date(secret.updatedAt).toLocaleString()}`)}`
|
|
21713
22920
|
);
|
|
21714
22921
|
console.log();
|
|
21715
22922
|
}
|
|
21716
|
-
console.log(
|
|
22923
|
+
console.log(chalk67.dim(`Total: ${result.secrets.length} secret(s)`));
|
|
21717
22924
|
})
|
|
21718
22925
|
);
|
|
21719
22926
|
|
|
21720
22927
|
// src/commands/secret/set.ts
|
|
21721
|
-
import { Command as
|
|
21722
|
-
import
|
|
21723
|
-
var setCommand4 = new
|
|
22928
|
+
import { Command as Command77 } from "commander";
|
|
22929
|
+
import chalk68 from "chalk";
|
|
22930
|
+
var setCommand4 = new Command77().name("set").description("Create or update a secret").argument("<name>", "Secret name (uppercase, e.g., MY_API_KEY)").option(
|
|
21724
22931
|
"-b, --body <value>",
|
|
21725
22932
|
"Secret value (required in non-interactive mode)"
|
|
21726
22933
|
).option("-d, --description <description>", "Optional description").action(
|
|
@@ -21759,19 +22966,19 @@ var setCommand4 = new Command78().name("set").description("Create or update a se
|
|
|
21759
22966
|
}
|
|
21760
22967
|
throw error;
|
|
21761
22968
|
}
|
|
21762
|
-
console.log(
|
|
22969
|
+
console.log(chalk68.green(`\u2713 Secret "${secret.name}" saved`));
|
|
21763
22970
|
console.log();
|
|
21764
22971
|
console.log("Use in vm0.yaml:");
|
|
21765
|
-
console.log(
|
|
21766
|
-
console.log(
|
|
22972
|
+
console.log(chalk68.cyan(` environment:`));
|
|
22973
|
+
console.log(chalk68.cyan(` ${name}: \${{ secrets.${name} }}`));
|
|
21767
22974
|
}
|
|
21768
22975
|
)
|
|
21769
22976
|
);
|
|
21770
22977
|
|
|
21771
22978
|
// src/commands/secret/delete.ts
|
|
21772
|
-
import { Command as
|
|
21773
|
-
import
|
|
21774
|
-
var deleteCommand3 = new
|
|
22979
|
+
import { Command as Command78 } from "commander";
|
|
22980
|
+
import chalk69 from "chalk";
|
|
22981
|
+
var deleteCommand3 = new Command78().name("delete").description("Delete a secret").argument("<name>", "Secret name to delete").option("-y, --yes", "Skip confirmation prompt").action(
|
|
21775
22982
|
withErrorHandler(async (name, options) => {
|
|
21776
22983
|
try {
|
|
21777
22984
|
await getSecret(name);
|
|
@@ -21790,61 +22997,61 @@ var deleteCommand3 = new Command79().name("delete").description("Delete a secret
|
|
|
21790
22997
|
false
|
|
21791
22998
|
);
|
|
21792
22999
|
if (!confirmed) {
|
|
21793
|
-
console.log(
|
|
23000
|
+
console.log(chalk69.dim("Cancelled"));
|
|
21794
23001
|
return;
|
|
21795
23002
|
}
|
|
21796
23003
|
}
|
|
21797
23004
|
await deleteSecret(name);
|
|
21798
|
-
console.log(
|
|
23005
|
+
console.log(chalk69.green(`\u2713 Secret "${name}" deleted`));
|
|
21799
23006
|
})
|
|
21800
23007
|
);
|
|
21801
23008
|
|
|
21802
23009
|
// src/commands/secret/index.ts
|
|
21803
|
-
var secretCommand = new
|
|
23010
|
+
var secretCommand = new Command79().name("secret").description("Manage stored secrets for agent runs").addCommand(listCommand11).addCommand(setCommand4).addCommand(deleteCommand3);
|
|
21804
23011
|
|
|
21805
23012
|
// src/commands/variable/index.ts
|
|
21806
|
-
import { Command as
|
|
23013
|
+
import { Command as Command83 } from "commander";
|
|
21807
23014
|
|
|
21808
23015
|
// src/commands/variable/list.ts
|
|
21809
|
-
import { Command as
|
|
21810
|
-
import
|
|
23016
|
+
import { Command as Command80 } from "commander";
|
|
23017
|
+
import chalk70 from "chalk";
|
|
21811
23018
|
function truncateValue2(value, maxLength = 60) {
|
|
21812
23019
|
if (value.length <= maxLength) {
|
|
21813
23020
|
return value;
|
|
21814
23021
|
}
|
|
21815
23022
|
return value.slice(0, maxLength - 15) + "... [truncated]";
|
|
21816
23023
|
}
|
|
21817
|
-
var listCommand12 = new
|
|
23024
|
+
var listCommand12 = new Command80().name("list").alias("ls").description("List all variables").action(
|
|
21818
23025
|
withErrorHandler(async () => {
|
|
21819
23026
|
const result = await listVariables();
|
|
21820
23027
|
if (result.variables.length === 0) {
|
|
21821
|
-
console.log(
|
|
23028
|
+
console.log(chalk70.dim("No variables found"));
|
|
21822
23029
|
console.log();
|
|
21823
23030
|
console.log("To add a variable:");
|
|
21824
|
-
console.log(
|
|
23031
|
+
console.log(chalk70.cyan(" vm0 variable set MY_VAR <value>"));
|
|
21825
23032
|
return;
|
|
21826
23033
|
}
|
|
21827
|
-
console.log(
|
|
23034
|
+
console.log(chalk70.bold("Variables:"));
|
|
21828
23035
|
console.log();
|
|
21829
23036
|
for (const variable of result.variables) {
|
|
21830
23037
|
const displayValue = truncateValue2(variable.value);
|
|
21831
|
-
console.log(` ${
|
|
23038
|
+
console.log(` ${chalk70.cyan(variable.name)} = ${displayValue}`);
|
|
21832
23039
|
if (variable.description) {
|
|
21833
|
-
console.log(` ${
|
|
23040
|
+
console.log(` ${chalk70.dim(variable.description)}`);
|
|
21834
23041
|
}
|
|
21835
23042
|
console.log(
|
|
21836
|
-
` ${
|
|
23043
|
+
` ${chalk70.dim(`Updated: ${new Date(variable.updatedAt).toLocaleString()}`)}`
|
|
21837
23044
|
);
|
|
21838
23045
|
console.log();
|
|
21839
23046
|
}
|
|
21840
|
-
console.log(
|
|
23047
|
+
console.log(chalk70.dim(`Total: ${result.variables.length} variable(s)`));
|
|
21841
23048
|
})
|
|
21842
23049
|
);
|
|
21843
23050
|
|
|
21844
23051
|
// src/commands/variable/set.ts
|
|
21845
|
-
import { Command as
|
|
21846
|
-
import
|
|
21847
|
-
var setCommand5 = new
|
|
23052
|
+
import { Command as Command81 } from "commander";
|
|
23053
|
+
import chalk71 from "chalk";
|
|
23054
|
+
var setCommand5 = new Command81().name("set").description("Create or update a variable").argument("<name>", "Variable name (uppercase, e.g., MY_VAR)").argument("<value>", "Variable value").option("-d, --description <description>", "Optional description").action(
|
|
21848
23055
|
withErrorHandler(
|
|
21849
23056
|
async (name, value, options) => {
|
|
21850
23057
|
let variable;
|
|
@@ -21864,19 +23071,19 @@ var setCommand5 = new Command82().name("set").description("Create or update a va
|
|
|
21864
23071
|
}
|
|
21865
23072
|
throw error;
|
|
21866
23073
|
}
|
|
21867
|
-
console.log(
|
|
23074
|
+
console.log(chalk71.green(`\u2713 Variable "${variable.name}" saved`));
|
|
21868
23075
|
console.log();
|
|
21869
23076
|
console.log("Use in vm0.yaml:");
|
|
21870
|
-
console.log(
|
|
21871
|
-
console.log(
|
|
23077
|
+
console.log(chalk71.cyan(` environment:`));
|
|
23078
|
+
console.log(chalk71.cyan(` ${name}: \${{ vars.${name} }}`));
|
|
21872
23079
|
}
|
|
21873
23080
|
)
|
|
21874
23081
|
);
|
|
21875
23082
|
|
|
21876
23083
|
// src/commands/variable/delete.ts
|
|
21877
|
-
import { Command as
|
|
21878
|
-
import
|
|
21879
|
-
var deleteCommand4 = new
|
|
23084
|
+
import { Command as Command82 } from "commander";
|
|
23085
|
+
import chalk72 from "chalk";
|
|
23086
|
+
var deleteCommand4 = new Command82().name("delete").description("Delete a variable").argument("<name>", "Variable name to delete").option("-y, --yes", "Skip confirmation prompt").action(
|
|
21880
23087
|
withErrorHandler(async (name, options) => {
|
|
21881
23088
|
try {
|
|
21882
23089
|
await getVariable(name);
|
|
@@ -21895,24 +23102,24 @@ var deleteCommand4 = new Command83().name("delete").description("Delete a variab
|
|
|
21895
23102
|
false
|
|
21896
23103
|
);
|
|
21897
23104
|
if (!confirmed) {
|
|
21898
|
-
console.log(
|
|
23105
|
+
console.log(chalk72.dim("Cancelled"));
|
|
21899
23106
|
return;
|
|
21900
23107
|
}
|
|
21901
23108
|
}
|
|
21902
23109
|
await deleteVariable(name);
|
|
21903
|
-
console.log(
|
|
23110
|
+
console.log(chalk72.green(`\u2713 Variable "${name}" deleted`));
|
|
21904
23111
|
})
|
|
21905
23112
|
);
|
|
21906
23113
|
|
|
21907
23114
|
// src/commands/variable/index.ts
|
|
21908
|
-
var variableCommand = new
|
|
23115
|
+
var variableCommand = new Command83().name("variable").description("Manage stored variables for agent runs").addCommand(listCommand12).addCommand(setCommand5).addCommand(deleteCommand4);
|
|
21909
23116
|
|
|
21910
23117
|
// src/commands/connector/index.ts
|
|
21911
|
-
import { Command as
|
|
23118
|
+
import { Command as Command88 } from "commander";
|
|
21912
23119
|
|
|
21913
23120
|
// src/commands/connector/connect.ts
|
|
21914
|
-
import { Command as
|
|
21915
|
-
import
|
|
23121
|
+
import { Command as Command84 } from "commander";
|
|
23122
|
+
import chalk74 from "chalk";
|
|
21916
23123
|
import { initClient as initClient15 } from "@ts-rest/core";
|
|
21917
23124
|
|
|
21918
23125
|
// src/commands/connector/lib/computer/start-services.ts
|
|
@@ -21921,7 +23128,7 @@ import { access as access2, constants } from "fs/promises";
|
|
|
21921
23128
|
import { createServer } from "net";
|
|
21922
23129
|
import { homedir as homedir4 } from "os";
|
|
21923
23130
|
import { join as join12 } from "path";
|
|
21924
|
-
import
|
|
23131
|
+
import chalk73 from "chalk";
|
|
21925
23132
|
|
|
21926
23133
|
// src/commands/connector/lib/computer/ngrok.ts
|
|
21927
23134
|
import ngrok from "@ngrok/ngrok";
|
|
@@ -21995,7 +23202,7 @@ async function checkComputerDependencies() {
|
|
|
21995
23202
|
}
|
|
21996
23203
|
}
|
|
21997
23204
|
async function startComputerServices(credentials) {
|
|
21998
|
-
console.log(
|
|
23205
|
+
console.log(chalk73.cyan("Starting computer connector services..."));
|
|
21999
23206
|
const wsgidavBinary = await findBinary("wsgidav");
|
|
22000
23207
|
if (!wsgidavBinary) {
|
|
22001
23208
|
throw new Error(
|
|
@@ -22022,7 +23229,7 @@ async function startComputerServices(credentials) {
|
|
|
22022
23229
|
);
|
|
22023
23230
|
wsgidav.stdout?.on("data", (data) => process.stdout.write(data));
|
|
22024
23231
|
wsgidav.stderr?.on("data", (data) => process.stderr.write(data));
|
|
22025
|
-
console.log(
|
|
23232
|
+
console.log(chalk73.green("\u2713 WebDAV server started"));
|
|
22026
23233
|
const chrome = spawn2(
|
|
22027
23234
|
chromeBinary,
|
|
22028
23235
|
[
|
|
@@ -22036,7 +23243,7 @@ async function startComputerServices(credentials) {
|
|
|
22036
23243
|
);
|
|
22037
23244
|
chrome.stdout?.on("data", (data) => process.stdout.write(data));
|
|
22038
23245
|
chrome.stderr?.on("data", (data) => process.stderr.write(data));
|
|
22039
|
-
console.log(
|
|
23246
|
+
console.log(chalk73.green("\u2713 Chrome started"));
|
|
22040
23247
|
try {
|
|
22041
23248
|
await startNgrokTunnels(
|
|
22042
23249
|
credentials.ngrokToken,
|
|
@@ -22045,18 +23252,18 @@ async function startComputerServices(credentials) {
|
|
|
22045
23252
|
cdpPort
|
|
22046
23253
|
);
|
|
22047
23254
|
console.log(
|
|
22048
|
-
|
|
23255
|
+
chalk73.green(
|
|
22049
23256
|
`\u2713 ngrok tunnels: webdav.${credentials.domain}, chrome.${credentials.domain}`
|
|
22050
23257
|
)
|
|
22051
23258
|
);
|
|
22052
23259
|
console.log();
|
|
22053
|
-
console.log(
|
|
23260
|
+
console.log(chalk73.green("\u2713 Computer connector active"));
|
|
22054
23261
|
console.log(` WebDAV: ~/Downloads \u2192 webdav.${credentials.domain}`);
|
|
22055
23262
|
console.log(
|
|
22056
23263
|
` Chrome CDP: port ${cdpPort} \u2192 chrome.${credentials.domain}`
|
|
22057
23264
|
);
|
|
22058
23265
|
console.log();
|
|
22059
|
-
console.log(
|
|
23266
|
+
console.log(chalk73.dim("Press ^C twice to disconnect"));
|
|
22060
23267
|
console.log();
|
|
22061
23268
|
let sigintCount = 0;
|
|
22062
23269
|
await new Promise((resolve2) => {
|
|
@@ -22070,7 +23277,7 @@ async function startComputerServices(credentials) {
|
|
|
22070
23277
|
const onSigint = () => {
|
|
22071
23278
|
sigintCount++;
|
|
22072
23279
|
if (sigintCount === 1) {
|
|
22073
|
-
console.log(
|
|
23280
|
+
console.log(chalk73.dim("\nPress ^C again to disconnect and exit..."));
|
|
22074
23281
|
} else {
|
|
22075
23282
|
done();
|
|
22076
23283
|
}
|
|
@@ -22080,11 +23287,11 @@ async function startComputerServices(credentials) {
|
|
|
22080
23287
|
});
|
|
22081
23288
|
} finally {
|
|
22082
23289
|
console.log();
|
|
22083
|
-
console.log(
|
|
23290
|
+
console.log(chalk73.cyan("Stopping services..."));
|
|
22084
23291
|
wsgidav.kill("SIGTERM");
|
|
22085
23292
|
chrome.kill("SIGTERM");
|
|
22086
23293
|
await stopNgrokTunnels();
|
|
22087
|
-
console.log(
|
|
23294
|
+
console.log(chalk73.green("\u2713 Services stopped"));
|
|
22088
23295
|
}
|
|
22089
23296
|
}
|
|
22090
23297
|
|
|
@@ -22109,10 +23316,10 @@ async function getHeaders2() {
|
|
|
22109
23316
|
function renderHelpText(text) {
|
|
22110
23317
|
return text.replace(
|
|
22111
23318
|
/\[([^\]]+)\]\(([^)]+)\)/g,
|
|
22112
|
-
(_m, label, url) => `${label} (${
|
|
22113
|
-
).replace(/\*\*([^*]+)\*\*/g, (_m, content) =>
|
|
23319
|
+
(_m, label, url) => `${label} (${chalk74.cyan(url)})`
|
|
23320
|
+
).replace(/\*\*([^*]+)\*\*/g, (_m, content) => chalk74.bold(content)).replace(
|
|
22114
23321
|
/^> (.+)$/gm,
|
|
22115
|
-
(_m, content) =>
|
|
23322
|
+
(_m, content) => chalk74.yellow(` ${content}`)
|
|
22116
23323
|
);
|
|
22117
23324
|
}
|
|
22118
23325
|
async function connectViaApiToken(connectorType, tokenValue) {
|
|
@@ -22137,7 +23344,7 @@ async function connectViaApiToken(connectorType, tokenValue) {
|
|
|
22137
23344
|
for (const [secretName, secretConfig] of secretEntries) {
|
|
22138
23345
|
if (!secretConfig.required) continue;
|
|
22139
23346
|
const value = await promptPassword(
|
|
22140
|
-
`${secretConfig.label}${secretConfig.placeholder ?
|
|
23347
|
+
`${secretConfig.label}${secretConfig.placeholder ? chalk74.dim(` (${secretConfig.placeholder})`) : ""}:`
|
|
22141
23348
|
);
|
|
22142
23349
|
if (!value) {
|
|
22143
23350
|
throw new Error("Cancelled");
|
|
@@ -22153,13 +23360,13 @@ async function connectViaApiToken(connectorType, tokenValue) {
|
|
|
22153
23360
|
});
|
|
22154
23361
|
}
|
|
22155
23362
|
console.log(
|
|
22156
|
-
|
|
23363
|
+
chalk74.green(`
|
|
22157
23364
|
\u2713 ${config.label} connected successfully via API token!`)
|
|
22158
23365
|
);
|
|
22159
23366
|
}
|
|
22160
23367
|
async function connectComputer(apiUrl, headers) {
|
|
22161
23368
|
await checkComputerDependencies();
|
|
22162
|
-
console.log(
|
|
23369
|
+
console.log(chalk74.cyan("Setting up computer connector..."));
|
|
22163
23370
|
const computerClient = initClient15(computerConnectorContract, {
|
|
22164
23371
|
baseUrl: apiUrl,
|
|
22165
23372
|
baseHeaders: headers,
|
|
@@ -22174,9 +23381,9 @@ async function connectComputer(apiUrl, headers) {
|
|
|
22174
23381
|
}
|
|
22175
23382
|
const credentials = createResult.body;
|
|
22176
23383
|
await startComputerServices(credentials);
|
|
22177
|
-
console.log(
|
|
23384
|
+
console.log(chalk74.cyan("Disconnecting computer connector..."));
|
|
22178
23385
|
await deleteConnector("computer");
|
|
22179
|
-
console.log(
|
|
23386
|
+
console.log(chalk74.green("\u2713 Disconnected computer"));
|
|
22180
23387
|
process.exit(0);
|
|
22181
23388
|
}
|
|
22182
23389
|
async function resolveAuthMethod(connectorType, tokenFlag) {
|
|
@@ -22215,7 +23422,7 @@ async function resolveAuthMethod(connectorType, tokenFlag) {
|
|
|
22215
23422
|
);
|
|
22216
23423
|
}
|
|
22217
23424
|
async function connectViaOAuth(connectorType, apiUrl, headers) {
|
|
22218
|
-
console.log(`Connecting ${
|
|
23425
|
+
console.log(`Connecting ${chalk74.cyan(connectorType)}...`);
|
|
22219
23426
|
const sessionsClient = initClient15(connectorSessionsContract, {
|
|
22220
23427
|
baseUrl: apiUrl,
|
|
22221
23428
|
baseHeaders: headers,
|
|
@@ -22231,8 +23438,8 @@ async function connectViaOAuth(connectorType, apiUrl, headers) {
|
|
|
22231
23438
|
}
|
|
22232
23439
|
const session = createResult.body;
|
|
22233
23440
|
const verificationUrl = `${apiUrl}${session.verificationUrl}`;
|
|
22234
|
-
console.log(
|
|
22235
|
-
console.log(
|
|
23441
|
+
console.log(chalk74.green("\nSession created"));
|
|
23442
|
+
console.log(chalk74.cyan(`
|
|
22236
23443
|
To connect, visit: ${verificationUrl}`));
|
|
22237
23444
|
console.log(
|
|
22238
23445
|
`
|
|
@@ -22264,7 +23471,7 @@ The session expires in ${Math.floor(session.expiresIn / 60)} minutes.`
|
|
|
22264
23471
|
switch (status.status) {
|
|
22265
23472
|
case "complete":
|
|
22266
23473
|
console.log(
|
|
22267
|
-
|
|
23474
|
+
chalk74.green(`
|
|
22268
23475
|
|
|
22269
23476
|
${connectorType} connected successfully!`)
|
|
22270
23477
|
);
|
|
@@ -22276,13 +23483,13 @@ ${connectorType} connected successfully!`)
|
|
|
22276
23483
|
`Connection failed: ${status.errorMessage || "Unknown error"}`
|
|
22277
23484
|
);
|
|
22278
23485
|
case "pending":
|
|
22279
|
-
process.stdout.write(
|
|
23486
|
+
process.stdout.write(chalk74.dim("."));
|
|
22280
23487
|
break;
|
|
22281
23488
|
}
|
|
22282
23489
|
}
|
|
22283
23490
|
throw new Error("Session timed out, please try again");
|
|
22284
23491
|
}
|
|
22285
|
-
var connectCommand = new
|
|
23492
|
+
var connectCommand = new Command84().name("connect").description("Connect a third-party service (e.g., GitHub)").argument("<type>", "Connector type (e.g., github)").option("--token <value>", "API token value (skip interactive prompt)").action(
|
|
22286
23493
|
withErrorHandler(async (type2, options) => {
|
|
22287
23494
|
const parseResult = connectorTypeSchema.safeParse(type2);
|
|
22288
23495
|
if (!parseResult.success) {
|
|
@@ -22307,12 +23514,12 @@ var connectCommand = new Command85().name("connect").description("Connect a thir
|
|
|
22307
23514
|
);
|
|
22308
23515
|
|
|
22309
23516
|
// src/commands/connector/list.ts
|
|
22310
|
-
import { Command as
|
|
22311
|
-
import
|
|
22312
|
-
var listCommand13 = new
|
|
23517
|
+
import { Command as Command85 } from "commander";
|
|
23518
|
+
import chalk75 from "chalk";
|
|
23519
|
+
var listCommand13 = new Command85().name("list").alias("ls").description("List all connectors and their status").action(
|
|
22313
23520
|
withErrorHandler(async () => {
|
|
22314
23521
|
const result = await listConnectors();
|
|
22315
|
-
const connectedMap = new Map(result.connectors.map((
|
|
23522
|
+
const connectedMap = new Map(result.connectors.map((c42) => [c42.type, c42]));
|
|
22316
23523
|
const allTypesRaw = Object.keys(CONNECTOR_TYPES);
|
|
22317
23524
|
const allTypes = [];
|
|
22318
23525
|
for (const type2 of allTypesRaw) {
|
|
@@ -22331,26 +23538,26 @@ var listCommand13 = new Command86().name("list").alias("ls").description("List a
|
|
|
22331
23538
|
statusText.padEnd(statusWidth),
|
|
22332
23539
|
"ACCOUNT"
|
|
22333
23540
|
].join(" ");
|
|
22334
|
-
console.log(
|
|
23541
|
+
console.log(chalk75.dim(header));
|
|
22335
23542
|
for (const type2 of allTypes) {
|
|
22336
23543
|
const connector = connectedMap.get(type2);
|
|
22337
23544
|
const scopeMismatch = connector !== void 0 && connector.authMethod === "oauth" && !hasRequiredScopes(type2, connector.oauthScopes);
|
|
22338
|
-
const status = connector ? connector.needsReconnect ?
|
|
22339
|
-
const account = connector?.needsReconnect ?
|
|
23545
|
+
const status = connector ? connector.needsReconnect ? chalk75.yellow("!".padEnd(statusWidth)) : scopeMismatch ? chalk75.yellow("!".padEnd(statusWidth)) : chalk75.green("\u2713".padEnd(statusWidth)) : chalk75.dim("-".padEnd(statusWidth));
|
|
23546
|
+
const account = connector?.needsReconnect ? chalk75.yellow("(reconnect needed)") : scopeMismatch ? chalk75.yellow("(permissions update available)") : connector?.externalUsername ? `@${connector.externalUsername}` : chalk75.dim("-");
|
|
22340
23547
|
const row = [type2.padEnd(typeWidth), status, account].join(" ");
|
|
22341
23548
|
console.log(row);
|
|
22342
23549
|
}
|
|
22343
23550
|
console.log();
|
|
22344
|
-
console.log(
|
|
22345
|
-
console.log(
|
|
23551
|
+
console.log(chalk75.dim("To connect a service:"));
|
|
23552
|
+
console.log(chalk75.dim(" vm0 connector connect <type>"));
|
|
22346
23553
|
})
|
|
22347
23554
|
);
|
|
22348
23555
|
|
|
22349
23556
|
// src/commands/connector/status.ts
|
|
22350
|
-
import { Command as
|
|
22351
|
-
import
|
|
23557
|
+
import { Command as Command86 } from "commander";
|
|
23558
|
+
import chalk76 from "chalk";
|
|
22352
23559
|
var LABEL_WIDTH = 16;
|
|
22353
|
-
var statusCommand8 = new
|
|
23560
|
+
var statusCommand8 = new Command86().name("status").description("Show detailed status of a connector").argument("<type>", "Connector type (e.g., github)").action(
|
|
22354
23561
|
withErrorHandler(async (type2) => {
|
|
22355
23562
|
const parseResult = connectorTypeSchema.safeParse(type2);
|
|
22356
23563
|
if (!parseResult.success) {
|
|
@@ -22360,11 +23567,11 @@ var statusCommand8 = new Command87().name("status").description("Show detailed s
|
|
|
22360
23567
|
});
|
|
22361
23568
|
}
|
|
22362
23569
|
const connector = await getConnector(parseResult.data);
|
|
22363
|
-
console.log(`Connector: ${
|
|
23570
|
+
console.log(`Connector: ${chalk76.cyan(type2)}`);
|
|
22364
23571
|
console.log();
|
|
22365
23572
|
if (connector) {
|
|
22366
23573
|
console.log(
|
|
22367
|
-
`${"Status:".padEnd(LABEL_WIDTH)}${
|
|
23574
|
+
`${"Status:".padEnd(LABEL_WIDTH)}${chalk76.green("connected")}`
|
|
22368
23575
|
);
|
|
22369
23576
|
console.log(
|
|
22370
23577
|
`${"Account:".padEnd(LABEL_WIDTH)}@${connector.externalUsername}`
|
|
@@ -22380,7 +23587,7 @@ var statusCommand8 = new Command87().name("status").description("Show detailed s
|
|
|
22380
23587
|
if (connector.authMethod === "oauth" && !hasRequiredScopes(parseResult.data, connector.oauthScopes)) {
|
|
22381
23588
|
const diff = getScopeDiff(parseResult.data, connector.oauthScopes);
|
|
22382
23589
|
console.log(
|
|
22383
|
-
`${"Permissions:".padEnd(LABEL_WIDTH)}${
|
|
23590
|
+
`${"Permissions:".padEnd(LABEL_WIDTH)}${chalk76.yellow("update available")}`
|
|
22384
23591
|
);
|
|
22385
23592
|
if (diff.addedScopes.length > 0) {
|
|
22386
23593
|
console.log(
|
|
@@ -22402,23 +23609,23 @@ var statusCommand8 = new Command87().name("status").description("Show detailed s
|
|
|
22402
23609
|
);
|
|
22403
23610
|
}
|
|
22404
23611
|
console.log();
|
|
22405
|
-
console.log(
|
|
22406
|
-
console.log(
|
|
23612
|
+
console.log(chalk76.dim("To disconnect:"));
|
|
23613
|
+
console.log(chalk76.dim(` vm0 connector disconnect ${type2}`));
|
|
22407
23614
|
} else {
|
|
22408
23615
|
console.log(
|
|
22409
|
-
`${"Status:".padEnd(LABEL_WIDTH)}${
|
|
23616
|
+
`${"Status:".padEnd(LABEL_WIDTH)}${chalk76.dim("not connected")}`
|
|
22410
23617
|
);
|
|
22411
23618
|
console.log();
|
|
22412
|
-
console.log(
|
|
22413
|
-
console.log(
|
|
23619
|
+
console.log(chalk76.dim("To connect:"));
|
|
23620
|
+
console.log(chalk76.dim(` vm0 connector connect ${type2}`));
|
|
22414
23621
|
}
|
|
22415
23622
|
})
|
|
22416
23623
|
);
|
|
22417
23624
|
|
|
22418
23625
|
// src/commands/connector/disconnect.ts
|
|
22419
|
-
import { Command as
|
|
22420
|
-
import
|
|
22421
|
-
var disconnectCommand = new
|
|
23626
|
+
import { Command as Command87 } from "commander";
|
|
23627
|
+
import chalk77 from "chalk";
|
|
23628
|
+
var disconnectCommand = new Command87().name("disconnect").description("Disconnect a third-party service").argument("<type>", "Connector type to disconnect (e.g., github)").action(
|
|
22422
23629
|
withErrorHandler(async (type2) => {
|
|
22423
23630
|
const parseResult = connectorTypeSchema.safeParse(type2);
|
|
22424
23631
|
if (!parseResult.success) {
|
|
@@ -22429,145 +23636,16 @@ var disconnectCommand = new Command88().name("disconnect").description("Disconne
|
|
|
22429
23636
|
}
|
|
22430
23637
|
const connectorType = parseResult.data;
|
|
22431
23638
|
await deleteConnector(connectorType);
|
|
22432
|
-
console.log(
|
|
23639
|
+
console.log(chalk77.green(`\u2713 Disconnected ${type2}`));
|
|
22433
23640
|
})
|
|
22434
23641
|
);
|
|
22435
23642
|
|
|
22436
23643
|
// src/commands/connector/index.ts
|
|
22437
|
-
var connectorCommand = new
|
|
22438
|
-
|
|
22439
|
-
// src/commands/setup-claude/index.ts
|
|
22440
|
-
import { Command as Command90 } from "commander";
|
|
22441
|
-
import chalk80 from "chalk";
|
|
22442
|
-
|
|
22443
|
-
// src/lib/domain/onboard/claude-setup.ts
|
|
22444
|
-
import { spawn as spawn3 } from "child_process";
|
|
22445
|
-
import chalk79 from "chalk";
|
|
22446
|
-
var MARKETPLACE_NAME = "vm0-skills";
|
|
22447
|
-
var MARKETPLACE_REPO = "vm0-ai/vm0-skills";
|
|
22448
|
-
var PLUGIN_ID = "vm0@vm0-skills";
|
|
22449
|
-
var PRIMARY_SKILL_NAME = "vm0-agent";
|
|
22450
|
-
async function runClaudeCommand(args, cwd) {
|
|
22451
|
-
return new Promise((resolve2) => {
|
|
22452
|
-
const child = spawn3("claude", args, {
|
|
22453
|
-
stdio: ["inherit", "pipe", "pipe"],
|
|
22454
|
-
cwd
|
|
22455
|
-
});
|
|
22456
|
-
let stdout = "";
|
|
22457
|
-
let stderr = "";
|
|
22458
|
-
child.stdout?.on("data", (data) => {
|
|
22459
|
-
stdout += data.toString();
|
|
22460
|
-
});
|
|
22461
|
-
child.stderr?.on("data", (data) => {
|
|
22462
|
-
stderr += data.toString();
|
|
22463
|
-
});
|
|
22464
|
-
child.on("error", (err) => {
|
|
22465
|
-
resolve2({
|
|
22466
|
-
success: false,
|
|
22467
|
-
output: stdout,
|
|
22468
|
-
error: err.message
|
|
22469
|
-
});
|
|
22470
|
-
});
|
|
22471
|
-
child.on("close", (code) => {
|
|
22472
|
-
resolve2({
|
|
22473
|
-
success: code === 0,
|
|
22474
|
-
output: stdout,
|
|
22475
|
-
error: stderr || void 0
|
|
22476
|
-
});
|
|
22477
|
-
});
|
|
22478
|
-
});
|
|
22479
|
-
}
|
|
22480
|
-
async function isMarketplaceInstalled() {
|
|
22481
|
-
const result = await runClaudeCommand([
|
|
22482
|
-
"plugin",
|
|
22483
|
-
"marketplace",
|
|
22484
|
-
"list",
|
|
22485
|
-
"--json"
|
|
22486
|
-
]);
|
|
22487
|
-
if (!result.success) {
|
|
22488
|
-
return false;
|
|
22489
|
-
}
|
|
22490
|
-
try {
|
|
22491
|
-
const marketplaces = JSON.parse(result.output);
|
|
22492
|
-
return marketplaces.some((m) => m.name === MARKETPLACE_NAME);
|
|
22493
|
-
} catch {
|
|
22494
|
-
return false;
|
|
22495
|
-
}
|
|
22496
|
-
}
|
|
22497
|
-
async function addMarketplace() {
|
|
22498
|
-
const result = await runClaudeCommand([
|
|
22499
|
-
"plugin",
|
|
22500
|
-
"marketplace",
|
|
22501
|
-
"add",
|
|
22502
|
-
MARKETPLACE_REPO
|
|
22503
|
-
]);
|
|
22504
|
-
if (!result.success) {
|
|
22505
|
-
throw new Error(
|
|
22506
|
-
`Failed to add marketplace ${MARKETPLACE_REPO}: ${result.error ?? "unknown error"}`
|
|
22507
|
-
);
|
|
22508
|
-
}
|
|
22509
|
-
}
|
|
22510
|
-
async function updateMarketplace() {
|
|
22511
|
-
const result = await runClaudeCommand([
|
|
22512
|
-
"plugin",
|
|
22513
|
-
"marketplace",
|
|
22514
|
-
"update",
|
|
22515
|
-
MARKETPLACE_NAME
|
|
22516
|
-
]);
|
|
22517
|
-
if (!result.success) {
|
|
22518
|
-
console.warn(
|
|
22519
|
-
chalk79.yellow(
|
|
22520
|
-
`Warning: Could not update marketplace: ${result.error ?? "unknown error"}`
|
|
22521
|
-
)
|
|
22522
|
-
);
|
|
22523
|
-
}
|
|
22524
|
-
}
|
|
22525
|
-
async function ensureMarketplace() {
|
|
22526
|
-
const installed = await isMarketplaceInstalled();
|
|
22527
|
-
if (!installed) {
|
|
22528
|
-
await addMarketplace();
|
|
22529
|
-
} else {
|
|
22530
|
-
await updateMarketplace();
|
|
22531
|
-
}
|
|
22532
|
-
}
|
|
22533
|
-
async function installVm0Plugin(scope = "user", cwd) {
|
|
22534
|
-
await ensureMarketplace();
|
|
22535
|
-
const args = ["plugin", "install", PLUGIN_ID, "--scope", scope];
|
|
22536
|
-
const result = await runClaudeCommand(args, cwd);
|
|
22537
|
-
if (!result.success) {
|
|
22538
|
-
throw new Error(
|
|
22539
|
-
`Failed to install plugin ${PLUGIN_ID}: ${result.error ?? "unknown error"}`
|
|
22540
|
-
);
|
|
22541
|
-
}
|
|
22542
|
-
return {
|
|
22543
|
-
pluginId: PLUGIN_ID,
|
|
22544
|
-
scope
|
|
22545
|
-
};
|
|
22546
|
-
}
|
|
22547
|
-
|
|
22548
|
-
// src/commands/setup-claude/index.ts
|
|
22549
|
-
var setupClaudeCommand = new Command90().name("setup-claude").description("Install VM0 Claude Plugin").option("--agent-dir <dir>", "Agent directory to run install in").option("--scope <scope>", "Installation scope (user or project)", "project").action(
|
|
22550
|
-
withErrorHandler(async (options) => {
|
|
22551
|
-
console.log(chalk80.dim("Installing VM0 Claude Plugin..."));
|
|
22552
|
-
const scope = options.scope === "user" ? "user" : "project";
|
|
22553
|
-
const result = await installVm0Plugin(scope, options.agentDir);
|
|
22554
|
-
console.log(
|
|
22555
|
-
chalk80.green(`\u2713 Installed ${result.pluginId} (scope: ${result.scope})`)
|
|
22556
|
-
);
|
|
22557
|
-
console.log();
|
|
22558
|
-
console.log("Next step:");
|
|
22559
|
-
const cdPrefix = options.agentDir ? `cd ${options.agentDir} && ` : "";
|
|
22560
|
-
console.log(
|
|
22561
|
-
chalk80.cyan(
|
|
22562
|
-
` ${cdPrefix}claude "/${PRIMARY_SKILL_NAME} let's build a workflow"`
|
|
22563
|
-
)
|
|
22564
|
-
);
|
|
22565
|
-
})
|
|
22566
|
-
);
|
|
23644
|
+
var connectorCommand = new Command88().name("connector").description("Manage third-party service connections").addCommand(listCommand13).addCommand(statusCommand8).addCommand(connectCommand).addCommand(disconnectCommand);
|
|
22567
23645
|
|
|
22568
23646
|
// src/commands/preference/index.ts
|
|
22569
|
-
import { Command as
|
|
22570
|
-
import
|
|
23647
|
+
import { Command as Command89 } from "commander";
|
|
23648
|
+
import chalk78 from "chalk";
|
|
22571
23649
|
function detectTimezone2() {
|
|
22572
23650
|
return Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
22573
23651
|
}
|
|
@@ -22588,15 +23666,15 @@ function parseOnOff(flag, value) {
|
|
|
22588
23666
|
);
|
|
22589
23667
|
}
|
|
22590
23668
|
function displayPreferences(prefs) {
|
|
22591
|
-
console.log(
|
|
23669
|
+
console.log(chalk78.bold("Current preferences:"));
|
|
22592
23670
|
console.log(
|
|
22593
|
-
` Timezone: ${prefs.timezone ?
|
|
23671
|
+
` Timezone: ${prefs.timezone ? chalk78.cyan(prefs.timezone) : chalk78.dim("not set")}`
|
|
22594
23672
|
);
|
|
22595
23673
|
console.log(
|
|
22596
|
-
` Email notify: ${prefs.notifyEmail ?
|
|
23674
|
+
` Email notify: ${prefs.notifyEmail ? chalk78.green("on") : chalk78.dim("off")}`
|
|
22597
23675
|
);
|
|
22598
23676
|
console.log(
|
|
22599
|
-
` Slack notify: ${prefs.notifySlack ?
|
|
23677
|
+
` Slack notify: ${prefs.notifySlack ? chalk78.green("on") : chalk78.dim("off")}`
|
|
22600
23678
|
);
|
|
22601
23679
|
}
|
|
22602
23680
|
function buildUpdates(opts) {
|
|
@@ -22626,21 +23704,21 @@ function buildUpdates(opts) {
|
|
|
22626
23704
|
function printUpdateResult(updates, result) {
|
|
22627
23705
|
if (updates.timezone !== void 0) {
|
|
22628
23706
|
console.log(
|
|
22629
|
-
|
|
22630
|
-
`Timezone set to ${
|
|
23707
|
+
chalk78.green(
|
|
23708
|
+
`Timezone set to ${chalk78.cyan(result.timezone ?? updates.timezone)}`
|
|
22631
23709
|
)
|
|
22632
23710
|
);
|
|
22633
23711
|
}
|
|
22634
23712
|
if (updates.notifyEmail !== void 0) {
|
|
22635
23713
|
console.log(
|
|
22636
|
-
|
|
23714
|
+
chalk78.green(
|
|
22637
23715
|
`Email notifications ${result.notifyEmail ? "enabled" : "disabled"}`
|
|
22638
23716
|
)
|
|
22639
23717
|
);
|
|
22640
23718
|
}
|
|
22641
23719
|
if (updates.notifySlack !== void 0) {
|
|
22642
23720
|
console.log(
|
|
22643
|
-
|
|
23721
|
+
chalk78.green(
|
|
22644
23722
|
`Slack notifications ${result.notifySlack ? "enabled" : "disabled"}`
|
|
22645
23723
|
)
|
|
22646
23724
|
);
|
|
@@ -22649,7 +23727,7 @@ function printUpdateResult(updates, result) {
|
|
|
22649
23727
|
async function interactiveSetup(prefs) {
|
|
22650
23728
|
if (!prefs.timezone) {
|
|
22651
23729
|
const detectedTz = detectTimezone2();
|
|
22652
|
-
console.log(
|
|
23730
|
+
console.log(chalk78.dim(`
|
|
22653
23731
|
System timezone detected: ${detectedTz}`));
|
|
22654
23732
|
const tz = await promptText(
|
|
22655
23733
|
"Set timezone? (enter timezone or leave empty to skip)",
|
|
@@ -22660,7 +23738,7 @@ System timezone detected: ${detectedTz}`));
|
|
|
22660
23738
|
throw new Error(`Invalid timezone: ${tz.trim()}`);
|
|
22661
23739
|
}
|
|
22662
23740
|
await updateUserPreferences({ timezone: tz.trim() });
|
|
22663
|
-
console.log(
|
|
23741
|
+
console.log(chalk78.green(`Timezone set to ${chalk78.cyan(tz.trim())}`));
|
|
22664
23742
|
}
|
|
22665
23743
|
}
|
|
22666
23744
|
if (!prefs.notifyEmail) {
|
|
@@ -22670,11 +23748,11 @@ System timezone detected: ${detectedTz}`));
|
|
|
22670
23748
|
);
|
|
22671
23749
|
if (enable) {
|
|
22672
23750
|
await updateUserPreferences({ notifyEmail: true });
|
|
22673
|
-
console.log(
|
|
23751
|
+
console.log(chalk78.green("Email notifications enabled"));
|
|
22674
23752
|
}
|
|
22675
23753
|
}
|
|
22676
23754
|
}
|
|
22677
|
-
var preferenceCommand = new
|
|
23755
|
+
var preferenceCommand = new Command89().name("preference").description("View or update your preferences").option("--timezone <timezone>", "IANA timezone (e.g., America/New_York)").option("--notify-email <on|off>", "Enable or disable email notifications").option("--notify-slack <on|off>", "Enable or disable Slack notifications").action(
|
|
22678
23756
|
withErrorHandler(async (opts) => {
|
|
22679
23757
|
const updates = buildUpdates(opts);
|
|
22680
23758
|
if (updates) {
|
|
@@ -22689,32 +23767,32 @@ var preferenceCommand = new Command91().name("preference").description("View or
|
|
|
22689
23767
|
} else if (!prefs.timezone) {
|
|
22690
23768
|
console.log();
|
|
22691
23769
|
console.log(
|
|
22692
|
-
`To set timezone: ${
|
|
23770
|
+
`To set timezone: ${chalk78.cyan("vm0 preference --timezone <timezone>")}`
|
|
22693
23771
|
);
|
|
22694
23772
|
console.log(
|
|
22695
|
-
|
|
23773
|
+
chalk78.dim("Example: vm0 preference --timezone America/New_York")
|
|
22696
23774
|
);
|
|
22697
23775
|
}
|
|
22698
23776
|
})
|
|
22699
23777
|
);
|
|
22700
23778
|
|
|
22701
23779
|
// src/commands/upgrade/index.ts
|
|
22702
|
-
import { Command as
|
|
22703
|
-
import
|
|
22704
|
-
var upgradeCommand = new
|
|
23780
|
+
import { Command as Command90 } from "commander";
|
|
23781
|
+
import chalk79 from "chalk";
|
|
23782
|
+
var upgradeCommand = new Command90().name("upgrade").description("Upgrade vm0 CLI to the latest version").action(
|
|
22705
23783
|
withErrorHandler(async () => {
|
|
22706
23784
|
console.log("Checking for updates...");
|
|
22707
23785
|
const latestVersion = await getLatestVersion();
|
|
22708
23786
|
if (latestVersion === null) {
|
|
22709
23787
|
throw new Error("Could not check for updates. Please try again later.");
|
|
22710
23788
|
}
|
|
22711
|
-
if (latestVersion === "9.
|
|
22712
|
-
console.log(
|
|
23789
|
+
if (latestVersion === "9.75.1") {
|
|
23790
|
+
console.log(chalk79.green(`\u2713 Already up to date (${"9.75.1"})`));
|
|
22713
23791
|
return;
|
|
22714
23792
|
}
|
|
22715
23793
|
console.log(
|
|
22716
|
-
|
|
22717
|
-
`Current version: ${"9.
|
|
23794
|
+
chalk79.yellow(
|
|
23795
|
+
`Current version: ${"9.75.1"} -> Latest version: ${latestVersion}`
|
|
22718
23796
|
)
|
|
22719
23797
|
);
|
|
22720
23798
|
console.log();
|
|
@@ -22722,26 +23800,26 @@ var upgradeCommand = new Command92().name("upgrade").description("Upgrade vm0 CL
|
|
|
22722
23800
|
if (!isAutoUpgradeSupported(packageManager)) {
|
|
22723
23801
|
if (packageManager === "unknown") {
|
|
22724
23802
|
console.log(
|
|
22725
|
-
|
|
23803
|
+
chalk79.yellow(
|
|
22726
23804
|
"Could not detect your package manager for auto-upgrade."
|
|
22727
23805
|
)
|
|
22728
23806
|
);
|
|
22729
23807
|
} else {
|
|
22730
23808
|
console.log(
|
|
22731
|
-
|
|
23809
|
+
chalk79.yellow(
|
|
22732
23810
|
`Auto-upgrade is not supported for ${packageManager}.`
|
|
22733
23811
|
)
|
|
22734
23812
|
);
|
|
22735
23813
|
}
|
|
22736
|
-
console.log(
|
|
22737
|
-
console.log(
|
|
23814
|
+
console.log(chalk79.yellow("Please upgrade manually:"));
|
|
23815
|
+
console.log(chalk79.cyan(` ${getManualUpgradeCommand(packageManager)}`));
|
|
22738
23816
|
return;
|
|
22739
23817
|
}
|
|
22740
23818
|
console.log(`Upgrading via ${packageManager}...`);
|
|
22741
23819
|
const success = await performUpgrade(packageManager);
|
|
22742
23820
|
if (success) {
|
|
22743
23821
|
console.log(
|
|
22744
|
-
|
|
23822
|
+
chalk79.green(`\u2713 Upgraded from ${"9.75.1"} to ${latestVersion}`)
|
|
22745
23823
|
);
|
|
22746
23824
|
return;
|
|
22747
23825
|
}
|
|
@@ -22754,8 +23832,8 @@ var upgradeCommand = new Command92().name("upgrade").description("Upgrade vm0 CL
|
|
|
22754
23832
|
);
|
|
22755
23833
|
|
|
22756
23834
|
// src/commands/whoami.ts
|
|
22757
|
-
import { Command as
|
|
22758
|
-
import
|
|
23835
|
+
import { Command as Command91 } from "commander";
|
|
23836
|
+
import chalk80 from "chalk";
|
|
22759
23837
|
function isInsideSandbox() {
|
|
22760
23838
|
return !!process.env.VM0_RUN_ID;
|
|
22761
23839
|
}
|
|
@@ -22770,7 +23848,7 @@ async function showSandboxInfo() {
|
|
|
22770
23848
|
const apiUrl = process.env.VM0_API_URL;
|
|
22771
23849
|
const hasAgentInfo = agentName || agentVersion || agentComposeId || agentOrgSlug || cliAgentType;
|
|
22772
23850
|
if (hasAgentInfo) {
|
|
22773
|
-
console.log(
|
|
23851
|
+
console.log(chalk80.bold("Agent:"));
|
|
22774
23852
|
if (agentName) console.log(` Name: ${agentName}`);
|
|
22775
23853
|
if (agentVersion) console.log(` Version: ${agentVersion}`);
|
|
22776
23854
|
if (agentComposeId) console.log(` Compose ID: ${agentComposeId}`);
|
|
@@ -22778,7 +23856,7 @@ async function showSandboxInfo() {
|
|
|
22778
23856
|
if (cliAgentType) console.log(` Framework: ${cliAgentType}`);
|
|
22779
23857
|
console.log();
|
|
22780
23858
|
}
|
|
22781
|
-
console.log(
|
|
23859
|
+
console.log(chalk80.bold("Run:"));
|
|
22782
23860
|
if (runId) console.log(` ID: ${runId}`);
|
|
22783
23861
|
if (activeOrg) console.log(` Org: ${activeOrg}`);
|
|
22784
23862
|
if (apiUrl) console.log(` API: ${apiUrl}`);
|
|
@@ -22787,23 +23865,23 @@ async function showLocalInfo() {
|
|
|
22787
23865
|
const token = await getToken();
|
|
22788
23866
|
const apiUrl = await getApiUrl();
|
|
22789
23867
|
const activeOrg = await getActiveOrg();
|
|
22790
|
-
console.log(
|
|
23868
|
+
console.log(chalk80.bold("Auth:"));
|
|
22791
23869
|
if (token) {
|
|
22792
23870
|
const tokenSource = process.env.VM0_TOKEN ? "VM0_TOKEN env var" : "config file";
|
|
22793
23871
|
console.log(
|
|
22794
|
-
` Status: ${
|
|
23872
|
+
` Status: ${chalk80.green("Authenticated")} (via ${tokenSource})`
|
|
22795
23873
|
);
|
|
22796
23874
|
} else {
|
|
22797
|
-
console.log(` Status: ${
|
|
23875
|
+
console.log(` Status: ${chalk80.dim("Not authenticated")}`);
|
|
22798
23876
|
}
|
|
22799
23877
|
console.log(` API: ${apiUrl}`);
|
|
22800
23878
|
console.log();
|
|
22801
23879
|
if (activeOrg) {
|
|
22802
|
-
console.log(
|
|
23880
|
+
console.log(chalk80.bold("Org:"));
|
|
22803
23881
|
console.log(` Active: ${activeOrg}`);
|
|
22804
23882
|
}
|
|
22805
23883
|
}
|
|
22806
|
-
var whoamiCommand = new
|
|
23884
|
+
var whoamiCommand = new Command91().name("whoami").description("Show current identity and environment information").action(
|
|
22807
23885
|
withErrorHandler(async () => {
|
|
22808
23886
|
if (isInsideSandbox()) {
|
|
22809
23887
|
await showSandboxInfo();
|
|
@@ -22813,9 +23891,15 @@ var whoamiCommand = new Command93().name("whoami").description("Show current ide
|
|
|
22813
23891
|
})
|
|
22814
23892
|
);
|
|
22815
23893
|
|
|
23894
|
+
// src/commands/zero/index.ts
|
|
23895
|
+
import { Command as Command92 } from "commander";
|
|
23896
|
+
var zeroCommand = new Command92("zero").description(
|
|
23897
|
+
"Zero platform commands"
|
|
23898
|
+
);
|
|
23899
|
+
|
|
22816
23900
|
// src/index.ts
|
|
22817
|
-
var program = new
|
|
22818
|
-
program.name("vm0").description("VM0 CLI - Build and run agents with natural language").version("9.
|
|
23901
|
+
var program = new Command93();
|
|
23902
|
+
program.name("vm0").description("VM0 CLI - Build and run agents with natural language").version("9.75.1");
|
|
22819
23903
|
program.addCommand(authCommand);
|
|
22820
23904
|
program.addCommand(infoCommand);
|
|
22821
23905
|
program.addCommand(composeCommand);
|
|
@@ -22829,14 +23913,13 @@ program.addCommand(orgCommand);
|
|
|
22829
23913
|
program.addCommand(agentCommand);
|
|
22830
23914
|
program.addCommand(initCommand4);
|
|
22831
23915
|
program.addCommand(scheduleCommand);
|
|
22832
|
-
program.addCommand(usageCommand);
|
|
22833
23916
|
program.addCommand(secretCommand);
|
|
22834
23917
|
program.addCommand(variableCommand);
|
|
22835
23918
|
program.addCommand(connectorCommand);
|
|
22836
|
-
program.addCommand(setupClaudeCommand);
|
|
22837
23919
|
program.addCommand(preferenceCommand);
|
|
22838
23920
|
program.addCommand(upgradeCommand);
|
|
22839
23921
|
program.addCommand(whoamiCommand);
|
|
23922
|
+
program.addCommand(zeroCommand);
|
|
22840
23923
|
if (process.argv[1]?.endsWith("index.js") || process.argv[1]?.endsWith("index.ts") || process.argv[1]?.endsWith("vm0")) {
|
|
22841
23924
|
process.stdout.on("error", (err) => {
|
|
22842
23925
|
if (err.code === "EPIPE") process.exit(0);
|