@kora-platform/cli 0.7.0-rc1 → 0.8.0-rc1

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.
Files changed (38) hide show
  1. package/README.md +21 -0
  2. package/dist/api-client.d.ts +250 -93
  3. package/dist/api-client.js +187 -163
  4. package/dist/api-types.d.ts +280 -162
  5. package/dist/artifact-api-client.d.ts +28 -1
  6. package/dist/artifact-api-client.js +33 -0
  7. package/dist/artifact-commands.d.ts +5 -0
  8. package/dist/artifact-commands.js +172 -1
  9. package/dist/audit-commands.d.ts +12 -0
  10. package/dist/audit-commands.js +74 -0
  11. package/dist/auth-commands.d.ts +1 -0
  12. package/dist/auth-commands.js +116 -29
  13. package/dist/command-builders.d.ts +1 -0
  14. package/dist/command-builders.js +1 -0
  15. package/dist/command-groups.js +10 -12
  16. package/dist/command-registry.js +548 -243
  17. package/dist/commands.js +652 -602
  18. package/dist/environment-context.d.ts +9 -0
  19. package/dist/environment-context.js +32 -0
  20. package/dist/{integration-commands.d.ts → extension-commands.d.ts} +3 -2
  21. package/dist/extension-commands.js +446 -0
  22. package/dist/files.d.ts +33 -0
  23. package/dist/files.js +247 -12
  24. package/dist/format.d.ts +5 -0
  25. package/dist/format.js +78 -1
  26. package/dist/runner.js +14 -5
  27. package/dist/schema-registry-data.d.ts +272 -569
  28. package/dist/schema-registry-data.js +307 -700
  29. package/dist/session.d.ts +1 -0
  30. package/dist/transport.d.ts +10 -0
  31. package/dist/transport.js +22 -0
  32. package/dist/types.d.ts +2 -1
  33. package/dist/workspace-source.d.ts +1 -0
  34. package/dist/workspace-source.js +13 -0
  35. package/package.json +2 -1
  36. package/dist/integration-api-client.d.ts +0 -29
  37. package/dist/integration-api-client.js +0 -50
  38. package/dist/integration-commands.js +0 -208
