@m6d/cortex-cli 0.22.0 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -277,16 +277,16 @@ export const managementProcedureKinds = {
277
277
  "observability.getExecution": "query",
278
278
  "observability.getExecutionSummary": "query",
279
279
  "observability.getRetrievalQuality": "query",
280
- "observability.getTriggerFiring": "query",
280
+ "observability.getRun": "query",
281
281
  "observability.getUsage": "query",
282
282
  "observability.listDatasetReads": "query",
283
283
  "observability.listExecutions": "query",
284
+ "observability.listRuns": "query",
284
285
  "observability.listSchemaDrifts": "query",
285
286
  "observability.listSkillLoads": "query",
286
287
  "observability.listSkillMisses": "query",
287
288
  "observability.listSkillUsage": "query",
288
289
  "observability.listToolHealth": "query",
289
- "observability.listTriggerFirings": "query",
290
290
  "observability.unhealthyToolIds": "query",
291
291
  "observability.unusedSkillIds": "query",
292
292
  "observability.updateSchemaDrift": "mutation",
@@ -352,7 +352,7 @@ export const managementProcedureKinds = {
352
352
  "tools.test": "mutation",
353
353
  "tools.toggle": "mutation",
354
354
  "tools.update": "mutation",
355
- "triggers.answerFiring": "mutation",
355
+ "triggers.answerRun": "mutation",
356
356
  "triggers.create": "mutation",
357
357
  "triggers.delete": "mutation",
358
358
  "triggers.fire": "mutation",
@@ -397,7 +397,7 @@ export type ManagementProcedures = {
397
397
  updatedAt: string;
398
398
  };
399
399
  };
400
- /** Create an agent on a registered server, or on none (`serverId` null), fixed for good either way. An agent with no server has no native tools, no server variables and no server auth, and publishes only on a chat model of its own. The draft has no prompt yet; save one with agents.savePrompt before publishing. */
400
+ /** Create an agent on a registered server, or on none (`serverId` null), fixed for good either way. An agent with no server has no native tools, no server variables and no server auth, and publishes only on a chat model of its own. The draft has no prompt yet; save one with agents.savePrompt before publishing. Refused as `agent_limit_reached` once the license's agent count is reached. */
401
401
  "agents.create": {
402
402
  input: {
403
403
  /** A name: lowercase letters, digits, and single hyphens. */
@@ -416,12 +416,15 @@ export type ManagementProcedures = {
416
416
  displayName: Partial<Record<"en" | "ar", string>>;
417
417
  promptDraft: string;
418
418
  ragEnabled: boolean;
419
+ subagentsEnabled: boolean;
420
+ checkBacksEnabled: boolean;
419
421
  toolRegistryEnabled: boolean;
420
422
  serviceRegistryEnabled: boolean;
421
423
  attachmentsEnabled: boolean;
422
424
  fetchImageHostnames: string | number | boolean | null | Record<string, unknown> | Array<unknown>;
423
425
  locationPicker: boolean;
424
- messageTrigger: boolean;
426
+ messages: boolean;
427
+ whileBusy: "refuse" | "queue" | "steer";
425
428
  media: Array<"mermaid" | "vega-lite" | "map" | "report">;
426
429
  suggestions: Record<"en" | "ar", Array<{
427
430
  title: string;
@@ -461,12 +464,15 @@ export type ManagementProcedures = {
461
464
  displayName: Partial<Record<"en" | "ar", string>>;
462
465
  promptDraft: string;
463
466
  ragEnabled: boolean;
467
+ subagentsEnabled: boolean;
468
+ checkBacksEnabled: boolean;
464
469
  toolRegistryEnabled: boolean;
465
470
  serviceRegistryEnabled: boolean;
466
471
  attachmentsEnabled: boolean;
467
472
  fetchImageHostnames: string | number | boolean | null | Record<string, unknown> | Array<unknown>;
468
473
  locationPicker: boolean;
469
- messageTrigger: boolean;
474
+ messages: boolean;
475
+ whileBusy: "refuse" | "queue" | "steer";
470
476
  media: Array<"mermaid" | "vega-lite" | "map" | "report">;
471
477
  suggestions: Record<"en" | "ar", Array<{
472
478
  title: string;
@@ -518,12 +524,15 @@ export type ManagementProcedures = {
518
524
  displayName: Partial<Record<"en" | "ar", string>>;
519
525
  promptDraft: string;
520
526
  ragEnabled: boolean;
527
+ subagentsEnabled: boolean;
528
+ checkBacksEnabled: boolean;
521
529
  toolRegistryEnabled: boolean;
522
530
  serviceRegistryEnabled: boolean;
523
531
  attachmentsEnabled: boolean;
524
532
  fetchImageHostnames: string | number | boolean | null | Record<string, unknown> | Array<unknown>;
525
533
  locationPicker: boolean;
526
- messageTrigger: boolean;
534
+ messages: boolean;
535
+ whileBusy: "refuse" | "queue" | "steer";
527
536
  media: Array<"mermaid" | "vega-lite" | "map" | "report">;
528
537
  suggestions: Record<"en" | "ar", Array<{
529
538
  title: string;
@@ -684,12 +693,15 @@ export type ManagementProcedures = {
684
693
  displayName: Partial<Record<"en" | "ar", string>>;
685
694
  promptDraft: string;
686
695
  ragEnabled: boolean;
696
+ subagentsEnabled: boolean;
697
+ checkBacksEnabled: boolean;
687
698
  toolRegistryEnabled: boolean;
688
699
  serviceRegistryEnabled: boolean;
689
700
  attachmentsEnabled: boolean;
690
701
  fetchImageHostnames: string | number | boolean | null | Record<string, unknown> | Array<unknown>;
691
702
  locationPicker: boolean;
692
- messageTrigger: boolean;
703
+ messages: boolean;
704
+ whileBusy: "refuse" | "queue" | "steer";
693
705
  media: Array<"mermaid" | "vega-lite" | "map" | "report">;
694
706
  suggestions: Record<"en" | "ar", Array<{
695
707
  title: string;
@@ -718,11 +730,14 @@ export type ManagementProcedures = {
718
730
  ragEnabled?: boolean;
719
731
  toolRegistryEnabled?: boolean;
720
732
  serviceRegistryEnabled?: boolean;
733
+ subagentsEnabled?: boolean;
734
+ checkBacksEnabled?: boolean;
721
735
  attachmentsEnabled?: boolean;
722
736
  fetchImageHostnames?: Array<string>;
723
737
  locationPicker?: boolean;
724
738
  media?: Array<"mermaid" | "vega-lite" | "map" | "report">;
725
- messageTrigger?: boolean;
739
+ messages?: boolean;
740
+ whileBusy?: "refuse" | "queue" | "steer";
726
741
  defaultLocale?: "en" | "ar";
727
742
  context?: {
728
743
  maxContextTokens: number;
@@ -794,12 +809,15 @@ export type ManagementProcedures = {
794
809
  displayName: Partial<Record<"en" | "ar", string>>;
795
810
  promptDraft: string;
796
811
  ragEnabled: boolean;
812
+ subagentsEnabled: boolean;
813
+ checkBacksEnabled: boolean;
797
814
  toolRegistryEnabled: boolean;
798
815
  serviceRegistryEnabled: boolean;
799
816
  attachmentsEnabled: boolean;
800
817
  fetchImageHostnames: string | number | boolean | null | Record<string, unknown> | Array<unknown>;
801
818
  locationPicker: boolean;
802
- messageTrigger: boolean;
819
+ messages: boolean;
820
+ whileBusy: "refuse" | "queue" | "steer";
803
821
  media: Array<"mermaid" | "vega-lite" | "map" | "report">;
804
822
  suggestions: Record<"en" | "ar", Array<{
805
823
  title: string;
@@ -839,12 +857,15 @@ export type ManagementProcedures = {
839
857
  displayName: Partial<Record<"en" | "ar", string>>;
840
858
  promptDraft: string;
841
859
  ragEnabled: boolean;
860
+ subagentsEnabled: boolean;
861
+ checkBacksEnabled: boolean;
842
862
  toolRegistryEnabled: boolean;
843
863
  serviceRegistryEnabled: boolean;
844
864
  attachmentsEnabled: boolean;
845
865
  fetchImageHostnames: string | number | boolean | null | Record<string, unknown> | Array<unknown>;
846
866
  locationPicker: boolean;
847
- messageTrigger: boolean;
867
+ messages: boolean;
868
+ whileBusy: "refuse" | "queue" | "steer";
848
869
  media: Array<"mermaid" | "vega-lite" | "map" | "report">;
849
870
  suggestions: Record<"en" | "ar", Array<{
850
871
  title: string;
@@ -1468,7 +1489,7 @@ export type ManagementProcedures = {
1468
1489
  unchanged: boolean;
1469
1490
  };
1470
1491
  };
1471
- /** Change which agents a dataset host reaches: every agent, one server's, or a list. Refused while a reader it would lose still references it. Reaching new agents needs `secrets:write` too while it forwards the run token (`secret_binding_forbidden`): in a firing that token is the trigger's stored credential. */
1492
+ /** Change which agents a dataset host reaches: every agent, one server's, or a list. Refused while a reader it would lose still references it. Reaching new agents needs `secrets:write` too while it forwards the run token (`secret_binding_forbidden`): in a trigger run that token is the trigger's stored credential. */
1472
1493
  "datasetHosts.setAudience": {
1473
1494
  input: {
1474
1495
  id: string;
@@ -1810,11 +1831,14 @@ export type ManagementProcedures = {
1810
1831
  ragEnabled?: boolean;
1811
1832
  toolRegistryEnabled?: boolean;
1812
1833
  serviceRegistryEnabled?: boolean;
1834
+ subagentsEnabled?: boolean;
1835
+ checkBacksEnabled?: boolean;
1813
1836
  attachmentsEnabled?: boolean;
1814
1837
  fetchImageHostnames?: Array<string>;
1815
1838
  locationPicker?: boolean;
1816
1839
  media?: Array<"mermaid" | "vega-lite" | "map" | "report">;
1817
- messageTrigger?: boolean;
1840
+ messages?: boolean;
1841
+ whileBusy?: "refuse" | "queue" | "steer";
1818
1842
  defaultLocale?: "en" | "ar";
1819
1843
  context?: {
1820
1844
  maxContextTokens?: number;
@@ -2136,13 +2160,18 @@ export type ManagementProcedures = {
2136
2160
  threadPolicy?: {
2137
2161
  policy: "single";
2138
2162
  } | {
2139
- policy: "per-firing";
2163
+ policy: "per-input";
2140
2164
  } | {
2141
2165
  policy: "ephemeral";
2142
2166
  } | {
2143
2167
  policy: "keyed";
2144
2168
  key: string;
2169
+ } | {
2170
+ policy: "thread";
2171
+ key: string;
2172
+ wake: boolean;
2145
2173
  };
2174
+ whileBusy?: "refuse" | "queue" | "steer";
2146
2175
  budgetPerDay?: number;
2147
2176
  disableAfterFailures?: number;
2148
2177
  credential?: string;
@@ -2152,12 +2181,16 @@ export type ManagementProcedures = {
2152
2181
  model: string;
2153
2182
  effort?: string;
2154
2183
  };
2184
+ schedule?: {
2185
+ cron: string;
2186
+ timeZone: string;
2187
+ };
2155
2188
  audience: "all" | {
2156
2189
  server: string;
2157
2190
  } | {
2158
2191
  agents: Array<string>;
2159
2192
  };
2160
- overridable?: Array<"displayName" | "description" | "instructions" | "threadPolicy" | "budgetPerDay" | "disableAfterFailures" | "model">;
2193
+ overridable?: Array<"displayName" | "description" | "instructions" | "threadPolicy" | "whileBusy" | "budgetPerDay" | "disableAfterFailures" | "model" | "schedule">;
2161
2194
  }>;
2162
2195
  datasetHosts?: Array<{
2163
2196
  name: string;
@@ -2235,7 +2268,7 @@ export type ManagementProcedures = {
2235
2268
  name: string;
2236
2269
  displayName?: Partial<Record<"en" | "ar", string>>;
2237
2270
  description?: string;
2238
- event: "approval_requested";
2271
+ event: "run_waiting" | "run_finished";
2239
2272
  url: string;
2240
2273
  headers?: Array<{
2241
2274
  header: string;
@@ -2350,11 +2383,14 @@ export type ManagementProcedures = {
2350
2383
  ragEnabled?: boolean;
2351
2384
  toolRegistryEnabled?: boolean;
2352
2385
  serviceRegistryEnabled?: boolean;
2386
+ subagentsEnabled?: boolean;
2387
+ checkBacksEnabled?: boolean;
2353
2388
  attachmentsEnabled?: boolean;
2354
2389
  fetchImageHostnames?: Array<string>;
2355
2390
  locationPicker?: boolean;
2356
2391
  media?: Array<"mermaid" | "vega-lite" | "map" | "report">;
2357
- messageTrigger?: boolean;
2392
+ messages?: boolean;
2393
+ whileBusy?: "refuse" | "queue" | "steer";
2358
2394
  defaultLocale?: "en" | "ar";
2359
2395
  context?: {
2360
2396
  maxContextTokens?: number;
@@ -2676,13 +2712,18 @@ export type ManagementProcedures = {
2676
2712
  threadPolicy?: {
2677
2713
  policy: "single";
2678
2714
  } | {
2679
- policy: "per-firing";
2715
+ policy: "per-input";
2680
2716
  } | {
2681
2717
  policy: "ephemeral";
2682
2718
  } | {
2683
2719
  policy: "keyed";
2684
2720
  key: string;
2721
+ } | {
2722
+ policy: "thread";
2723
+ key: string;
2724
+ wake: boolean;
2685
2725
  };
2726
+ whileBusy?: "refuse" | "queue" | "steer";
2686
2727
  budgetPerDay?: number;
2687
2728
  disableAfterFailures?: number;
2688
2729
  credential?: string;
@@ -2692,12 +2733,16 @@ export type ManagementProcedures = {
2692
2733
  model: string;
2693
2734
  effort?: string;
2694
2735
  };
2736
+ schedule?: {
2737
+ cron: string;
2738
+ timeZone: string;
2739
+ };
2695
2740
  audience: "all" | {
2696
2741
  server: string;
2697
2742
  } | {
2698
2743
  agents: Array<string>;
2699
2744
  };
2700
- overridable?: Array<"displayName" | "description" | "instructions" | "threadPolicy" | "budgetPerDay" | "disableAfterFailures" | "model">;
2745
+ overridable?: Array<"displayName" | "description" | "instructions" | "threadPolicy" | "whileBusy" | "budgetPerDay" | "disableAfterFailures" | "model" | "schedule">;
2701
2746
  }>;
2702
2747
  datasetHosts?: Array<{
2703
2748
  name: string;
@@ -2775,7 +2820,7 @@ export type ManagementProcedures = {
2775
2820
  name: string;
2776
2821
  displayName?: Partial<Record<"en" | "ar", string>>;
2777
2822
  description?: string;
2778
- event: "approval_requested";
2823
+ event: "run_waiting" | "run_finished";
2779
2824
  url: string;
2780
2825
  headers?: Array<{
2781
2826
  header: string;
@@ -3047,7 +3092,7 @@ export type ManagementProcedures = {
3047
3092
  unchanged: boolean;
3048
3093
  };
3049
3094
  };
3050
- /** Change which agents an MCP server reaches: every agent, one server's, or a list. Reaching new agents needs `secrets:write` too while it forwards the run token (`secret_binding_forbidden`): in a firing that token is the trigger's stored credential. */
3095
+ /** Change which agents an MCP server reaches: every agent, one server's, or a list. Reaching new agents needs `secrets:write` too while it forwards the run token (`secret_binding_forbidden`): in a trigger run that token is the trigger's stored credential. */
3051
3096
  "mcpServers.setAudience": {
3052
3097
  input: {
3053
3098
  id: string;
@@ -3274,6 +3319,7 @@ export type ManagementProcedures = {
3274
3319
  displayName: Partial<Record<"en" | "ar", string>>;
3275
3320
  };
3276
3321
  triggerName: string | null;
3322
+ delegated: "queued" | "run" | "schedule" | "trigger" | null;
3277
3323
  threadId: string | null;
3278
3324
  threadTitle: string | null;
3279
3325
  input: unknown;
@@ -3340,18 +3386,20 @@ export type ManagementProcedures = {
3340
3386
  }>;
3341
3387
  };
3342
3388
  };
3343
- /** One trigger firing by id with its outcome and output, and the tool calls it waits on when it awaits approval. */
3344
- "observability.getTriggerFiring": {
3389
+ /** One run by id with what it answered with, and the tool calls it waits on while it is waiting. */
3390
+ "observability.getRun": {
3345
3391
  input: {
3346
3392
  id: string;
3347
3393
  };
3348
3394
  output: {
3349
3395
  id: string;
3350
- triggerName: string;
3351
- threadId: string | null;
3352
- outcome: "started" | "awaiting_approval" | "completed" | "failed" | "rejected" | "dropped";
3353
- reason: "busy" | "approval_pending" | "budget" | "rate_limited" | "invalid_payload" | "missing_thread_key" | "no_turn" | "no_output" | "invalid_output" | null;
3354
- output: unknown;
3396
+ kind: "turn" | "subagent" | "tool";
3397
+ status: "running" | "waiting" | "completed" | "failed" | "cancelled";
3398
+ reason: "no_output" | "invalid_output" | "stopped" | "cancelled" | "parent_cancelled" | "lost" | "timeout" | null;
3399
+ createdAt: string;
3400
+ finishedAt: string | null;
3401
+ source: "user" | "trigger" | "schedule" | "run" | null;
3402
+ triggerName: string | null;
3355
3403
  server: {
3356
3404
  name: string;
3357
3405
  displayName: Partial<Record<"en" | "ar", string>>;
@@ -3360,17 +3408,15 @@ export type ManagementProcedures = {
3360
3408
  name: string;
3361
3409
  displayName: Partial<Record<"en" | "ar", string>>;
3362
3410
  };
3411
+ threadId: string | null;
3363
3412
  threadTitle: string | null;
3364
- createdAt: string;
3365
- finishedAt: string | null;
3366
- triggerId: string | null;
3367
- agentId: string;
3368
- approvals: Array<{
3413
+ result: unknown;
3414
+ waits: Array<{
3415
+ kind: "approval" | "client_tool";
3369
3416
  toolCallId: string;
3370
3417
  toolName: string;
3371
3418
  input: unknown;
3372
3419
  }>;
3373
- decider: "operator" | "chat" | "disabled";
3374
3420
  };
3375
3421
  };
3376
3422
  /** Token and message usage of the agents the caller may read: totals and per user, server, agent and day, optionally for one agent within a day range. */
@@ -3506,6 +3552,47 @@ export type ManagementProcedures = {
3506
3552
  filteredCount: number;
3507
3553
  };
3508
3554
  };
3555
+ /** Runs on your agents, chat and trigger alike, newest first, with how they ended and their thread, with pagination and agent, source, status, trigger name, open-wait kind, and day-range filters. */
3556
+ "observability.listRuns": {
3557
+ input: {
3558
+ pageIndex?: number;
3559
+ pageSize?: number;
3560
+ q?: string;
3561
+ agentId?: string;
3562
+ source?: "user" | "trigger" | "schedule" | "run";
3563
+ status?: "running" | "waiting" | "completed" | "failed" | "cancelled";
3564
+ triggerName?: string;
3565
+ waitKind?: "approval" | "client_tool";
3566
+ dateFrom?: string;
3567
+ dateTo?: string;
3568
+ };
3569
+ output: {
3570
+ items: Array<{
3571
+ id: string;
3572
+ kind: "turn" | "subagent" | "tool";
3573
+ status: "running" | "waiting" | "completed" | "failed" | "cancelled";
3574
+ reason: "no_output" | "invalid_output" | "stopped" | "cancelled" | "parent_cancelled" | "lost" | "timeout" | null;
3575
+ createdAt: string;
3576
+ finishedAt: string | null;
3577
+ source: "user" | "trigger" | "schedule" | "run" | null;
3578
+ triggerName: string | null;
3579
+ server: {
3580
+ name: string;
3581
+ displayName: Partial<Record<"en" | "ar", string>>;
3582
+ } | null;
3583
+ agent: {
3584
+ name: string;
3585
+ displayName: Partial<Record<"en" | "ar", string>>;
3586
+ };
3587
+ threadId: string | null;
3588
+ threadTitle: string | null;
3589
+ }>;
3590
+ /** Every row the caller may see, ignoring the search and filters. */
3591
+ count: number;
3592
+ /** The rows matching the search and filters, over all pages: the total to report. */
3593
+ filteredCount: number;
3594
+ };
3595
+ };
3509
3596
  /** Upstream responses that do not match a tool's declared schema, with pagination. */
3510
3597
  "observability.listSchemaDrifts": {
3511
3598
  input: {
@@ -3627,44 +3714,6 @@ export type ManagementProcedures = {
3627
3714
  filteredCount: number;
3628
3715
  };
3629
3716
  };
3630
- /** Trigger firings with their outcome, with pagination and agent, trigger, outcome, and day-range filters. */
3631
- "observability.listTriggerFirings": {
3632
- input: {
3633
- pageIndex?: number;
3634
- pageSize?: number;
3635
- q?: string;
3636
- agentId?: string;
3637
- triggerName?: string;
3638
- outcome?: "started" | "awaiting_approval" | "completed" | "failed" | "rejected" | "dropped";
3639
- dateFrom?: string;
3640
- dateTo?: string;
3641
- };
3642
- output: {
3643
- items: Array<{
3644
- id: string;
3645
- triggerName: string;
3646
- threadId: string | null;
3647
- outcome: "started" | "awaiting_approval" | "completed" | "failed" | "rejected" | "dropped";
3648
- reason: "busy" | "approval_pending" | "budget" | "rate_limited" | "invalid_payload" | "missing_thread_key" | "no_turn" | "no_output" | "invalid_output" | null;
3649
- output: unknown;
3650
- server: {
3651
- name: string;
3652
- displayName: Partial<Record<"en" | "ar", string>>;
3653
- } | null;
3654
- agent: {
3655
- name: string;
3656
- displayName: Partial<Record<"en" | "ar", string>>;
3657
- };
3658
- threadTitle: string | null;
3659
- createdAt: string;
3660
- finishedAt: string | null;
3661
- }>;
3662
- /** Every row the caller may see, ignoring the search and filters. */
3663
- count: number;
3664
- /** The rows matching the search and filters, over all pages: the total to report. */
3665
- filteredCount: number;
3666
- };
3667
- };
3668
3717
  /** Ids of tools whose recent executions exceed the failure threshold. */
3669
3718
  "observability.unhealthyToolIds": {
3670
3719
  input: undefined;
@@ -3936,7 +3985,8 @@ export type ManagementProcedures = {
3936
3985
  requiresApproval?: boolean;
3937
3986
  }>;
3938
3987
  verify: boolean;
3939
- events: Array<"approval_requested">;
3988
+ delegation: boolean;
3989
+ events: Array<"run_waiting" | "run_finished">;
3940
3990
  } | null;
3941
3991
  syncedAt: string | null;
3942
3992
  syncError: "egress_blocked" | "timeout" | "upstream_failed" | "response_too_large" | "upstream_status" | "invalid_manifest" | "key_unavailable" | "name_taken" | "credential_in_name" | "variable_in_use" | "verify_in_use" | "still_referenced" | "unexpected" | null;
@@ -3982,7 +4032,8 @@ export type ManagementProcedures = {
3982
4032
  requiresApproval?: boolean;
3983
4033
  }>;
3984
4034
  verify: boolean;
3985
- events: Array<"approval_requested">;
4035
+ delegation: boolean;
4036
+ events: Array<"run_waiting" | "run_finished">;
3986
4037
  } | null;
3987
4038
  syncedAt: string | null;
3988
4039
  syncError: "egress_blocked" | "timeout" | "upstream_failed" | "response_too_large" | "upstream_status" | "invalid_manifest" | "key_unavailable" | "name_taken" | "credential_in_name" | "variable_in_use" | "verify_in_use" | "still_referenced" | "unexpected" | null;
@@ -4015,6 +4066,7 @@ export type ManagementProcedures = {
4015
4066
  syncError: "egress_blocked" | "timeout" | "upstream_failed" | "response_too_large" | "upstream_status" | "invalid_manifest" | "key_unavailable" | "name_taken" | "credential_in_name" | "variable_in_use" | "verify_in_use" | "still_referenced" | "unexpected" | null;
4016
4067
  createdAt: string;
4017
4068
  threadCount: number;
4069
+ delegation: boolean;
4018
4070
  modelProvider: string | null;
4019
4071
  modelName: string | null;
4020
4072
  modelEffort: string | null;
@@ -4122,7 +4174,8 @@ export type ManagementProcedures = {
4122
4174
  requiresApproval?: boolean;
4123
4175
  }>;
4124
4176
  verify: boolean;
4125
- events: Array<"approval_requested">;
4177
+ delegation: boolean;
4178
+ events: Array<"run_waiting" | "run_finished">;
4126
4179
  } | null;
4127
4180
  syncedAt: string | null;
4128
4181
  syncError: "egress_blocked" | "timeout" | "upstream_failed" | "response_too_large" | "upstream_status" | "invalid_manifest" | "key_unavailable" | "name_taken" | "credential_in_name" | "variable_in_use" | "verify_in_use" | "still_referenced" | "unexpected" | null;
@@ -4650,7 +4703,7 @@ export type ManagementProcedures = {
4650
4703
  pageSize?: number;
4651
4704
  q?: string;
4652
4705
  serverId?: string;
4653
- agentName?: string;
4706
+ agentId?: string;
4654
4707
  userId?: string;
4655
4708
  dateFrom?: string;
4656
4709
  dateTo?: string;
@@ -4730,7 +4783,7 @@ export type ManagementProcedures = {
4730
4783
  output: {
4731
4784
  items: Array<{
4732
4785
  id: string;
4733
- role: "system" | "user" | "assistant" | "trigger";
4786
+ role: "system" | "user" | "assistant" | "event";
4734
4787
  text: string | null;
4735
4788
  content: Record<string, unknown>;
4736
4789
  ordinal: number;
@@ -5319,7 +5372,7 @@ export type ManagementProcedures = {
5319
5372
  unchanged: boolean;
5320
5373
  };
5321
5374
  };
5322
- /** Change which agents a tool reaches: every agent, one server's, or a list. Refused while a reader it would lose still references it, or while a new reader could not reach what it references, fill the variables it reads, or fit it in its pin budget. Reaching new agents needs `secrets:write` too while it forwards the run token (`secret_binding_forbidden`): in a firing that token is the trigger's stored credential. */
5375
+ /** Change which agents a tool reaches: every agent, one server's, or a list. Refused while a reader it would lose still references it, or while a new reader could not reach what it references, fill the variables it reads, or fit it in its pin budget. Reaching new agents needs `secrets:write` too while it forwards the run token (`secret_binding_forbidden`): in a trigger run that token is the trigger's stored credential. */
5323
5376
  "tools.setAudience": {
5324
5377
  input: {
5325
5378
  id: string;
@@ -5451,67 +5504,64 @@ export type ManagementProcedures = {
5451
5504
  name: string;
5452
5505
  };
5453
5506
  };
5454
- /** Approve or deny a tool call a firing parked on; the run resumes and the outcome comes back. Refused as `not_published` while the firing's trigger is disabled. */
5455
- "triggers.answerFiring": {
5507
+ /** Approve or deny a tool call a trigger's run waits on; the run resumes and comes back as a fire's does. Refused as `not_parked` when the run no longer waits on that call. */
5508
+ "triggers.answerRun": {
5456
5509
  input: {
5457
- id: string;
5458
- agentId?: string;
5459
- firingId: string;
5510
+ runId: string;
5460
5511
  toolCallId: string;
5461
5512
  approved: boolean;
5462
5513
  };
5463
5514
  output: {
5464
- status: number;
5465
- firingId: string;
5466
- outcome: "started";
5467
- threadId: string;
5515
+ inputId: string;
5516
+ state: "started";
5468
5517
  runId: string;
5469
- } | {
5470
- status: number;
5471
- firingId: string;
5472
- outcome: "awaiting_approval";
5473
5518
  threadId: string;
5474
- runId: string;
5475
- approvals: Array<{
5476
- toolCallId: string;
5477
- toolName: string;
5478
- input: unknown;
5519
+ } | {
5520
+ state: "rejected";
5521
+ issues: Array<{
5522
+ path: string;
5523
+ message: string;
5479
5524
  }>;
5480
5525
  } | {
5481
- status: number;
5482
- firingId: string;
5483
- outcome: "completed";
5484
- threadId: string;
5485
- runId: string;
5486
- output: unknown;
5526
+ inputId: string;
5527
+ state: "waiting";
5528
+ delivery: "prompt" | "steer" | "followUp" | "answer" | "note";
5487
5529
  } | {
5488
- status: number;
5489
- firingId: string;
5490
- outcome: "failed";
5491
- threadId: string;
5492
- runId: string;
5493
- reason: "busy" | "approval_pending" | "budget" | "rate_limited" | "invalid_payload" | "missing_thread_key" | "no_turn" | "no_output" | "invalid_output" | null;
5530
+ inputId: string | null;
5531
+ state: "refused";
5532
+ reason: "busy" | "approval_pending" | "conflict" | "rate_limited" | "budget" | "full" | "not_waiting";
5494
5533
  } | {
5495
- status: number;
5496
- firingId: string;
5497
- outcome: "dropped";
5498
- reason: "busy" | "approval_pending" | "budget" | "rate_limited";
5499
- threadId: string | null;
5534
+ inputId: string;
5535
+ state: "cancelled";
5536
+ reason: "stopped";
5500
5537
  } | {
5501
- status: number;
5502
- firingId: string;
5503
- outcome: "rejected";
5504
- issues: Array<{
5505
- path: string;
5506
- message: string;
5538
+ id: string;
5539
+ threadId: string | null;
5540
+ inputId: string | null;
5541
+ kind: "turn" | "subagent" | "tool";
5542
+ subagentRunId: string | null;
5543
+ status: "running" | "waiting" | "completed" | "failed" | "cancelled";
5544
+ reason: "no_output" | "invalid_output" | "stopped" | "cancelled" | "parent_cancelled" | "lost" | "timeout" | null;
5545
+ result: unknown;
5546
+ waits: Array<{
5547
+ kind: "approval" | "client_tool";
5548
+ toolCallId: string;
5549
+ toolName: string;
5550
+ input: unknown;
5507
5551
  }>;
5552
+ createdAt: string;
5553
+ finishedAt: string | null;
5508
5554
  };
5509
5555
  };
5510
- /** Create a trigger (a named entry point external systems fire on an agent) with an audience ({ kind: "all" }, { kind: "server", serverId }, or { kind: "agents", agentIds }), fired on any agent in it. The draft has no instructions yet; fill them with update before publishing. */
5556
+ /** Create a trigger (a named entry point fired on an agent) with an audience ({ kind: "all" }, { kind: "server", serverId }, or { kind: "agents", agentIds }), fired on any agent in it. With a `schedule` ({ cron, timeZone }: a five-field cron and an IANA zone) Cortex fires it itself and it has no fire secret; null makes a webhook a caller fires with the secret answered once. Which of the two is fixed for good. The draft has no instructions yet; fill them with update before publishing. */
5511
5557
  "triggers.create": {
5512
5558
  input: {
5513
5559
  /** A name: lowercase letters, digits, and single hyphens. */
5514
5560
  name: string;
5561
+ schedule: {
5562
+ cron: string;
5563
+ timeZone: string;
5564
+ } | null;
5515
5565
  displayName: Partial<Record<"en" | "ar", string>>;
5516
5566
  audience: {
5517
5567
  kind: "all";
@@ -5526,7 +5576,7 @@ export type ManagementProcedures = {
5526
5576
  output: {
5527
5577
  id: string;
5528
5578
  name: string;
5529
- rawSecret: string;
5579
+ rawSecret: string | null;
5530
5580
  };
5531
5581
  };
5532
5582
  /** Delete a trigger. */
@@ -5538,7 +5588,7 @@ export type ManagementProcedures = {
5538
5588
  id: string;
5539
5589
  };
5540
5590
  };
5541
- /** Fire a trigger with a test payload on one of its agents and return the outcome. Refused as `not_published` while the trigger is not published or is disabled. */
5591
+ /** Fire a trigger with a test payload on one of its agents and return what became of it: its run once ended or waiting on a decision, the run it started when that outlasts the wait, its input while it waits on the thread or once refused, or the payload's issues. Refused as `not_published` while the trigger is not published or is disabled. */
5542
5592
  "triggers.fire": {
5543
5593
  input: {
5544
5594
  id: string;
@@ -5546,50 +5596,45 @@ export type ManagementProcedures = {
5546
5596
  payload: unknown;
5547
5597
  };
5548
5598
  output: {
5549
- status: number;
5550
- firingId: string;
5551
- outcome: "started";
5552
- threadId: string;
5599
+ inputId: string;
5600
+ state: "started";
5553
5601
  runId: string;
5554
- } | {
5555
- status: number;
5556
- firingId: string;
5557
- outcome: "awaiting_approval";
5558
5602
  threadId: string;
5559
- runId: string;
5560
- approvals: Array<{
5561
- toolCallId: string;
5562
- toolName: string;
5563
- input: unknown;
5603
+ } | {
5604
+ state: "rejected";
5605
+ issues: Array<{
5606
+ path: string;
5607
+ message: string;
5564
5608
  }>;
5565
5609
  } | {
5566
- status: number;
5567
- firingId: string;
5568
- outcome: "completed";
5569
- threadId: string;
5570
- runId: string;
5571
- output: unknown;
5610
+ inputId: string;
5611
+ state: "waiting";
5612
+ delivery: "prompt" | "steer" | "followUp" | "answer" | "note";
5572
5613
  } | {
5573
- status: number;
5574
- firingId: string;
5575
- outcome: "failed";
5576
- threadId: string;
5577
- runId: string;
5578
- reason: "busy" | "approval_pending" | "budget" | "rate_limited" | "invalid_payload" | "missing_thread_key" | "no_turn" | "no_output" | "invalid_output" | null;
5614
+ inputId: string | null;
5615
+ state: "refused";
5616
+ reason: "busy" | "approval_pending" | "conflict" | "rate_limited" | "budget" | "full" | "not_waiting";
5579
5617
  } | {
5580
- status: number;
5581
- firingId: string;
5582
- outcome: "dropped";
5583
- reason: "busy" | "approval_pending" | "budget" | "rate_limited";
5584
- threadId: string | null;
5618
+ inputId: string;
5619
+ state: "cancelled";
5620
+ reason: "stopped";
5585
5621
  } | {
5586
- status: number;
5587
- firingId: string;
5588
- outcome: "rejected";
5589
- issues: Array<{
5590
- path: string;
5591
- message: string;
5622
+ id: string;
5623
+ threadId: string | null;
5624
+ inputId: string | null;
5625
+ kind: "turn" | "subagent" | "tool";
5626
+ subagentRunId: string | null;
5627
+ status: "running" | "waiting" | "completed" | "failed" | "cancelled";
5628
+ reason: "no_output" | "invalid_output" | "stopped" | "cancelled" | "parent_cancelled" | "lost" | "timeout" | null;
5629
+ result: unknown;
5630
+ waits: Array<{
5631
+ kind: "approval" | "client_tool";
5632
+ toolCallId: string;
5633
+ toolName: string;
5634
+ input: unknown;
5592
5635
  }>;
5636
+ createdAt: string;
5637
+ finishedAt: string | null;
5593
5638
  };
5594
5639
  };
5595
5640
  /** One trigger by id with its draft instructions and payload schema. */
@@ -5606,13 +5651,22 @@ export type ManagementProcedures = {
5606
5651
  threadPolicy: {
5607
5652
  policy: "single";
5608
5653
  } | {
5609
- policy: "per-firing";
5654
+ policy: "per-input";
5610
5655
  } | {
5611
5656
  policy: "ephemeral";
5612
5657
  } | {
5613
5658
  policy: "keyed";
5614
5659
  key: string;
5660
+ } | {
5661
+ policy: "thread";
5662
+ key: string;
5663
+ wake: boolean;
5615
5664
  };
5665
+ schedule: {
5666
+ cron: string;
5667
+ timeZone: string;
5668
+ } | null;
5669
+ whileBusy: "refuse" | "queue" | "steer";
5616
5670
  budgetPerDay: number | null;
5617
5671
  disableAfterFailures: number;
5618
5672
  secretPrefix: string;
@@ -5698,13 +5752,21 @@ export type ManagementProcedures = {
5698
5752
  threadPolicy: {
5699
5753
  policy: "single";
5700
5754
  } | {
5701
- policy: "per-firing";
5755
+ policy: "per-input";
5702
5756
  } | {
5703
5757
  policy: "ephemeral";
5704
5758
  } | {
5705
5759
  policy: "keyed";
5706
5760
  key: string;
5761
+ } | {
5762
+ policy: "thread";
5763
+ key: string;
5764
+ wake: boolean;
5707
5765
  };
5766
+ schedule: {
5767
+ cron: string;
5768
+ timeZone: string;
5769
+ } | null;
5708
5770
  status: "draft" | "published" | "disabled";
5709
5771
  secretPrefix: string;
5710
5772
  displayName: Partial<Record<"en" | "ar", string>>;
@@ -5813,7 +5875,7 @@ export type ManagementProcedures = {
5813
5875
  unchanged: boolean;
5814
5876
  };
5815
5877
  };
5816
- /** Update a trigger's draft. Saved as a draft; call the entity's publish procedure to make it live. `displayName`, `credentialName`, `fireCredentialName` and the model pick are the exceptions: they apply without a publish, the display name at once, the fire credential from the next firing and the others from each agent's next turn. Giving the run a different `credentialName` needs `secrets:write`, since tools forwarding the run token send its value upstream. The model pick (`modelProvider` with one of its `modelName`s and optionally a `modelEffort`, all null to run on each agent's own) is refused as `model_not_offered` when the provider does not list the model or the effort, or an effort is picked without a model. `fireCredentialName` names a static credential whose value callers present to fire, shared by every trigger naming it; that credential and its secret may serve nothing else. Clearing it leaves the trigger shut until `triggers.rotateSecret` mints a secret. */
5878
+ /** Update a trigger's draft. Saved as a draft; call the entity's publish procedure to make it live. `displayName`, `credentialName`, `fireCredentialName` and the model pick are the exceptions: they apply without a publish, the display name at once, the fire credential from the next fire and the others from each agent's next turn. Giving the run a different `credentialName` needs `secrets:write`, since tools forwarding the run token send its value upstream. The model pick (`modelProvider` with one of its `modelName`s and optionally a `modelEffort`, all null to run on each agent's own) is refused as `model_not_offered` when the provider does not list the model or the effort, or an effort is picked without a model. `fireCredentialName` names a static credential whose value callers present to fire, shared by every trigger naming it; that credential and its secret may serve nothing else. Clearing it leaves the trigger shut until `triggers.rotateSecret` mints a secret. */
5817
5879
  "triggers.update": {
5818
5880
  input: {
5819
5881
  description: string;
@@ -5823,13 +5885,22 @@ export type ManagementProcedures = {
5823
5885
  threadPolicy: {
5824
5886
  policy: "single";
5825
5887
  } | {
5826
- policy: "per-firing";
5888
+ policy: "per-input";
5827
5889
  } | {
5828
5890
  policy: "ephemeral";
5829
5891
  } | {
5830
5892
  policy: "keyed";
5831
5893
  key: string;
5894
+ } | {
5895
+ policy: "thread";
5896
+ key: string;
5897
+ wake: boolean;
5832
5898
  };
5899
+ schedule: {
5900
+ cron: string;
5901
+ timeZone: string;
5902
+ } | null;
5903
+ whileBusy: "refuse" | "queue" | "steer";
5833
5904
  budgetPerDay: number | null;
5834
5905
  disableAfterFailures: number;
5835
5906
  id: string;
@@ -5974,7 +6045,7 @@ export type ManagementProcedures = {
5974
6045
  name: string;
5975
6046
  displayName: Partial<Record<"en" | "ar", string>>;
5976
6047
  description: string;
5977
- event: "approval_requested";
6048
+ event: "run_waiting" | "run_finished";
5978
6049
  url: string;
5979
6050
  headers: Array<{
5980
6051
  header: string;
@@ -6026,7 +6097,7 @@ export type ManagementProcedures = {
6026
6097
  items: Array<{
6027
6098
  id: string;
6028
6099
  name: string;
6029
- event: "approval_requested";
6100
+ event: "run_waiting" | "run_finished";
6030
6101
  url: string;
6031
6102
  enabled: boolean;
6032
6103
  displayName: Partial<Record<"en" | "ar", string>>;
@@ -6067,10 +6138,9 @@ export type ManagementProcedures = {
6067
6138
  id: string;
6068
6139
  serverId: string | null;
6069
6140
  agentId: string | null;
6070
- event: "approval_requested";
6071
- threadId: string;
6141
+ event: "run_waiting" | "run_finished";
6142
+ threadId: string | null;
6072
6143
  runId: string;
6073
- firingId: string | null;
6074
6144
  attempt: number;
6075
6145
  status: "delivered" | "failed";
6076
6146
  httpStatus: number | null;
@@ -6144,7 +6214,7 @@ export type ManagementProcedures = {
6144
6214
  "webhooks.update": {
6145
6215
  input: {
6146
6216
  description: string;
6147
- event: "approval_requested";
6217
+ event: "run_waiting" | "run_finished";
6148
6218
  url: string;
6149
6219
  headers: Array<{
6150
6220
  header: string;