@@ -6,15 +6,17 @@ const TOP_LEVEL_COMMANDS = [
6
6
  "status",
7
7
  "activity",
8
8
  "workflow",
9
+ "test",
9
10
  "release",
10
11
  "run",
12
+ "audit",
11
13
  "artifact",
12
14
  "task",
15
+ "deployment",
16
+ "environment",
13
17
  "org-model",
14
18
  "access",
15
- "integrations",
16
- "mcp",
17
- "skills",
19
+ "extensions",
18
20
  "secrets",
19
21
  "completion",
20
22
  "env",
@@ -31,7 +33,7 @@ export const CLI_ALIASES = Object.freeze({
31
33
  });
32
34
  const RAW_CLI_COMMANDS = [
33
35
  command(["help"], "Show human or machine-readable help for a command path.", {
34
- labels: ["read", "help"],
36
+ labels: ["read", "chat-read", "help"],
35
37
  args: [arg("command-path", "Optional command path to inspect.", false)],
36
38
  requiresActiveOrg: false
37
39
  }),
@@ -63,7 +65,22 @@ const RAW_CLI_COMMANDS = [
63
65
  labels: ["local", "auth"]
64
66
  }),
65
67
  command(["auth", "login"], "Start an interactive login flow and select the active organization.", {
66
- labels: ["credential", "auth"]
68
+ labels: ["credential", "auth"],
69
+ flags: [
70
+ flag("base-url", "Platform base URL for this login.", {
71
+ acceptsValue: true,
72
+ valueType: "string"
73
+ })
74
+ ]
75
+ }),
76
+ command(["auth", "signup"], "Create a local account and start a CLI session.", {
77
+ labels: ["credential", "auth"],
78
+ flags: [
79
+ flag("base-url", "Platform base URL for this signup.", {
80
+ acceptsValue: true,
81
+ valueType: "string"
82
+ })
83
+ ]
67
84
  }),
68
85
  command(["auth", "logout"], "Clear the current session and revoke the refresh token if possible.", {
69
86
  labels: ["credential", "auth"]
@@ -118,32 +135,19 @@ const RAW_CLI_COMMANDS = [
118
135
  labels: ["read", "org"],
119
136
  requiresActiveOrg: true
120
137
  }),
121
- command(["org", "import"], "Import an organization bundle from disk.", {
122
- labels: ["write", "org"],
123
- args: [arg("path", "Path to the import directory or file collection root.")],
124
- requiresActiveOrg: true
125
- }),
126
- command(["org", "bundle", "show"], "Show the current organization bundle snapshot.", {
127
- labels: ["read", "org"],
128
- flags: [flag("release", "Read a published bundle snapshot.", {
129
- acceptsValue: true,
130
- valueType: "string"
131
- })],
132
- requiresActiveOrg: true
133
- }),
134
- command(["org", "reset"], "Reset the draft project for the active organization.", {
138
+ command(["org", "reset"], "Reset release, runtime, project, and chat state for the active organization.", {
135
139
  labels: ["destructive", "org"],
136
140
  destructive: true,
137
141
  flags: [flag("yes", "Confirm the destructive operation without an interactive prompt.")],
138
142
  requiresActiveOrg: true
139
143
  }),
140
144
  command(["status"], "Show the current operator home/status summary.", {
141
- labels: ["read", "status"],
145
+ labels: ["read", "chat-read", "status"],
142
146
  aliases: [["home"]],
143
147
  requiresActiveOrg: true
144
148
  }),
145
149
  command(["activity", "list"], "List activity events, related tasks, and related runs.", {
146
- labels: ["read", "activity"],
150
+ labels: ["read", "activity", "chat-read"],
147
151
  flags: [
148
152
  flag("limit", "Maximum number of activity events to return.", {
149
153
  acceptsValue: true,
@@ -165,19 +169,23 @@ const RAW_CLI_COMMANDS = [
165
169
  flag("focus-value", "Focused entity name.", {
166
170
  acceptsValue: true,
167
171
  valueType: "string"
172
+ }),
173
+ flag("environment", "Filter by environment.", {
174
+ acceptsValue: true,
175
+ valueType: "string"
168
176
  })
169
177
  ],
170
178
  paginated: "limit",
171
179
  requiresActiveOrg: true
172
180
  }),
173
181
  command(["activity", "options"], "List valid activity focus filter options.", {
174
- labels: ["read", "activity"],
182
+ labels: ["read", "activity", "chat-read"],
175
183
  requiresActiveOrg: true
176
184
  }),
177
185
  command(["workflow", "list"], "List workflows.", {
178
186
  labels: ["read", "workflow"],
179
187
  aliases: [["process", "list"]],
180
- flags: [flag("release", "Read workflows from a published release.", {
188
+ flags: [flag("release", "Read workflows from a release.", {
181
189
  acceptsValue: true,
182
190
  valueType: "string"
183
191
  })],
@@ -187,7 +195,7 @@ const RAW_CLI_COMMANDS = [
187
195
  labels: ["read", "workflow"],
188
196
  aliases: [["process", "get"]],
189
197
  args: [arg("name", "Workflow name.")],
190
- flags: [flag("release", "Read workflow detail from a published release.", {
198
+ flags: [flag("release", "Read workflow detail from a release.", {
191
199
  acceptsValue: true,
192
200
  valueType: "string"
193
201
  })],
@@ -197,7 +205,7 @@ const RAW_CLI_COMMANDS = [
197
205
  labels: ["read", "workflow"],
198
206
  aliases: [["process", "version", "get"]],
199
207
  args: [arg("name", "Workflow name."), arg("version", "Workflow version.")],
200
- flags: [flag("release", "Read workflow version from a published release.", {
208
+ flags: [flag("release", "Read workflow version from a release.", {
201
209
  acceptsValue: true,
202
210
  valueType: "string"
203
211
  })],
@@ -207,7 +215,7 @@ const RAW_CLI_COMMANDS = [
207
215
  labels: ["read", "workflow"],
208
216
  aliases: [["process", "dependencies"]],
209
217
  args: [arg("name", "Workflow name."), arg("version", "Workflow version.")],
210
- flags: [flag("release", "Read workflow dependencies from a published release.", {
218
+ flags: [flag("release", "Read workflow dependencies from a release.", {
211
219
  acceptsValue: true,
212
220
  valueType: "string"
213
221
  })],
@@ -216,7 +224,7 @@ const RAW_CLI_COMMANDS = [
216
224
  command(["workflow", "context"], "Show workflow inspection context.", {
217
225
  labels: ["read", "workflow"],
218
226
  aliases: [["process", "context"]],
219
- flags: [flag("release", "Read workflow context from a published release.", {
227
+ flags: [flag("release", "Read workflow context from a release.", {
220
228
  acceptsValue: true,
221
229
  valueType: "string"
222
230
  })],
@@ -237,7 +245,30 @@ const RAW_CLI_COMMANDS = [
237
245
  knownValues: ["manual", "message"],
238
246
  valueType: "string"
239
247
  }),
240
- flag("start-event-name", "Published workflow start-event name.", {
248
+ flag("start-event-name", "Workflow start-event name.", {
249
+ acceptsValue: true,
250
+ valueType: "string"
251
+ }),
252
+ flag("environment", "Environment whose live deployment starts the workflow.", {
253
+ acceptsValue: true,
254
+ valueType: "string"
255
+ })
256
+ ],
257
+ requiresActiveOrg: true
258
+ }),
259
+ command(["test", "node"], "Test one workflow node from source files without creating a release.", {
260
+ labels: ["execution", "chat-execution"],
261
+ args: [arg("workflow-name", "Workflow name."), arg("node-id", "Workflow node id.")],
262
+ flags: [
263
+ flag("workspace", "Path to the source workspace root.", {
264
+ acceptsValue: true,
265
+ valueType: "string"
266
+ }),
267
+ flag("input", "JSON input as @file.json or - for stdin.", {
268
+ acceptsValue: true,
269
+ valueType: "string"
270
+ }),
271
+ flag("environment", "Environment used to resolve scoped variables and extension installs.", {
241
272
  acceptsValue: true,
242
273
  valueType: "string"
243
274
  })
@@ -245,9 +276,8 @@ const RAW_CLI_COMMANDS = [
245
276
  requiresActiveOrg: true
246
277
  }),
247
278
  command(["release", "list"], "List releases.", {
248
- labels: ["read", "release"],
279
+ labels: ["read", "chat-read", "release"],
249
280
  flags: [
250
- flag("include-draft", "Include the draft release."),
251
281
  flag("limit", "Maximum number of releases to return.", {
252
282
  acceptsValue: true,
253
283
  valueType: "number"
@@ -257,51 +287,90 @@ const RAW_CLI_COMMANDS = [
257
287
  requiresActiveOrg: true
258
288
  }),
259
289
  command(["release", "get"], "Show release detail.", {
260
- labels: ["read", "release"],
290
+ labels: ["read", "chat-read", "release"],
261
291
  args: [arg("release-id", "Release id.")],
262
292
  requiresActiveOrg: true
263
293
  }),
264
- command(["release", "changes"], "Show draft changes.", {
265
- labels: ["read", "release"],
294
+ command(["release", "create"], "Create an immutable release artifact from source files; this mutates Platform state and is not a test command.", {
295
+ labels: ["write", "chat-write", "release"],
296
+ args: [arg("workspace", "Path to the source folder or zip archive.")],
297
+ flags: [flag("label", "Human label for the release.", {
298
+ acceptsValue: true,
299
+ valueType: "string"
300
+ })],
266
301
  requiresActiveOrg: true
267
302
  }),
268
- command(["release", "deployment", "get"], "Show deployment detail for a release deployment id.", {
269
- labels: ["read", "release"],
270
- args: [arg("deployment-id", "Deployment id.")],
303
+ command(["release", "validate"], "Validate release readiness without deploying.", {
304
+ labels: ["read", "chat-read", "release"],
305
+ args: [arg("release-id", "Release id.")],
306
+ flags: [flag("environment", "Validate against one environment's configuration.", {
307
+ acceptsValue: true,
308
+ valueType: "string"
309
+ })],
271
310
  requiresActiveOrg: true
272
311
  }),
273
- command(["release", "publish"], "Publish the current draft release.", {
274
- labels: ["publish", "release"],
275
- flags: [flag("reason", "Human reason for the publication.", {
312
+ command(["release", "source"], "Write frozen release source files to a local directory.", {
313
+ labels: ["read", "chat-read", "release"],
314
+ args: [arg("release-id", "Release id.")],
315
+ flags: [flag("out", "Directory to write the release source into.", {
276
316
  acceptsValue: true,
317
+ required: true,
277
318
  valueType: "string"
278
319
  })],
279
320
  requiresActiveOrg: true
280
321
  }),
281
- command(["release", "retry"], "Retry a failed publication.", {
282
- labels: ["publish", "release"],
283
- args: [arg("release-id", "Release id.")],
322
+ command(["environment", "list"], "List environments.", {
323
+ labels: ["read", "chat-read", "environment"],
284
324
  requiresActiveOrg: true
285
325
  }),
286
- command(["release", "discard"], "Discard the current draft release.", {
287
- labels: ["destructive", "release"],
288
- destructive: true,
289
- flags: [flag("yes", "Confirm the destructive operation without an interactive prompt.")],
326
+ command(["environment", "get"], "Show environment detail.", {
327
+ labels: ["read", "chat-read", "environment"],
328
+ args: [arg("environment", "Environment key.")],
290
329
  requiresActiveOrg: true
291
330
  }),
292
- command(["release", "restore"], "Restore a published release into draft.", {
293
- labels: ["destructive", "release"],
294
- args: [arg("release-id", "Release id.")],
331
+ command(["environment", "create"], "Create an environment.", {
332
+ labels: ["write", "environment"],
333
+ args: [arg("environment", "Environment key.")],
334
+ flags: [
335
+ flag("name", "Display name.", {
336
+ acceptsValue: true,
337
+ valueType: "string"
338
+ }),
339
+ flag("copy-from", "Environment key or id to copy configuration from.", {
340
+ acceptsValue: true,
341
+ valueType: "string"
342
+ })
343
+ ],
344
+ requiresActiveOrg: true
345
+ }),
346
+ command(["environment", "rename"], "Rename an environment.", {
347
+ labels: ["write", "environment"],
348
+ args: [arg("environment", "Environment key."), arg("name", "New display name.")],
349
+ requiresActiveOrg: true
350
+ }),
351
+ command(["environment", "archive"], "Archive an environment.", {
352
+ labels: ["destructive", "environment"],
353
+ args: [arg("environment", "Environment key.")],
295
354
  destructive: true,
296
355
  flags: [flag("yes", "Confirm the destructive operation without an interactive prompt.")],
297
356
  requiresActiveOrg: true
298
357
  }),
299
- command(["release", "deactivate"], "Deactivate a published release.", {
300
- labels: ["destructive", "release"],
301
- args: [arg("release-id", "Release id.")],
358
+ command(["environment", "deploy"], "Deploy a release to an environment.", {
359
+ labels: ["write", "chat-write", "environment", "deployment", "release"],
360
+ args: [arg("environment", "Environment key."), arg("release", "Release id.")],
361
+ flags: [flag("policy", "Replacement policy for previous live deployment.", {
362
+ acceptsValue: true,
363
+ knownValues: ["drain", "terminate-running"],
364
+ valueType: "string"
365
+ })],
366
+ requiresActiveOrg: true
367
+ }),
368
+ command(["environment", "undeploy"], "Undeploy the live deployment from an environment.", {
369
+ labels: ["destructive", "environment", "deployment"],
370
+ args: [arg("environment", "Environment key.")],
302
371
  destructive: true,
303
372
  flags: [
304
- flag("policy", "Run deactivation policy.", {
373
+ flag("policy", "Undeploy policy.", {
305
374
  acceptsValue: true,
306
375
  knownValues: ["drain", "terminate-running"],
307
376
  valueType: "string"
@@ -310,9 +379,37 @@ const RAW_CLI_COMMANDS = [
310
379
  ],
311
380
  requiresActiveOrg: true
312
381
  }),
382
+ command(["deployment", "list"], "List environment deployments.", {
383
+ labels: ["read", "chat-read", "deployment"],
384
+ flags: [
385
+ flag("environment", "Filter by environment.", {
386
+ acceptsValue: true,
387
+ valueType: "string"
388
+ }),
389
+ flag("limit", "Maximum number of deployments to return.", {
390
+ acceptsValue: true,
391
+ valueType: "number"
392
+ })
393
+ ],
394
+ paginated: "limit",
395
+ requiresActiveOrg: true
396
+ }),
397
+ command(["deployment", "get"], "Show environment deployment detail.", {
398
+ labels: ["read", "chat-read", "deployment"],
399
+ args: [arg("deployment", "Deployment id.")],
400
+ flags: [flag("environment", "Validate deployment belongs to environment.", {
401
+ acceptsValue: true,
402
+ valueType: "string"
403
+ })],
404
+ requiresActiveOrg: true
405
+ }),
313
406
  command(["run", "list"], "List workflow runs.", {
314
- labels: ["read", "run"],
407
+ labels: ["read", "chat-read", "run"],
315
408
  flags: [
409
+ flag("environment", "Filter by environment.", {
410
+ acceptsValue: true,
411
+ valueType: "string"
412
+ }),
316
413
  flag("limit", "Maximum number of runs to return.", {
317
414
  acceptsValue: true,
318
415
  valueType: "number"
@@ -326,17 +423,17 @@ const RAW_CLI_COMMANDS = [
326
423
  requiresActiveOrg: true
327
424
  }),
328
425
  command(["run", "get"], "Show run detail.", {
329
- labels: ["read", "run"],
426
+ labels: ["read", "chat-read", "run"],
330
427
  args: [arg("workflow-id", "Workflow id.")],
331
428
  requiresActiveOrg: true
332
429
  }),
333
430
  command(["run", "state"], "Show run state.", {
334
- labels: ["read", "run"],
431
+ labels: ["read", "chat-read", "run"],
335
432
  args: [arg("workflow-id", "Workflow id.")],
336
433
  requiresActiveOrg: true
337
434
  }),
338
435
  command(["run", "steps"], "List run steps.", {
339
- labels: ["read", "run"],
436
+ labels: ["read", "chat-read", "run"],
340
437
  args: [arg("workflow-id", "Workflow id.")],
341
438
  flags: [
342
439
  flag("limit", "Maximum number of steps to return.", {
@@ -374,8 +471,57 @@ const RAW_CLI_COMMANDS = [
374
471
  flags: [flag("yes", "Confirm the destructive operation without an interactive prompt.")],
375
472
  requiresActiveOrg: true
376
473
  }),
377
- command(["artifact", "upload"], "Upload one local file as a managed workflow artifact.", {
378
- labels: ["execution", "artifact"],
474
+ command(["audit", "list"], "List organization audit events.", {
475
+ labels: ["read", "audit"],
476
+ flags: [
477
+ flag("action", "Filter by audit action.", {
478
+ acceptsValue: true,
479
+ valueType: "string"
480
+ }),
481
+ flag("actor", "Filter by actor id.", {
482
+ acceptsValue: true,
483
+ valueType: "string"
484
+ }),
485
+ flag("category", "Filter by audit category.", {
486
+ acceptsValue: true,
487
+ valueType: "string"
488
+ }),
489
+ flag("from", "Start timestamp in ISO-8601 format.", {
490
+ acceptsValue: true,
491
+ valueType: "string"
492
+ }),
493
+ flag("limit", "Maximum number of audit events to return.", {
494
+ acceptsValue: true,
495
+ valueType: "number"
496
+ }),
497
+ flag("outcome", "Filter by audit outcome.", {
498
+ acceptsValue: true,
499
+ knownValues: ["denied", "failed", "succeeded"],
500
+ valueType: "string"
501
+ }),
502
+ flag("resource-id", "Filter by audited resource id.", {
503
+ acceptsValue: true,
504
+ valueType: "string"
505
+ }),
506
+ flag("resource-type", "Filter by audited resource type.", {
507
+ acceptsValue: true,
508
+ valueType: "string"
509
+ }),
510
+ flag("to", "End timestamp in ISO-8601 format.", {
511
+ acceptsValue: true,
512
+ valueType: "string"
513
+ })
514
+ ],
515
+ paginated: "limit",
516
+ requiresActiveOrg: true
517
+ }),
518
+ command(["audit", "get"], "Show one organization audit event.", {
519
+ labels: ["read", "audit"],
520
+ args: [arg("event-id", "Audit event id.")],
521
+ requiresActiveOrg: true
522
+ }),
523
+ command(["artifact", "upload"], "Upload one local file as a managed runtime artifact.", {
524
+ labels: ["execution", "chat-execution", "artifact"],
379
525
  args: [arg("path", "Local file path to upload.")],
380
526
  flags: [
381
527
  flag("name", "Artifact display name. Defaults to the local file name.", {
@@ -404,7 +550,71 @@ const RAW_CLI_COMMANDS = [
404
550
  ],
405
551
  requiresActiveOrg: true
406
552
  }),
407
- command(["artifact", "download"], "Download one managed workflow artifact to a local file.", {
553
+ command(["artifact", "inventory"], "List organization runtime artifact inventory.", {
554
+ labels: ["read", "artifact"],
555
+ flags: [
556
+ flag("producer-type", "Filter by artifact producer type.", {
557
+ acceptsValue: true,
558
+ knownValues: ["workflow_capture", "upload", "review_upload", "workflow_node_test_capture"],
559
+ valueType: "string"
560
+ }),
561
+ flag("association-role", "Filter by artifact association role.", {
562
+ acceptsValue: true,
563
+ knownValues: ["input", "output", "review"],
564
+ valueType: "string"
565
+ }),
566
+ flag("association-kind", "Filter by artifact association kind.", {
567
+ acceptsValue: true,
568
+ knownValues: ["origin", "usage"],
569
+ valueType: "string"
570
+ }),
571
+ flag("run-id", "Filter by workflow run id.", {
572
+ acceptsValue: true,
573
+ valueType: "string"
574
+ }),
575
+ flag("workflow-id", "Filter by workflow definition id.", {
576
+ acceptsValue: true,
577
+ valueType: "string"
578
+ }),
579
+ flag("workflow-node-test-id", "Filter by workflow-node test id.", {
580
+ acceptsValue: true,
581
+ valueType: "string"
582
+ }),
583
+ flag("node-id", "Filter by node id.", {
584
+ acceptsValue: true,
585
+ valueType: "string"
586
+ }),
587
+ flag("media-type", "Filter by artifact media type.", {
588
+ acceptsValue: true,
589
+ valueType: "string"
590
+ }),
591
+ flag("lifecycle-status", "Filter by artifact lifecycle status.", {
592
+ acceptsValue: true,
593
+ knownValues: ["active", "archived", "purged", "all"],
594
+ valueType: "string"
595
+ }),
596
+ flag("created-after", "Filter to artifacts created at or after this ISO-8601 timestamp.", {
597
+ acceptsValue: true,
598
+ valueType: "string"
599
+ }),
600
+ flag("created-before", "Filter to artifacts created before this ISO-8601 timestamp.", {
601
+ acceptsValue: true,
602
+ valueType: "string"
603
+ }),
604
+ flag("limit", "Maximum number of artifacts to return.", {
605
+ acceptsValue: true,
606
+ valueType: "number"
607
+ })
608
+ ],
609
+ paginated: "limit",
610
+ requiresActiveOrg: true
611
+ }),
612
+ command(["artifact", "inspect"], "Inspect one runtime artifact and its associations.", {
613
+ labels: ["read", "artifact"],
614
+ args: [arg("artifact-id", "Artifact id.")],
615
+ requiresActiveOrg: true
616
+ }),
617
+ command(["artifact", "download"], "Download one managed runtime artifact to a local file.", {
408
618
  labels: ["execution", "artifact"],
409
619
  args: [arg("artifact-id", "Artifact id.")],
410
620
  flags: [
@@ -427,6 +637,23 @@ const RAW_CLI_COMMANDS = [
427
637
  ],
428
638
  requiresActiveOrg: true
429
639
  }),
640
+ command(["artifact", "archive"], "Archive one runtime artifact so it remains inspectable but cannot be downloaded or reused.", {
641
+ labels: ["execution", "artifact"],
642
+ args: [arg("artifact-id", "Artifact id.")],
643
+ requiresActiveOrg: true
644
+ }),
645
+ command(["artifact", "restore"], "Restore one archived runtime artifact to active use.", {
646
+ labels: ["execution", "artifact"],
647
+ args: [arg("artifact-id", "Artifact id.")],
648
+ requiresActiveOrg: true
649
+ }),
650
+ command(["artifact", "purge"], "Purge runtime artifact bytes while preserving provenance metadata.", {
651
+ labels: ["destructive", "artifact"],
652
+ args: [arg("artifact-id", "Artifact id.")],
653
+ destructive: true,
654
+ flags: [flag("yes", "Confirm the destructive operation without an interactive prompt.")],
655
+ requiresActiveOrg: true
656
+ }),
430
657
  command(["task", "list"], "List tasks.", {
431
658
  labels: ["read", "task"],
432
659
  aliases: [["inbox", "list"]],
@@ -521,22 +748,6 @@ const RAW_CLI_COMMANDS = [
521
748
  args: [arg("name", "Operation name.")],
522
749
  requiresActiveOrg: true
523
750
  }),
524
- command(["org-model", "connectors", "list"], "List connectors.", {
525
- labels: ["read", "org-model"], requiresActiveOrg: true
526
- }),
527
- command(["org-model", "connectors", "get"], "Show one connector.", {
528
- labels: ["read", "org-model"],
529
- args: [arg("name", "Connector name.")],
530
- requiresActiveOrg: true
531
- }),
532
- command(["org-model", "mcp-servers", "list"], "List MCP servers.", {
533
- labels: ["read", "org-model"], requiresActiveOrg: true
534
- }),
535
- command(["org-model", "mcp-servers", "get"], "Show one MCP server.", {
536
- labels: ["read", "org-model"],
537
- args: [arg("name", "MCP server name.")],
538
- requiresActiveOrg: true
539
- }),
540
751
  command(["access", "members", "list"], "List organization members.", {
541
752
  labels: ["read", "access"],
542
753
  flags: [
@@ -658,220 +869,247 @@ const RAW_CLI_COMMANDS = [
658
869
  flags: [flag("yes", "Confirm the destructive operation without an interactive prompt.")],
659
870
  requiresActiveOrg: true
660
871
  }),
661
- command(["integrations", "list"], "List backend-discovered integrations that can be used in this organization.", {
662
- labels: ["read", "integration"],
663
- requiresActiveOrg: true
664
- }),
665
- command(["integrations", "diagnostics"], "List backend-discovered integration setup diagnostics.", {
666
- labels: ["read", "integration"],
667
- requiresActiveOrg: true
668
- }),
669
- command(["integrations", "get"], "Show one backend-discovered integration.", {
670
- labels: ["read", "integration"],
671
- args: [arg("integration-id", "Integration id.")],
672
- requiresActiveOrg: true
673
- }),
674
- command(["integrations", "connections"], "List connected accounts for one backend-discovered integration.", {
675
- labels: ["read", "integration"],
676
- args: [arg("integration-id", "Integration id.")],
677
- requiresActiveOrg: true
678
- }),
679
- command(["integrations", "actions"], "List backend action descriptors for one integration.", {
680
- labels: ["read", "integration"],
681
- args: [arg("integration-id", "Integration id.")],
872
+ command(["extensions", "validate"], "Validate an extension package directory or archive-expanded root.", {
873
+ labels: ["read", "extension"],
874
+ args: [arg("path", "Path to an extension package directory.")],
875
+ flags: [
876
+ flag("subdir", "Validate a subdirectory from a zip archive.", {
877
+ acceptsValue: true,
878
+ valueType: "string"
879
+ })
880
+ ],
682
881
  requiresActiveOrg: true
683
882
  }),
684
- command(["integrations", "action"], "Run one CLI-safe backend action for an integration.", {
685
- labels: ["action", "integration"],
686
- args: [
687
- arg("integration-id", "Integration id."),
688
- arg("action-id", "Backend action id.")
689
- ],
883
+ command(["extensions", "export"], "Export extension package source files.", {
884
+ labels: ["read", "extension"],
690
885
  flags: [
691
- flag("connection", "Connection reference to bind to this action.", {
886
+ flag("install", "Export the revision currently used by an install id or slug.", {
887
+ acceptsValue: true,
888
+ valueType: "string"
889
+ }),
890
+ flag("environment", "Target environment when exporting by install.", {
891
+ acceptsValue: true,
892
+ valueType: "string"
893
+ }),
894
+ flag("revision", "Export a package revision by id.", {
895
+ acceptsValue: true,
896
+ valueType: "string"
897
+ }),
898
+ flag("package", "Export a package by name. Use with --latest.", {
692
899
  acceptsValue: true,
693
900
  valueType: "string"
694
901
  }),
695
- flag("input", "Structured JSON action input via @file.json or - for stdin.", {
902
+ flag("latest", "Export the latest revision for --package."),
903
+ flag("out", "Directory to write the exported files and .kora/export.json metadata.", {
696
904
  acceptsValue: true,
697
905
  valueType: "string"
698
906
  }),
699
- flag("open", "Open returned external URLs in a browser."),
700
- flag("no-open", "Do not open returned external URLs in a browser.")
907
+ flag("format", "Output format.", {
908
+ acceptsValue: true,
909
+ knownValues: ["json", "zip"],
910
+ valueType: "string"
911
+ })
701
912
  ],
702
913
  requiresActiveOrg: true
703
914
  }),
704
- command(["mcp", "list"], "List organization-managed MCP servers.", {
705
- labels: ["read", "mcp"],
706
- requiresActiveOrg: true
707
- }),
708
- command(["mcp", "get"], "Show one organization-managed MCP server.", {
709
- labels: ["read", "mcp"],
710
- args: [arg("server", "MCP server id or slug.")],
915
+ command(["extensions", "publish"], "Publish a validated extension package revision.", {
916
+ labels: ["write", "extension"],
917
+ args: [arg("path", "Path to an extension package directory.")],
918
+ flags: [
919
+ flag("subdir", "Publish a subdirectory from a zip archive.", {
920
+ acceptsValue: true,
921
+ valueType: "string"
922
+ })
923
+ ],
711
924
  requiresActiveOrg: true
712
925
  }),
713
- command(["mcp", "create"], "Create an organization-managed MCP server.", {
714
- labels: ["write", "mcp"],
926
+ command(["extensions", "install"], "Install a published extension package revision.", {
927
+ labels: ["write", "extension"],
928
+ args: [
929
+ arg("package-revision", "Extension package revision id."),
930
+ arg("slug", "Install slug.")
931
+ ],
715
932
  flags: [
716
- flag("name", "MCP server display name.", {
933
+ flag("environment", "Target environment.", {
717
934
  acceptsValue: true,
718
935
  required: true,
719
936
  valueType: "string"
720
937
  }),
721
- flag("slug", "MCP server slug.", {
938
+ flag("permissions", "Granted permissions JSON via @file.json or - for stdin.", {
939
+ acceptsValue: true,
940
+ valueType: "string"
941
+ })
942
+ ],
943
+ requiresActiveOrg: true
944
+ }),
945
+ command(["extensions", "grant"], "Replace the granted permissions for an extension install.", {
946
+ labels: ["write", "extension"],
947
+ args: [arg("install", "Extension install id or slug.")],
948
+ flags: [
949
+ flag("environment", "Target environment.", {
722
950
  acceptsValue: true,
723
951
  required: true,
724
952
  valueType: "string"
725
953
  }),
726
- flag("url", "Streamable HTTP MCP server URL.", {
954
+ flag("permissions", "Granted permissions JSON via @file.json or - for stdin.", {
727
955
  acceptsValue: true,
728
956
  required: true,
729
957
  valueType: "string"
730
958
  }),
731
- flag("auth-mode", "MCP auth mode.", {
959
+ flag("base-package-revision", "Expected current package revision id precondition.", {
732
960
  acceptsValue: true,
733
- knownValues: ["none", "oauth"],
734
961
  valueType: "string"
735
962
  }),
736
- flag("timeout-ms", "Connection timeout in milliseconds.", {
963
+ flag("base-updated-at", "Expected current install updatedAt precondition.", {
737
964
  acceptsValue: true,
738
- valueType: "number"
965
+ valueType: "string"
739
966
  })
740
967
  ],
741
968
  requiresActiveOrg: true
742
969
  }),
743
- command(["mcp", "update"], "Update an organization-managed MCP server.", {
744
- labels: ["write", "mcp"],
745
- args: [arg("server", "MCP server id or slug.")],
970
+ command(["extensions", "update"], "Update an extension install to another package revision.", {
971
+ labels: ["write", "extension"],
972
+ args: [arg("install", "Extension install id or slug.")],
746
973
  flags: [
747
- flag("name", "MCP server display name.", {
974
+ flag("environment", "Target environment.", {
748
975
  acceptsValue: true,
976
+ required: true,
749
977
  valueType: "string"
750
978
  }),
751
- flag("url", "Streamable HTTP MCP server URL.", {
979
+ flag("revision", "Target extension package revision id.", {
752
980
  acceptsValue: true,
981
+ required: true,
753
982
  valueType: "string"
754
983
  }),
755
- flag("auth-mode", "MCP auth mode.", {
984
+ flag("dry-run", "Plan the install update without mutating it."),
985
+ flag("base-package-revision", "Expected current package revision id precondition.", {
756
986
  acceptsValue: true,
757
- knownValues: ["none", "oauth"],
758
987
  valueType: "string"
759
988
  }),
760
- flag("disable", "Disable the MCP server until it is explicitly enabled again."),
761
- flag("enable", "Enable a disabled MCP server as draft; test it before use."),
762
- flag("timeout-ms", "Connection timeout in milliseconds.", {
989
+ flag("base-updated-at", "Expected current install updatedAt precondition.", {
763
990
  acceptsValue: true,
764
- valueType: "number"
991
+ valueType: "string"
765
992
  })
766
993
  ],
767
994
  requiresActiveOrg: true
768
995
  }),
769
- command(["mcp", "test"], "Test one organization-managed MCP server.", {
770
- labels: ["probe", "mcp"],
771
- args: [arg("server", "MCP server id or slug.")],
772
- requiresActiveOrg: true
773
- }),
774
- command(["mcp", "discover-tools"], "Discover tools for one organization-managed MCP server.", {
775
- labels: ["probe", "mcp"],
776
- args: [arg("server", "MCP server id or slug.")],
996
+ command(["extensions", "built-ins", "list"], "List available built-in extensions.", {
997
+ labels: ["read", "extension"],
998
+ flags: [flag("environment", "Target environment.", {
999
+ acceptsValue: true,
1000
+ valueType: "string"
1001
+ })],
777
1002
  requiresActiveOrg: true
778
1003
  }),
779
- command(["mcp", "connect"], "Start OAuth for one organization-managed MCP server.", {
780
- labels: ["credential", "mcp"],
781
- args: [arg("server", "MCP server id or slug.")],
1004
+ command(["extensions", "built-ins", "install"], "Install a built-in extension.", {
1005
+ labels: ["write", "extension"],
1006
+ args: [arg("built-in", "Built-in extension slug.")],
782
1007
  flags: [
783
- flag("open", "Open the authorization URL in a browser."),
784
- flag("no-open", "Do not open the authorization URL in a browser."),
785
- flag("wait", "Poll until the OAuth session is connected or failed.")
1008
+ flag("environment", "Target environment.", {
1009
+ acceptsValue: true,
1010
+ required: true,
1011
+ valueType: "string"
1012
+ }),
1013
+ flag("slug", "Install slug. Defaults to the built-in slug.", {
1014
+ acceptsValue: true,
1015
+ valueType: "string"
1016
+ }),
1017
+ flag("permissions", "Granted permissions JSON via @file.json or - for stdin.", {
1018
+ acceptsValue: true,
1019
+ valueType: "string"
1020
+ })
786
1021
  ],
787
1022
  requiresActiveOrg: true
788
1023
  }),
789
- command(["mcp", "oauth-status"], "Show OAuth status for one organization-managed MCP server.", {
790
- labels: ["read", "mcp"],
791
- args: [arg("server", "MCP server id or slug.")],
792
- requiresActiveOrg: true
793
- }),
794
- command(["mcp", "disconnect"], "Disconnect OAuth for one organization-managed MCP server.", {
795
- labels: ["destructive", "mcp"],
796
- args: [arg("server", "MCP server id or slug.")],
797
- destructive: true,
798
- flags: [flag("yes", "Confirm the destructive operation without an interactive prompt.")],
799
- requiresActiveOrg: true
800
- }),
801
- command(["mcp", "delete"], "Delete an organization-managed MCP server.", {
802
- labels: ["destructive", "mcp"],
803
- args: [arg("server", "MCP server id or slug.")],
804
- destructive: true,
805
- flags: [flag("yes", "Confirm the destructive operation without an interactive prompt.")],
806
- requiresActiveOrg: true
807
- }),
808
- command(["skills", "list"], "List organization-managed skill packages.", {
809
- labels: ["read", "skill"],
1024
+ command(["extensions", "list"], "List extension installs.", {
1025
+ labels: ["read", "chat-read", "extension"],
1026
+ flags: [flag("environment", "Target environment.", {
1027
+ acceptsValue: true,
1028
+ valueType: "string"
1029
+ })],
810
1030
  requiresActiveOrg: true
811
1031
  }),
812
- command(["skills", "get"], "Show one organization-managed skill package.", {
813
- labels: ["read", "skill"],
814
- args: [arg("skill", "Skill package id or slug.")],
1032
+ command(["extensions", "inspect"], "Show one extension install.", {
1033
+ labels: ["read", "chat-read", "extension"],
1034
+ args: [arg("install", "Extension install id or slug.")],
1035
+ flags: [flag("environment", "Target environment.", {
1036
+ acceptsValue: true,
1037
+ required: true,
1038
+ valueType: "string"
1039
+ })],
815
1040
  requiresActiveOrg: true
816
1041
  }),
817
- command(["skills", "create"], "Create an organization-managed skill package.", {
818
- labels: ["write", "skill"],
819
- flags: [
820
- flag("slug", "Skill package slug.", { acceptsValue: true, required: true, valueType: "string" }),
821
- flag("name", "Skill package display name.", { acceptsValue: true, required: true, valueType: "string" }),
822
- flag("description", "Skill package description.", { acceptsValue: true, valueType: "string" }),
823
- flag("dir", "Optional directory containing SKILL.md and related package files for the initial revision.", { acceptsValue: true, valueType: "string" })
824
- ],
1042
+ command(["extensions", "detail"], "Show extension install detail including registered functions, tools, and settings views.", {
1043
+ labels: ["read", "chat-read", "extension"],
1044
+ args: [arg("install", "Extension install id or slug.")],
1045
+ flags: [flag("environment", "Target environment.", {
1046
+ acceptsValue: true,
1047
+ required: true,
1048
+ valueType: "string"
1049
+ })],
825
1050
  requiresActiveOrg: true
826
1051
  }),
827
- command(["skills", "upload"], "Upload a new revision for an organization-managed skill package.", {
828
- labels: ["write", "skill"],
829
- args: [arg("skill", "Skill package id or slug.")],
830
- flags: [
831
- flag("dir", "Directory containing SKILL.md and related package files.", { acceptsValue: true, required: true, valueType: "string" })
832
- ],
1052
+ command(["extensions", "disable"], "Disable an extension install.", {
1053
+ labels: ["write", "extension"],
1054
+ args: [arg("install", "Extension install id or slug.")],
1055
+ flags: [flag("environment", "Target environment.", {
1056
+ acceptsValue: true,
1057
+ required: true,
1058
+ valueType: "string"
1059
+ })],
833
1060
  requiresActiveOrg: true
834
1061
  }),
835
- command(["skills", "download"], "Download a skill package revision to a directory.", {
836
- labels: ["output", "skill"],
837
- args: [arg("skill", "Skill package id or slug.")],
838
- flags: [
839
- flag("revision", "Revision number to download. Defaults to the current revision.", { acceptsValue: true, valueType: "number" }),
840
- flag("dir", "Destination directory.", { acceptsValue: true, required: true, valueType: "string" })
841
- ],
1062
+ command(["extensions", "enable"], "Enable an extension install.", {
1063
+ labels: ["write", "extension"],
1064
+ args: [arg("install", "Extension install id or slug.")],
1065
+ flags: [flag("environment", "Target environment.", {
1066
+ acceptsValue: true,
1067
+ required: true,
1068
+ valueType: "string"
1069
+ })],
842
1070
  requiresActiveOrg: true
843
1071
  }),
844
- command(["skills", "update"], "Update organization-managed skill package metadata.", {
845
- labels: ["write", "skill"],
846
- args: [arg("skill", "Skill package id or slug.")],
1072
+ command(["extensions", "delete"], "Delete an extension install.", {
1073
+ labels: ["destructive", "extension"],
1074
+ args: [arg("install", "Extension install id or slug.")],
1075
+ destructive: true,
847
1076
  flags: [
848
- flag("name", "Skill package display name.", { acceptsValue: true, valueType: "string" }),
849
- flag("description", "Skill package description.", { acceptsValue: true, valueType: "string" }),
850
- flag("disable", "Disable the skill package until it is explicitly enabled again."),
851
- flag("enable", "Enable a disabled skill package.")
1077
+ flag("environment", "Target environment.", {
1078
+ acceptsValue: true,
1079
+ required: true,
1080
+ valueType: "string"
1081
+ }),
1082
+ flag("yes", "Confirm the destructive operation without an interactive prompt.")
852
1083
  ],
853
1084
  requiresActiveOrg: true
854
1085
  }),
855
- command(["skills", "delete"], "Delete an organization-managed skill package.", {
856
- labels: ["destructive", "skill"],
857
- args: [arg("skill", "Skill package id or slug.")],
858
- destructive: true,
859
- flags: [flag("yes", "Confirm the destructive operation without an interactive prompt.")],
860
- requiresActiveOrg: true
861
- }),
862
1086
  command(["env", "list"], "List runtime variables.", {
863
1087
  labels: ["read", "env"],
1088
+ flags: [flag("environment", "Target environment.", {
1089
+ acceptsValue: true,
1090
+ valueType: "string"
1091
+ })],
864
1092
  requiresActiveOrg: true
865
1093
  }),
866
1094
  command(["env", "get"], "Show one runtime variable.", {
867
1095
  labels: ["read", "env"],
868
1096
  args: [arg("name", "Variable name.")],
1097
+ flags: [flag("environment", "Target environment.", {
1098
+ acceptsValue: true,
1099
+ required: true,
1100
+ valueType: "string"
1101
+ })],
869
1102
  requiresActiveOrg: true
870
1103
  }),
871
1104
  command(["env", "replace"], "Replace the full runtime environment from JSON.", {
872
1105
  labels: ["destructive", "env"],
873
1106
  destructive: true,
874
1107
  flags: [
1108
+ flag("environment", "Target environment.", {
1109
+ acceptsValue: true,
1110
+ required: true,
1111
+ valueType: "string"
1112
+ }),
875
1113
  flag("file", "Environment definition via @env.json or - for stdin.", {
876
1114
  acceptsValue: true,
877
1115
  required: true,
@@ -884,22 +1122,43 @@ const RAW_CLI_COMMANDS = [
884
1122
  command(["env", "import"], "Import runtime variables from a .env file.", {
885
1123
  labels: ["write", "env"],
886
1124
  args: [arg("path-to-.env", "Path to a .env file.")],
1125
+ flags: [flag("environment", "Target environment.", {
1126
+ acceptsValue: true,
1127
+ required: true,
1128
+ valueType: "string"
1129
+ })],
887
1130
  requiresActiveOrg: true
888
1131
  }),
889
1132
  command(["secrets", "list"], "List organization secret names without values.", {
890
1133
  labels: ["read", "secret"],
1134
+ flags: [flag("environment", "Target environment.", {
1135
+ acceptsValue: true,
1136
+ valueType: "string"
1137
+ })],
891
1138
  requiresActiveOrg: true
892
1139
  }),
893
1140
  command(["secrets", "set"], "Create or replace one organization secret from stdin.", {
894
1141
  labels: ["credential", "secret"],
895
1142
  args: [arg("name", "Secret name.")],
1143
+ flags: [flag("environment", "Target environment.", {
1144
+ acceptsValue: true,
1145
+ required: true,
1146
+ valueType: "string"
1147
+ })],
896
1148
  requiresActiveOrg: true
897
1149
  }),
898
1150
  command(["secrets", "delete"], "Delete one organization secret.", {
899
1151
  labels: ["destructive", "secret"],
900
1152
  args: [arg("name", "Secret name.")],
901
1153
  destructive: true,
902
- flags: [flag("yes", "Confirm the destructive operation without an interactive prompt.")],
1154
+ flags: [
1155
+ flag("environment", "Target environment.", {
1156
+ acceptsValue: true,
1157
+ required: true,
1158
+ valueType: "string"
1159
+ }),
1160
+ flag("yes", "Confirm the destructive operation without an interactive prompt.")
1161
+ ],
903
1162
  requiresActiveOrg: true
904
1163
  }),
905
1164
  command(["chat", "health"], "Show chat health.", {
@@ -920,49 +1179,86 @@ const RAW_CLI_COMMANDS = [
920
1179
  flags: [flag("yes", "Confirm the destructive operation without an interactive prompt.")],
921
1180
  requiresActiveOrg: true
922
1181
  }),
923
- command(["chat", "changes"], "Show chat session changes.", {
924
- labels: ["local", "chat"],
925
- args: [arg("session-id", "Session id.")],
926
- requiresActiveOrg: true
1182
+ command(["schema", "list"], "List resource schemas exposed by the CLI.", {
1183
+ labels: ["read", "schema", "chat-read"],
1184
+ requiresActiveOrg: false
927
1185
  }),
928
- command(["chat", "validation"], "Show chat session validation.", {
929
- labels: ["local", "chat"],
930
- args: [arg("session-id", "Session id.")],
931
- requiresActiveOrg: true
1186
+ command(["schema", "get"], "Show one resource schema.", {
1187
+ labels: ["read", "schema", "chat-read"],
1188
+ args: [arg("resource-name", "Schema resource name.")],
1189
+ requiresActiveOrg: false
932
1190
  }),
933
- command(["chat", "draft", "get"], "Show the chat draft snapshot.", {
934
- labels: ["local", "chat"],
935
- args: [arg("session-id", "Session id.")],
1191
+ command(["admin", "usage", "summary"], "Show agent LLM usage totals for an organization.", {
1192
+ labels: ["admin", "read"],
1193
+ flags: [
1194
+ flag("from", "Start timestamp in ISO-8601 format.", {
1195
+ acceptsValue: true,
1196
+ valueType: "string"
1197
+ }),
1198
+ flag("to", "End timestamp in ISO-8601 format.", {
1199
+ acceptsValue: true,
1200
+ valueType: "string"
1201
+ })
1202
+ ],
936
1203
  requiresActiveOrg: true
937
1204
  }),
938
- command(["chat", "draft", "apply"], "Apply a chat draft.", {
939
- labels: ["destructive", "chat"],
940
- args: [arg("session-id", "Session id.")],
941
- destructive: true,
942
- flags: [flag("yes", "Confirm the destructive operation without an interactive prompt.")],
1205
+ command(["admin", "usage", "workflows"], "List agent LLM usage grouped by workflow.", {
1206
+ labels: ["admin", "read"],
1207
+ flags: [
1208
+ flag("from", "Start timestamp in ISO-8601 format.", {
1209
+ acceptsValue: true,
1210
+ valueType: "string"
1211
+ }),
1212
+ flag("to", "End timestamp in ISO-8601 format.", {
1213
+ acceptsValue: true,
1214
+ valueType: "string"
1215
+ }),
1216
+ flag("limit", "Maximum number of workflows to return.", {
1217
+ acceptsValue: true,
1218
+ valueType: "number"
1219
+ })
1220
+ ],
1221
+ paginated: "limit",
943
1222
  requiresActiveOrg: true
944
1223
  }),
945
- command(["chat", "draft", "refresh"], "Refresh a chat draft.", {
946
- labels: ["destructive", "chat"],
947
- args: [arg("session-id", "Session id.")],
948
- destructive: true,
949
- flags: [flag("yes", "Confirm the destructive operation without an interactive prompt.")],
1224
+ command(["admin", "usage", "tools"], "List agent tool calls grouped by tool.", {
1225
+ labels: ["admin", "read"],
1226
+ flags: [
1227
+ flag("from", "Start timestamp in ISO-8601 format.", {
1228
+ acceptsValue: true,
1229
+ valueType: "string"
1230
+ }),
1231
+ flag("to", "End timestamp in ISO-8601 format.", {
1232
+ acceptsValue: true,
1233
+ valueType: "string"
1234
+ }),
1235
+ flag("limit", "Maximum number of tools to return.", {
1236
+ acceptsValue: true,
1237
+ valueType: "number"
1238
+ })
1239
+ ],
1240
+ paginated: "limit",
950
1241
  requiresActiveOrg: true
951
1242
  }),
952
- command(["chat", "workspace-state"], "Show chat workspace state.", {
953
- labels: ["local", "chat"],
954
- args: [arg("session-id", "Session id.")],
1243
+ command(["admin", "usage", "events"], "List recent metered agent executions.", {
1244
+ labels: ["admin", "read"],
1245
+ flags: [
1246
+ flag("from", "Start timestamp in ISO-8601 format.", {
1247
+ acceptsValue: true,
1248
+ valueType: "string"
1249
+ }),
1250
+ flag("to", "End timestamp in ISO-8601 format.", {
1251
+ acceptsValue: true,
1252
+ valueType: "string"
1253
+ }),
1254
+ flag("limit", "Maximum number of events to return.", {
1255
+ acceptsValue: true,
1256
+ valueType: "number"
1257
+ })
1258
+ ],
1259
+ paginated: "limit",
955
1260
  requiresActiveOrg: true
956
1261
  }),
957
- command(["schema", "list"], "List resource schemas exposed by the CLI.", {
958
- labels: ["read", "schema"],
959
- requiresActiveOrg: false
960
- }),
961
- command(["schema", "get"], "Show one resource schema.", {
962
- labels: ["read", "schema"],
963
- args: [arg("resource-name", "Schema resource name.")],
964
- requiresActiveOrg: false
965
- }),
966
1262
  command(["admin", "org", "deleted", "list"], "List deleted organizations.", {
967
1263
  labels: ["admin"],
968
1264
  requiresActiveOrg: false
@@ -1067,7 +1363,7 @@ export function buildHelpJson(path, input = {}) {
1067
1363
  description: definition.description,
1068
1364
  destructive: definition.destructive,
1069
1365
  examples: definition.examples,
1070
- flags: definition.flags,
1366
+ flags: buildHelpFlags(definition.flags, Boolean(input.commandFilter)),
1071
1367
  name: definition.path.join(" "),
1072
1368
  paginated: definition.paginated,
1073
1369
  requiresActiveOrg: definition.requiresActiveOrg,
@@ -1082,7 +1378,7 @@ export function buildHelpJson(path, input = {}) {
1082
1378
  : describeCommandGroup(resolveCommandAliases(path)),
1083
1379
  destructive: false,
1084
1380
  examples: [],
1085
- flags: [flag("json", "Render help as machine-readable JSON.")],
1381
+ flags: buildHelpFlags([flag("json", "Render help as machine-readable JSON.")], false),
1086
1382
  name: path.length === 0 ? "kora" : resolveCommandAliases(path).join(" "),
1087
1383
  paginated: "none",
1088
1384
  requiresActiveOrg: false,
@@ -1093,3 +1389,12 @@ export function buildHelpJson(path, input = {}) {
1093
1389
  supportsJson: true
1094
1390
  };
1095
1391
  }
1392
+ function buildHelpFlags(flags, filtered) {
1393
+ return flags
1394
+ .filter((entry) => !filtered || !entry.hiddenWhenCommandFiltered)
1395
+ .map((entry) => {
1396
+ const { hiddenWhenCommandFiltered, ...helpFlag } = entry;
1397
+ void hiddenWhenCommandFiltered;
1398
+ return helpFlag;
1399
+ });
1400
+ }