@github/copilot-sdk-win32-x64 1.0.14 → 1.0.15-preview.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/builtin/discover-resources/SKILL.md +10 -0
- package/builtin-skills/discover-resources/SKILL.md +10 -0
- package/definitions/explore.agent.yaml +4 -1
- package/definitions/research.agent.yaml +1 -1
- package/definitions/task.agent.yaml +4 -1
- package/package.json +1 -1
- package/plugins/computer-use/.plugin/plugin.json +1 -1
- package/plugins/computer-use/CopilotComputerUse.exe +0 -0
- package/plugins/computer-use/computer-use-mcp.exe +0 -0
- package/prebuilds/win32-x64/OneAuthInterop.dll +0 -0
- package/prebuilds/win32-x64/copilot-runtime.exe +0 -0
- package/prebuilds/win32-x64/msal-node-runtime.node +0 -0
- package/prebuilds/win32-x64/msalruntime.dll +0 -0
- package/prebuilds/win32-x64/runtime.node +2 -2
- package/ripgrep/bin/win32-x64/rg.exe +0 -0
- package/schemas/api.schema.json +4155 -42
- package/schemas/session-events.schema.json +821 -0
- package/sdk/index.js +221 -221
- package/tgrep/bin/win32-x64/tgrep.exe +0 -0
package/schemas/api.schema.json
CHANGED
|
@@ -334,6 +334,19 @@
|
|
|
334
334
|
"description": "Outcome of a catalog.search call: either bounded inert candidates, or one typed refusal. Never a partial success."
|
|
335
335
|
},
|
|
336
336
|
"stability": "experimental"
|
|
337
|
+
},
|
|
338
|
+
"select": {
|
|
339
|
+
"rpcMethod": "catalog.select",
|
|
340
|
+
"description": "Terminates one retained catalog selection group. A selected outcome returns the native host a fresh single-use candidate handle plus the original searchId for a later explicit mcp.planInstall call; non-selected outcomes release the group without producing a planning input. Candidate state, cards, URLs, credentials and private identifiers remain inside the runtime. The model-facing catalog_select tool projects the result separately and never exposes the candidate handle or searchId.",
|
|
341
|
+
"params": {
|
|
342
|
+
"$ref": "#/definitions/CatalogSelectionRequest",
|
|
343
|
+
"description": "Terminates one retained catalog selection group through an opaque reference previously returned by the model-safe search projection."
|
|
344
|
+
},
|
|
345
|
+
"result": {
|
|
346
|
+
"$ref": "#/definitions/CatalogSelectionResult",
|
|
347
|
+
"description": "Typed outcome of catalog.select. Only the selected host result carries a fresh candidate handle; the model-facing projection removes both that handle and searchId."
|
|
348
|
+
},
|
|
349
|
+
"stability": "experimental"
|
|
337
350
|
}
|
|
338
351
|
},
|
|
339
352
|
"plugins": {
|
|
@@ -694,7 +707,7 @@
|
|
|
694
707
|
"description": "Registers an SDK client as the session filesystem provider.",
|
|
695
708
|
"params": {
|
|
696
709
|
"$ref": "#/definitions/SessionFsSetProviderRequest",
|
|
697
|
-
"description": "Initial working directory, session-state path layout, and path conventions used to register the calling SDK client as the session filesystem provider."
|
|
710
|
+
"description": "Initial working directory, session-state path layout, and path conventions used to register the calling SDK client as the session filesystem provider. A registered provider is authoritative for path interpretation and filesystem facts used by workspace permission validation. Paths are interpreted lexically; home-relative paths (`~` and `~/...`) and Windows drive-relative paths such as `C:foo` are unsupported. Until provider-side canonicalization is supported, providers must not expose symlinks inside allowed roots that escape those roots."
|
|
698
711
|
},
|
|
699
712
|
"result": {
|
|
700
713
|
"$ref": "#/definitions/SessionFsSetProviderResult",
|
|
@@ -2731,6 +2744,597 @@
|
|
|
2731
2744
|
}
|
|
2732
2745
|
}
|
|
2733
2746
|
},
|
|
2747
|
+
"workflow": {
|
|
2748
|
+
"run": {
|
|
2749
|
+
"rpcMethod": "session.workflow.run",
|
|
2750
|
+
"description": "Runs a registered dynamic workflow by name at the top level.",
|
|
2751
|
+
"params": {
|
|
2752
|
+
"type": "object",
|
|
2753
|
+
"properties": {
|
|
2754
|
+
"sessionId": {
|
|
2755
|
+
"type": "string",
|
|
2756
|
+
"description": "Target session identifier"
|
|
2757
|
+
},
|
|
2758
|
+
"name": {
|
|
2759
|
+
"type": "string",
|
|
2760
|
+
"description": "Registered workflow name."
|
|
2761
|
+
},
|
|
2762
|
+
"args": {
|
|
2763
|
+
"description": "Workflow input value.",
|
|
2764
|
+
"x-opaque-json": true
|
|
2765
|
+
},
|
|
2766
|
+
"options": {
|
|
2767
|
+
"$ref": "#/definitions/WorkflowRunOptions",
|
|
2768
|
+
"description": "Workflow invocation options."
|
|
2769
|
+
}
|
|
2770
|
+
},
|
|
2771
|
+
"required": [
|
|
2772
|
+
"sessionId",
|
|
2773
|
+
"name",
|
|
2774
|
+
"args"
|
|
2775
|
+
],
|
|
2776
|
+
"additionalProperties": false,
|
|
2777
|
+
"description": "Parameters for invoking a registered workflow.",
|
|
2778
|
+
"title": "WorkflowRunRequest",
|
|
2779
|
+
"stability": "experimental"
|
|
2780
|
+
},
|
|
2781
|
+
"result": {
|
|
2782
|
+
"$ref": "#/definitions/WorkflowRunResult",
|
|
2783
|
+
"description": "Complete current or terminal workflow run envelope."
|
|
2784
|
+
},
|
|
2785
|
+
"stability": "experimental"
|
|
2786
|
+
},
|
|
2787
|
+
"resume": {
|
|
2788
|
+
"rpcMethod": "session.workflow.resume",
|
|
2789
|
+
"description": "Resumes a dynamic workflow run using its persisted name, arguments, journal, and accounting.",
|
|
2790
|
+
"params": {
|
|
2791
|
+
"type": "object",
|
|
2792
|
+
"properties": {
|
|
2793
|
+
"sessionId": {
|
|
2794
|
+
"type": "string",
|
|
2795
|
+
"description": "Target session identifier"
|
|
2796
|
+
},
|
|
2797
|
+
"runId": {
|
|
2798
|
+
"type": "string",
|
|
2799
|
+
"description": "Workflow run identifier."
|
|
2800
|
+
},
|
|
2801
|
+
"limits": {
|
|
2802
|
+
"$ref": "#/definitions/WorkflowRunLimits",
|
|
2803
|
+
"description": "Optional per-invocation resource ceiling overrides."
|
|
2804
|
+
},
|
|
2805
|
+
"notifyOnComplete": {
|
|
2806
|
+
"type": "boolean",
|
|
2807
|
+
"description": "Whether to notify the originating session when the workflow completes."
|
|
2808
|
+
},
|
|
2809
|
+
"logPhaseNames": {
|
|
2810
|
+
"type": "boolean",
|
|
2811
|
+
"description": "Whether to emit workflow phase names to the session transcript."
|
|
2812
|
+
}
|
|
2813
|
+
},
|
|
2814
|
+
"required": [
|
|
2815
|
+
"sessionId",
|
|
2816
|
+
"runId"
|
|
2817
|
+
],
|
|
2818
|
+
"additionalProperties": false,
|
|
2819
|
+
"description": "Parameters for resuming a workflow run from its persisted identity.",
|
|
2820
|
+
"title": "WorkflowResumeRequest",
|
|
2821
|
+
"stability": "experimental"
|
|
2822
|
+
},
|
|
2823
|
+
"result": {
|
|
2824
|
+
"$ref": "#/definitions/WorkflowResumeResult",
|
|
2825
|
+
"description": "Resolved persisted workflow identity and resumed run envelope."
|
|
2826
|
+
},
|
|
2827
|
+
"stability": "experimental"
|
|
2828
|
+
},
|
|
2829
|
+
"runFromTool": {
|
|
2830
|
+
"rpcMethod": "session.workflow.runFromTool",
|
|
2831
|
+
"description": "Internal tool-originated dynamic workflow invocation.",
|
|
2832
|
+
"params": {
|
|
2833
|
+
"type": "object",
|
|
2834
|
+
"properties": {
|
|
2835
|
+
"sessionId": {
|
|
2836
|
+
"type": "string",
|
|
2837
|
+
"description": "Target session identifier"
|
|
2838
|
+
},
|
|
2839
|
+
"name": {
|
|
2840
|
+
"type": "string",
|
|
2841
|
+
"description": "Registered workflow name."
|
|
2842
|
+
},
|
|
2843
|
+
"args": {
|
|
2844
|
+
"description": "Workflow input value.",
|
|
2845
|
+
"x-opaque-json": true
|
|
2846
|
+
},
|
|
2847
|
+
"options": {
|
|
2848
|
+
"$ref": "#/definitions/WorkflowToolRunOptions",
|
|
2849
|
+
"description": "Tool-originated workflow invocation options."
|
|
2850
|
+
},
|
|
2851
|
+
"toolCallId": {
|
|
2852
|
+
"type": "string",
|
|
2853
|
+
"description": "Opaque identifier of the originating tool call."
|
|
2854
|
+
}
|
|
2855
|
+
},
|
|
2856
|
+
"required": [
|
|
2857
|
+
"sessionId",
|
|
2858
|
+
"name",
|
|
2859
|
+
"args"
|
|
2860
|
+
],
|
|
2861
|
+
"additionalProperties": false,
|
|
2862
|
+
"description": "Internal parameters for invoking a registered workflow from a tool.",
|
|
2863
|
+
"title": "WorkflowToolRunRequest",
|
|
2864
|
+
"visibility": "internal",
|
|
2865
|
+
"stability": "experimental"
|
|
2866
|
+
},
|
|
2867
|
+
"result": {
|
|
2868
|
+
"$ref": "#/definitions/WorkflowRunResult",
|
|
2869
|
+
"description": "Complete current or terminal workflow run envelope."
|
|
2870
|
+
},
|
|
2871
|
+
"stability": "experimental",
|
|
2872
|
+
"visibility": "internal"
|
|
2873
|
+
},
|
|
2874
|
+
"resumeFromTool": {
|
|
2875
|
+
"rpcMethod": "session.workflow.resumeFromTool",
|
|
2876
|
+
"description": "Internal tool-originated dynamic workflow resume.",
|
|
2877
|
+
"params": {
|
|
2878
|
+
"type": "object",
|
|
2879
|
+
"properties": {
|
|
2880
|
+
"sessionId": {
|
|
2881
|
+
"type": "string",
|
|
2882
|
+
"description": "Target session identifier"
|
|
2883
|
+
},
|
|
2884
|
+
"runId": {
|
|
2885
|
+
"type": "string",
|
|
2886
|
+
"description": "Workflow run identifier."
|
|
2887
|
+
},
|
|
2888
|
+
"limits": {
|
|
2889
|
+
"$ref": "#/definitions/WorkflowRunLimits",
|
|
2890
|
+
"description": "Optional per-invocation resource ceiling overrides."
|
|
2891
|
+
},
|
|
2892
|
+
"toolCallId": {
|
|
2893
|
+
"type": "string",
|
|
2894
|
+
"description": "Opaque identifier of the originating tool call."
|
|
2895
|
+
}
|
|
2896
|
+
},
|
|
2897
|
+
"required": [
|
|
2898
|
+
"sessionId",
|
|
2899
|
+
"runId"
|
|
2900
|
+
],
|
|
2901
|
+
"additionalProperties": false,
|
|
2902
|
+
"description": "Internal parameters for resuming a workflow run from a tool.",
|
|
2903
|
+
"title": "WorkflowToolResumeRequest",
|
|
2904
|
+
"visibility": "internal",
|
|
2905
|
+
"stability": "experimental"
|
|
2906
|
+
},
|
|
2907
|
+
"result": {
|
|
2908
|
+
"$ref": "#/definitions/WorkflowResumeResult",
|
|
2909
|
+
"description": "Resolved persisted workflow identity and resumed run envelope."
|
|
2910
|
+
},
|
|
2911
|
+
"stability": "experimental",
|
|
2912
|
+
"visibility": "internal"
|
|
2913
|
+
},
|
|
2914
|
+
"getRun": {
|
|
2915
|
+
"rpcMethod": "session.workflow.getRun",
|
|
2916
|
+
"description": "Gets the current or settled envelope for a dynamic workflow run.",
|
|
2917
|
+
"params": {
|
|
2918
|
+
"type": "object",
|
|
2919
|
+
"properties": {
|
|
2920
|
+
"sessionId": {
|
|
2921
|
+
"type": "string",
|
|
2922
|
+
"description": "Target session identifier"
|
|
2923
|
+
},
|
|
2924
|
+
"runId": {
|
|
2925
|
+
"type": "string",
|
|
2926
|
+
"description": "Workflow run identifier."
|
|
2927
|
+
}
|
|
2928
|
+
},
|
|
2929
|
+
"required": [
|
|
2930
|
+
"sessionId",
|
|
2931
|
+
"runId"
|
|
2932
|
+
],
|
|
2933
|
+
"additionalProperties": false,
|
|
2934
|
+
"description": "Parameters for retrieving a workflow run.",
|
|
2935
|
+
"title": "WorkflowGetRunRequest",
|
|
2936
|
+
"stability": "experimental"
|
|
2937
|
+
},
|
|
2938
|
+
"result": {
|
|
2939
|
+
"$ref": "#/definitions/WorkflowRunResult",
|
|
2940
|
+
"description": "Complete current or terminal workflow run envelope."
|
|
2941
|
+
},
|
|
2942
|
+
"stability": "experimental"
|
|
2943
|
+
},
|
|
2944
|
+
"listRuns": {
|
|
2945
|
+
"rpcMethod": "session.workflow.listRuns",
|
|
2946
|
+
"description": "Lists durable dynamic workflow runs for this session in creation order.",
|
|
2947
|
+
"params": {
|
|
2948
|
+
"type": "object",
|
|
2949
|
+
"properties": {
|
|
2950
|
+
"sessionId": {
|
|
2951
|
+
"type": "string",
|
|
2952
|
+
"description": "Target session identifier"
|
|
2953
|
+
},
|
|
2954
|
+
"afterSeq": {
|
|
2955
|
+
"type": "integer",
|
|
2956
|
+
"description": "Exclusive forward cursor."
|
|
2957
|
+
},
|
|
2958
|
+
"beforeSeq": {
|
|
2959
|
+
"type": "integer",
|
|
2960
|
+
"description": "Exclusive backward cursor."
|
|
2961
|
+
},
|
|
2962
|
+
"limit": {
|
|
2963
|
+
"type": "integer",
|
|
2964
|
+
"minimum": 1,
|
|
2965
|
+
"maximum": 500,
|
|
2966
|
+
"description": "Maximum terminal runs to return. Defaults to 200 and is capped at 500."
|
|
2967
|
+
}
|
|
2968
|
+
},
|
|
2969
|
+
"required": [
|
|
2970
|
+
"sessionId"
|
|
2971
|
+
],
|
|
2972
|
+
"additionalProperties": false,
|
|
2973
|
+
"description": "Parameters for paging workflow runs.",
|
|
2974
|
+
"title": "WorkflowListRunsRequest",
|
|
2975
|
+
"stability": "experimental"
|
|
2976
|
+
},
|
|
2977
|
+
"result": {
|
|
2978
|
+
"$ref": "#/definitions/WorkflowListRunsResult",
|
|
2979
|
+
"description": "A page of workflow runs in durable creation order."
|
|
2980
|
+
},
|
|
2981
|
+
"stability": "experimental"
|
|
2982
|
+
},
|
|
2983
|
+
"getRunDetail": {
|
|
2984
|
+
"rpcMethod": "session.workflow.getRunDetail",
|
|
2985
|
+
"description": "Gets durable and live observability detail for one dynamic workflow run.",
|
|
2986
|
+
"params": {
|
|
2987
|
+
"type": "object",
|
|
2988
|
+
"properties": {
|
|
2989
|
+
"sessionId": {
|
|
2990
|
+
"type": "string",
|
|
2991
|
+
"description": "Target session identifier"
|
|
2992
|
+
},
|
|
2993
|
+
"runId": {
|
|
2994
|
+
"type": "string",
|
|
2995
|
+
"description": "Workflow run identifier."
|
|
2996
|
+
}
|
|
2997
|
+
},
|
|
2998
|
+
"required": [
|
|
2999
|
+
"sessionId",
|
|
3000
|
+
"runId"
|
|
3001
|
+
],
|
|
3002
|
+
"additionalProperties": false,
|
|
3003
|
+
"description": "Parameters for retrieving a workflow run.",
|
|
3004
|
+
"title": "WorkflowGetRunRequest",
|
|
3005
|
+
"stability": "experimental"
|
|
3006
|
+
},
|
|
3007
|
+
"result": {
|
|
3008
|
+
"$ref": "#/definitions/WorkflowRunDetail",
|
|
3009
|
+
"description": "Full workflow run observability detail."
|
|
3010
|
+
},
|
|
3011
|
+
"stability": "experimental"
|
|
3012
|
+
},
|
|
3013
|
+
"getRunProgress": {
|
|
3014
|
+
"rpcMethod": "session.workflow.getRunProgress",
|
|
3015
|
+
"description": "Pages durable progress for one dynamic workflow run.",
|
|
3016
|
+
"params": {
|
|
3017
|
+
"type": "object",
|
|
3018
|
+
"properties": {
|
|
3019
|
+
"sessionId": {
|
|
3020
|
+
"type": "string",
|
|
3021
|
+
"description": "Target session identifier"
|
|
3022
|
+
},
|
|
3023
|
+
"runId": {
|
|
3024
|
+
"type": "string",
|
|
3025
|
+
"description": "Workflow run identifier."
|
|
3026
|
+
},
|
|
3027
|
+
"phaseId": {
|
|
3028
|
+
"type": "string",
|
|
3029
|
+
"description": "Optional phase identifier used to scope records and cursors."
|
|
3030
|
+
},
|
|
3031
|
+
"afterSeq": {
|
|
3032
|
+
"type": "integer",
|
|
3033
|
+
"description": "Exclusive forward cursor."
|
|
3034
|
+
},
|
|
3035
|
+
"beforeSeq": {
|
|
3036
|
+
"type": "integer",
|
|
3037
|
+
"description": "Exclusive backward cursor."
|
|
3038
|
+
},
|
|
3039
|
+
"limit": {
|
|
3040
|
+
"type": "integer",
|
|
3041
|
+
"minimum": 1,
|
|
3042
|
+
"maximum": 500,
|
|
3043
|
+
"description": "Maximum records to return. Defaults to 200 and is capped at 500."
|
|
3044
|
+
}
|
|
3045
|
+
},
|
|
3046
|
+
"required": [
|
|
3047
|
+
"sessionId",
|
|
3048
|
+
"runId"
|
|
3049
|
+
],
|
|
3050
|
+
"additionalProperties": false,
|
|
3051
|
+
"description": "Parameters for paging workflow progress.",
|
|
3052
|
+
"title": "WorkflowGetRunProgressRequest",
|
|
3053
|
+
"stability": "experimental"
|
|
3054
|
+
},
|
|
3055
|
+
"result": {
|
|
3056
|
+
"$ref": "#/definitions/WorkflowProgressPage",
|
|
3057
|
+
"description": "A bidirectional page of workflow progress."
|
|
3058
|
+
},
|
|
3059
|
+
"stability": "experimental"
|
|
3060
|
+
},
|
|
3061
|
+
"cancel": {
|
|
3062
|
+
"rpcMethod": "session.workflow.cancel",
|
|
3063
|
+
"description": "Requests cancellation of a dynamic workflow run and returns its run envelope.",
|
|
3064
|
+
"params": {
|
|
3065
|
+
"type": "object",
|
|
3066
|
+
"properties": {
|
|
3067
|
+
"sessionId": {
|
|
3068
|
+
"type": "string",
|
|
3069
|
+
"description": "Target session identifier"
|
|
3070
|
+
},
|
|
3071
|
+
"runId": {
|
|
3072
|
+
"type": "string",
|
|
3073
|
+
"description": "Workflow run identifier."
|
|
3074
|
+
}
|
|
3075
|
+
},
|
|
3076
|
+
"required": [
|
|
3077
|
+
"sessionId",
|
|
3078
|
+
"runId"
|
|
3079
|
+
],
|
|
3080
|
+
"additionalProperties": false,
|
|
3081
|
+
"description": "Parameters for cancelling a workflow run.",
|
|
3082
|
+
"title": "WorkflowCancelRequest",
|
|
3083
|
+
"stability": "experimental"
|
|
3084
|
+
},
|
|
3085
|
+
"result": {
|
|
3086
|
+
"$ref": "#/definitions/WorkflowRunResult",
|
|
3087
|
+
"description": "Complete current or terminal workflow run envelope."
|
|
3088
|
+
},
|
|
3089
|
+
"stability": "experimental"
|
|
3090
|
+
},
|
|
3091
|
+
"pause": {
|
|
3092
|
+
"rpcMethod": "session.workflow.pause",
|
|
3093
|
+
"description": "Pauses a running dynamic workflow and returns its settled run envelope.",
|
|
3094
|
+
"params": {
|
|
3095
|
+
"type": "object",
|
|
3096
|
+
"properties": {
|
|
3097
|
+
"sessionId": {
|
|
3098
|
+
"type": "string",
|
|
3099
|
+
"description": "Target session identifier"
|
|
3100
|
+
},
|
|
3101
|
+
"runId": {
|
|
3102
|
+
"type": "string",
|
|
3103
|
+
"description": "Workflow run identifier."
|
|
3104
|
+
}
|
|
3105
|
+
},
|
|
3106
|
+
"required": [
|
|
3107
|
+
"sessionId",
|
|
3108
|
+
"runId"
|
|
3109
|
+
],
|
|
3110
|
+
"additionalProperties": false,
|
|
3111
|
+
"description": "Parameters for pausing a running workflow.",
|
|
3112
|
+
"title": "WorkflowPauseRequest",
|
|
3113
|
+
"stability": "experimental"
|
|
3114
|
+
},
|
|
3115
|
+
"result": {
|
|
3116
|
+
"$ref": "#/definitions/WorkflowRunResult",
|
|
3117
|
+
"description": "Complete current or terminal workflow run envelope."
|
|
3118
|
+
},
|
|
3119
|
+
"stability": "experimental"
|
|
3120
|
+
},
|
|
3121
|
+
"pauseAtCheckpoint": {
|
|
3122
|
+
"rpcMethod": "session.workflow.pauseAtCheckpoint",
|
|
3123
|
+
"description": "Atomically pauses an owned dynamic workflow attempt at a durable checkpoint.",
|
|
3124
|
+
"params": {
|
|
3125
|
+
"type": "object",
|
|
3126
|
+
"properties": {
|
|
3127
|
+
"sessionId": {
|
|
3128
|
+
"type": "string",
|
|
3129
|
+
"description": "Target session identifier"
|
|
3130
|
+
},
|
|
3131
|
+
"runId": {
|
|
3132
|
+
"type": "string",
|
|
3133
|
+
"description": "Workflow run identifier."
|
|
3134
|
+
},
|
|
3135
|
+
"executionToken": {
|
|
3136
|
+
"type": "string",
|
|
3137
|
+
"description": "Opaque token identifying the execution attempt that reached the checkpoint."
|
|
3138
|
+
},
|
|
3139
|
+
"key": {
|
|
3140
|
+
"type": "string",
|
|
3141
|
+
"description": "Stable author-defined checkpoint key."
|
|
3142
|
+
}
|
|
3143
|
+
},
|
|
3144
|
+
"required": [
|
|
3145
|
+
"sessionId",
|
|
3146
|
+
"runId",
|
|
3147
|
+
"executionToken",
|
|
3148
|
+
"key"
|
|
3149
|
+
],
|
|
3150
|
+
"additionalProperties": false,
|
|
3151
|
+
"description": "Parameters for an owned durable pause checkpoint.",
|
|
3152
|
+
"title": "WorkflowPauseCheckpointRequest",
|
|
3153
|
+
"stability": "experimental"
|
|
3154
|
+
},
|
|
3155
|
+
"result": {
|
|
3156
|
+
"$ref": "#/definitions/WorkflowPauseCheckpointResult"
|
|
3157
|
+
},
|
|
3158
|
+
"stability": "experimental",
|
|
3159
|
+
"visibility": "internal"
|
|
3160
|
+
},
|
|
3161
|
+
"log": {
|
|
3162
|
+
"rpcMethod": "session.workflow.log",
|
|
3163
|
+
"description": "Records a batch of ordered dynamic workflow progress lines.",
|
|
3164
|
+
"params": {
|
|
3165
|
+
"type": "object",
|
|
3166
|
+
"properties": {
|
|
3167
|
+
"sessionId": {
|
|
3168
|
+
"type": "string",
|
|
3169
|
+
"description": "Target session identifier"
|
|
3170
|
+
},
|
|
3171
|
+
"runId": {
|
|
3172
|
+
"type": "string",
|
|
3173
|
+
"description": "Workflow run identifier."
|
|
3174
|
+
},
|
|
3175
|
+
"executionToken": {
|
|
3176
|
+
"type": "string",
|
|
3177
|
+
"description": "Opaque token identifying the current workflow execution attempt."
|
|
3178
|
+
},
|
|
3179
|
+
"lines": {
|
|
3180
|
+
"type": "array",
|
|
3181
|
+
"items": {
|
|
3182
|
+
"$ref": "#/definitions/WorkflowLogLine",
|
|
3183
|
+
"description": "One ordered workflow progress line."
|
|
3184
|
+
},
|
|
3185
|
+
"description": "Ordered progress lines to append."
|
|
3186
|
+
}
|
|
3187
|
+
},
|
|
3188
|
+
"required": [
|
|
3189
|
+
"sessionId",
|
|
3190
|
+
"runId",
|
|
3191
|
+
"executionToken",
|
|
3192
|
+
"lines"
|
|
3193
|
+
],
|
|
3194
|
+
"additionalProperties": false,
|
|
3195
|
+
"description": "Parameters for recording workflow progress.",
|
|
3196
|
+
"title": "WorkflowLogRequest",
|
|
3197
|
+
"stability": "experimental"
|
|
3198
|
+
},
|
|
3199
|
+
"result": {
|
|
3200
|
+
"$ref": "#/definitions/WorkflowAckResult",
|
|
3201
|
+
"description": "Acknowledgement that a workflow request was accepted."
|
|
3202
|
+
},
|
|
3203
|
+
"stability": "experimental"
|
|
3204
|
+
},
|
|
3205
|
+
"agent": {
|
|
3206
|
+
"rpcMethod": "session.workflow.agent",
|
|
3207
|
+
"description": "Runs one dynamic-workflow-scoped subagent and returns its result.",
|
|
3208
|
+
"params": {
|
|
3209
|
+
"type": "object",
|
|
3210
|
+
"properties": {
|
|
3211
|
+
"sessionId": {
|
|
3212
|
+
"type": "string",
|
|
3213
|
+
"description": "Target session identifier"
|
|
3214
|
+
},
|
|
3215
|
+
"workflowRunId": {
|
|
3216
|
+
"type": "string",
|
|
3217
|
+
"description": "Workflow run identifier that owns the subagent."
|
|
3218
|
+
},
|
|
3219
|
+
"executionToken": {
|
|
3220
|
+
"type": "string",
|
|
3221
|
+
"description": "Opaque token identifying the current workflow execution attempt."
|
|
3222
|
+
},
|
|
3223
|
+
"prompt": {
|
|
3224
|
+
"type": "string",
|
|
3225
|
+
"description": "Prompt to send to the subagent."
|
|
3226
|
+
},
|
|
3227
|
+
"opts": {
|
|
3228
|
+
"$ref": "#/definitions/WorkflowAgentOptions",
|
|
3229
|
+
"description": "Subagent execution options."
|
|
3230
|
+
}
|
|
3231
|
+
},
|
|
3232
|
+
"required": [
|
|
3233
|
+
"sessionId",
|
|
3234
|
+
"workflowRunId",
|
|
3235
|
+
"executionToken",
|
|
3236
|
+
"prompt",
|
|
3237
|
+
"opts"
|
|
3238
|
+
],
|
|
3239
|
+
"additionalProperties": false,
|
|
3240
|
+
"description": "Parameters for one workflow-scoped subagent call.",
|
|
3241
|
+
"title": "WorkflowAgentRequest",
|
|
3242
|
+
"stability": "experimental"
|
|
3243
|
+
},
|
|
3244
|
+
"result": {
|
|
3245
|
+
"$ref": "#/definitions/WorkflowAgentResult",
|
|
3246
|
+
"description": "Result of one workflow-scoped subagent call."
|
|
3247
|
+
},
|
|
3248
|
+
"stability": "experimental"
|
|
3249
|
+
},
|
|
3250
|
+
"journal": {
|
|
3251
|
+
"get": {
|
|
3252
|
+
"rpcMethod": "session.workflow.journal.get",
|
|
3253
|
+
"description": "Reads a memoized dynamic workflow journal entry.",
|
|
3254
|
+
"params": {
|
|
3255
|
+
"type": "object",
|
|
3256
|
+
"properties": {
|
|
3257
|
+
"sessionId": {
|
|
3258
|
+
"type": "string",
|
|
3259
|
+
"description": "Target session identifier"
|
|
3260
|
+
},
|
|
3261
|
+
"runId": {
|
|
3262
|
+
"type": "string",
|
|
3263
|
+
"description": "Workflow run identifier."
|
|
3264
|
+
},
|
|
3265
|
+
"executionToken": {
|
|
3266
|
+
"type": "string",
|
|
3267
|
+
"description": "Opaque token identifying the current workflow execution attempt."
|
|
3268
|
+
},
|
|
3269
|
+
"key": {
|
|
3270
|
+
"type": "string",
|
|
3271
|
+
"description": "Namespaced journal key."
|
|
3272
|
+
}
|
|
3273
|
+
},
|
|
3274
|
+
"required": [
|
|
3275
|
+
"sessionId",
|
|
3276
|
+
"runId",
|
|
3277
|
+
"executionToken",
|
|
3278
|
+
"key"
|
|
3279
|
+
],
|
|
3280
|
+
"additionalProperties": false,
|
|
3281
|
+
"description": "Parameters for reading a workflow journal entry.",
|
|
3282
|
+
"title": "WorkflowJournalGetRequest",
|
|
3283
|
+
"stability": "experimental"
|
|
3284
|
+
},
|
|
3285
|
+
"result": {
|
|
3286
|
+
"$ref": "#/definitions/WorkflowJournalGetResult",
|
|
3287
|
+
"description": "Result of reading a workflow journal entry."
|
|
3288
|
+
},
|
|
3289
|
+
"stability": "experimental"
|
|
3290
|
+
},
|
|
3291
|
+
"put": {
|
|
3292
|
+
"rpcMethod": "session.workflow.journal.put",
|
|
3293
|
+
"description": "Stores a memoized dynamic workflow journal entry.",
|
|
3294
|
+
"params": {
|
|
3295
|
+
"type": "object",
|
|
3296
|
+
"properties": {
|
|
3297
|
+
"sessionId": {
|
|
3298
|
+
"type": "string",
|
|
3299
|
+
"description": "Target session identifier"
|
|
3300
|
+
},
|
|
3301
|
+
"runId": {
|
|
3302
|
+
"type": "string",
|
|
3303
|
+
"description": "Workflow run identifier."
|
|
3304
|
+
},
|
|
3305
|
+
"executionToken": {
|
|
3306
|
+
"type": "string",
|
|
3307
|
+
"description": "Opaque token identifying the current workflow execution attempt."
|
|
3308
|
+
},
|
|
3309
|
+
"key": {
|
|
3310
|
+
"type": "string",
|
|
3311
|
+
"description": "Namespaced journal key."
|
|
3312
|
+
},
|
|
3313
|
+
"resultJson": {
|
|
3314
|
+
"description": "JSON result to memoize.",
|
|
3315
|
+
"x-opaque-json": true
|
|
3316
|
+
}
|
|
3317
|
+
},
|
|
3318
|
+
"required": [
|
|
3319
|
+
"sessionId",
|
|
3320
|
+
"runId",
|
|
3321
|
+
"executionToken",
|
|
3322
|
+
"key",
|
|
3323
|
+
"resultJson"
|
|
3324
|
+
],
|
|
3325
|
+
"additionalProperties": false,
|
|
3326
|
+
"description": "Parameters for storing a workflow journal entry.",
|
|
3327
|
+
"title": "WorkflowJournalPutRequest",
|
|
3328
|
+
"stability": "experimental"
|
|
3329
|
+
},
|
|
3330
|
+
"result": {
|
|
3331
|
+
"$ref": "#/definitions/WorkflowAckResult",
|
|
3332
|
+
"description": "Acknowledgement that a workflow request was accepted."
|
|
3333
|
+
},
|
|
3334
|
+
"stability": "experimental"
|
|
3335
|
+
}
|
|
3336
|
+
}
|
|
3337
|
+
},
|
|
2734
3338
|
"model": {
|
|
2735
3339
|
"getCurrent": {
|
|
2736
3340
|
"rpcMethod": "session.model.getCurrent",
|
|
@@ -2913,6 +3517,10 @@
|
|
|
2913
3517
|
"type": "string",
|
|
2914
3518
|
"description": "Startup default model from the enterprise policy helper, when configured. Weakest of the managed sources: it applies only when neither device nor server policy names a model, and an explicit user selection still wins."
|
|
2915
3519
|
},
|
|
3520
|
+
"autoTier": {
|
|
3521
|
+
"$ref": "#/definitions/AutoTier",
|
|
3522
|
+
"description": "Effective default Auto routing preference from user and managed settings. Applies only to fresh sessions and never replaces a per-session selection."
|
|
3523
|
+
},
|
|
2916
3524
|
"repoModel": {
|
|
2917
3525
|
"type": "string",
|
|
2918
3526
|
"description": "Model selected by repository settings, when configured."
|
|
@@ -5985,10 +6593,35 @@
|
|
|
5985
6593
|
}
|
|
5986
6594
|
}
|
|
5987
6595
|
},
|
|
6596
|
+
"managedSettings": {
|
|
6597
|
+
"get": {
|
|
6598
|
+
"rpcMethod": "session.managedSettings.get",
|
|
6599
|
+
"description": "Waits for the live session's in-flight managed-settings application, then returns the retained effective snapshot used by runtime enforcement and by `session.managed_settings_resolved`. It does not perform another account, device, or server resolution, and rejects when resolution has not produced a snapshot.",
|
|
6600
|
+
"params": {
|
|
6601
|
+
"type": "object",
|
|
6602
|
+
"properties": {
|
|
6603
|
+
"sessionId": {
|
|
6604
|
+
"type": "string",
|
|
6605
|
+
"description": "Target session identifier"
|
|
6606
|
+
}
|
|
6607
|
+
},
|
|
6608
|
+
"required": [
|
|
6609
|
+
"sessionId"
|
|
6610
|
+
],
|
|
6611
|
+
"additionalProperties": false,
|
|
6612
|
+
"description": "Identifies the target session."
|
|
6613
|
+
},
|
|
6614
|
+
"result": {
|
|
6615
|
+
"$ref": "#/definitions/ManagedSettingsResolvedData",
|
|
6616
|
+
"description": "Enterprise managed-settings resolution: the effective managed settings the session applied and which channels contributed, so SDK clients can show users what is enterprise-managed. Fires whenever managed policy is (re)applied — at session start, on resume, and on account switch. This is an ephemeral live snapshot (delivered to subscribers but not persisted to the session event log), because at session start it resolves before `session.start` is emitted. Device values take precedence over server values, then the policy helper, per ordinary key, while permissions compose restrictively across device, server, policy-helper, and SDK-client layers. The account-scoped `getManagedSettings()` API does not include session-local client injection. Marked experimental while the managed-settings surface stabilizes."
|
|
6617
|
+
},
|
|
6618
|
+
"stability": "experimental"
|
|
6619
|
+
}
|
|
6620
|
+
},
|
|
5988
6621
|
"plugins": {
|
|
5989
6622
|
"list": {
|
|
5990
6623
|
"rpcMethod": "session.plugins.list",
|
|
5991
|
-
"description": "Lists
|
|
6624
|
+
"description": "Lists globally installed, live, built-in, and enterprise-managed desired plugins using the live session's authoritative account, working directory, and retained managed policy.",
|
|
5992
6625
|
"params": {
|
|
5993
6626
|
"type": "object",
|
|
5994
6627
|
"properties": {
|
|
@@ -6009,6 +6642,319 @@
|
|
|
6009
6642
|
},
|
|
6010
6643
|
"stability": "experimental"
|
|
6011
6644
|
},
|
|
6645
|
+
"install": {
|
|
6646
|
+
"rpcMethod": "session.plugins.install",
|
|
6647
|
+
"description": "Installs a plugin using the live session's authoritative account, working directory, and retained managed policy.",
|
|
6648
|
+
"params": {
|
|
6649
|
+
"type": "object",
|
|
6650
|
+
"properties": {
|
|
6651
|
+
"sessionId": {
|
|
6652
|
+
"type": "string",
|
|
6653
|
+
"description": "Target session identifier"
|
|
6654
|
+
},
|
|
6655
|
+
"source": {
|
|
6656
|
+
"type": "string",
|
|
6657
|
+
"description": "Plugin install spec. Accepts the same forms as the CLI: \"plugin@marketplace\" (marketplace install), \"owner/repo\" or \"owner/repo:subpath\" (GitHub direct), an http/https/ssh URL, or a local path. Direct (non-marketplace) installs are deprecated and will produce a deprecationWarning in the result."
|
|
6658
|
+
}
|
|
6659
|
+
},
|
|
6660
|
+
"required": [
|
|
6661
|
+
"sessionId",
|
|
6662
|
+
"source"
|
|
6663
|
+
],
|
|
6664
|
+
"additionalProperties": false,
|
|
6665
|
+
"description": "Plugin source resolved relative to the session's authoritative working directory.",
|
|
6666
|
+
"title": "SessionPluginsInstallRequest",
|
|
6667
|
+
"stability": "experimental"
|
|
6668
|
+
},
|
|
6669
|
+
"result": {
|
|
6670
|
+
"$ref": "#/definitions/PluginInstallResult",
|
|
6671
|
+
"description": "Result of installing a plugin."
|
|
6672
|
+
},
|
|
6673
|
+
"stability": "experimental"
|
|
6674
|
+
},
|
|
6675
|
+
"uninstall": {
|
|
6676
|
+
"rpcMethod": "session.plugins.uninstall",
|
|
6677
|
+
"description": "Uninstalls a plugin when permitted by the live session's retained managed policy.",
|
|
6678
|
+
"params": {
|
|
6679
|
+
"type": "object",
|
|
6680
|
+
"properties": {
|
|
6681
|
+
"sessionId": {
|
|
6682
|
+
"type": "string",
|
|
6683
|
+
"description": "Target session identifier"
|
|
6684
|
+
},
|
|
6685
|
+
"name": {
|
|
6686
|
+
"type": "string",
|
|
6687
|
+
"description": "Plugin name or \"plugin@marketplace\" spec to uninstall. When ambiguous, prefer the fully-qualified spec."
|
|
6688
|
+
},
|
|
6689
|
+
"directSourceId": {
|
|
6690
|
+
"type": [
|
|
6691
|
+
"string",
|
|
6692
|
+
"null"
|
|
6693
|
+
],
|
|
6694
|
+
"description": "Stable source identity for a direct (non-marketplace) install. Disambiguates uninstall when multiple installed plugins share the same name."
|
|
6695
|
+
}
|
|
6696
|
+
},
|
|
6697
|
+
"required": [
|
|
6698
|
+
"sessionId",
|
|
6699
|
+
"name"
|
|
6700
|
+
],
|
|
6701
|
+
"additionalProperties": false,
|
|
6702
|
+
"description": "Name (or spec) of the plugin to uninstall.",
|
|
6703
|
+
"title": "PluginsUninstallRequest"
|
|
6704
|
+
},
|
|
6705
|
+
"result": {
|
|
6706
|
+
"type": "null"
|
|
6707
|
+
},
|
|
6708
|
+
"stability": "experimental"
|
|
6709
|
+
},
|
|
6710
|
+
"update": {
|
|
6711
|
+
"rpcMethod": "session.plugins.update",
|
|
6712
|
+
"description": "Updates an installed plugin using the live session's authoritative account, working directory, and retained managed policy.",
|
|
6713
|
+
"params": {
|
|
6714
|
+
"type": "object",
|
|
6715
|
+
"properties": {
|
|
6716
|
+
"sessionId": {
|
|
6717
|
+
"type": "string",
|
|
6718
|
+
"description": "Target session identifier"
|
|
6719
|
+
},
|
|
6720
|
+
"name": {
|
|
6721
|
+
"type": "string",
|
|
6722
|
+
"description": "Plugin name or \"plugin@marketplace\" spec to update."
|
|
6723
|
+
}
|
|
6724
|
+
},
|
|
6725
|
+
"required": [
|
|
6726
|
+
"sessionId",
|
|
6727
|
+
"name"
|
|
6728
|
+
],
|
|
6729
|
+
"additionalProperties": false,
|
|
6730
|
+
"description": "Name (or spec) of the plugin to update.",
|
|
6731
|
+
"title": "PluginsUpdateRequest"
|
|
6732
|
+
},
|
|
6733
|
+
"result": {
|
|
6734
|
+
"$ref": "#/definitions/PluginUpdateResult",
|
|
6735
|
+
"description": "Result of updating a single plugin."
|
|
6736
|
+
},
|
|
6737
|
+
"stability": "experimental"
|
|
6738
|
+
},
|
|
6739
|
+
"enable": {
|
|
6740
|
+
"rpcMethod": "session.plugins.enable",
|
|
6741
|
+
"description": "Enables installed plugins when permitted by the live session's retained managed policy.",
|
|
6742
|
+
"params": {
|
|
6743
|
+
"type": "object",
|
|
6744
|
+
"properties": {
|
|
6745
|
+
"sessionId": {
|
|
6746
|
+
"type": "string",
|
|
6747
|
+
"description": "Target session identifier"
|
|
6748
|
+
},
|
|
6749
|
+
"names": {
|
|
6750
|
+
"type": "array",
|
|
6751
|
+
"items": {
|
|
6752
|
+
"type": "string"
|
|
6753
|
+
},
|
|
6754
|
+
"description": "Plugin names or \"plugin@marketplace\" specs to enable. Unknown names are ignored. Non-marketplace direct installs are always enabled and cannot be toggled via this API."
|
|
6755
|
+
}
|
|
6756
|
+
},
|
|
6757
|
+
"required": [
|
|
6758
|
+
"sessionId",
|
|
6759
|
+
"names"
|
|
6760
|
+
],
|
|
6761
|
+
"additionalProperties": false,
|
|
6762
|
+
"description": "Plugin names (or specs) to enable in the session's authoritative working directory.",
|
|
6763
|
+
"title": "SessionPluginsEnableRequest",
|
|
6764
|
+
"stability": "experimental"
|
|
6765
|
+
},
|
|
6766
|
+
"result": {
|
|
6767
|
+
"type": "null"
|
|
6768
|
+
},
|
|
6769
|
+
"stability": "experimental"
|
|
6770
|
+
},
|
|
6771
|
+
"disable": {
|
|
6772
|
+
"rpcMethod": "session.plugins.disable",
|
|
6773
|
+
"description": "Disables installed plugins when permitted by the live session's retained managed policy.",
|
|
6774
|
+
"params": {
|
|
6775
|
+
"type": "object",
|
|
6776
|
+
"properties": {
|
|
6777
|
+
"sessionId": {
|
|
6778
|
+
"type": "string",
|
|
6779
|
+
"description": "Target session identifier"
|
|
6780
|
+
},
|
|
6781
|
+
"names": {
|
|
6782
|
+
"type": "array",
|
|
6783
|
+
"items": {
|
|
6784
|
+
"type": "string"
|
|
6785
|
+
},
|
|
6786
|
+
"description": "Plugin names or \"plugin@marketplace\" specs to disable. Unknown names are ignored. Non-marketplace direct installs cannot be disabled via this API; uninstall them instead. Plugin-owned MCP servers are stopped in active sessions immediately; other plugin contributions remain available until each session reloads plugins."
|
|
6787
|
+
}
|
|
6788
|
+
},
|
|
6789
|
+
"required": [
|
|
6790
|
+
"sessionId",
|
|
6791
|
+
"names"
|
|
6792
|
+
],
|
|
6793
|
+
"additionalProperties": false,
|
|
6794
|
+
"description": "Plugin names (or specs) to disable in the session's authoritative working directory.",
|
|
6795
|
+
"title": "SessionPluginsDisableRequest",
|
|
6796
|
+
"stability": "experimental"
|
|
6797
|
+
},
|
|
6798
|
+
"result": {
|
|
6799
|
+
"type": "null"
|
|
6800
|
+
},
|
|
6801
|
+
"stability": "experimental"
|
|
6802
|
+
},
|
|
6803
|
+
"marketplaces": {
|
|
6804
|
+
"list": {
|
|
6805
|
+
"rpcMethod": "session.plugins.marketplaces.list",
|
|
6806
|
+
"description": "Lists registered and enterprise-managed desired marketplaces using the live session's retained policy.",
|
|
6807
|
+
"params": {
|
|
6808
|
+
"type": "object",
|
|
6809
|
+
"properties": {
|
|
6810
|
+
"sessionId": {
|
|
6811
|
+
"type": "string",
|
|
6812
|
+
"description": "Target session identifier"
|
|
6813
|
+
}
|
|
6814
|
+
},
|
|
6815
|
+
"required": [
|
|
6816
|
+
"sessionId"
|
|
6817
|
+
],
|
|
6818
|
+
"additionalProperties": false,
|
|
6819
|
+
"description": "Identifies the target session."
|
|
6820
|
+
},
|
|
6821
|
+
"result": {
|
|
6822
|
+
"$ref": "#/definitions/MarketplaceListResult",
|
|
6823
|
+
"description": "All registered marketplaces, including built-in defaults."
|
|
6824
|
+
},
|
|
6825
|
+
"stability": "experimental"
|
|
6826
|
+
},
|
|
6827
|
+
"add": {
|
|
6828
|
+
"rpcMethod": "session.plugins.marketplaces.add",
|
|
6829
|
+
"description": "Adds a marketplace when permitted by the live session's retained managed policy.",
|
|
6830
|
+
"params": {
|
|
6831
|
+
"type": "object",
|
|
6832
|
+
"properties": {
|
|
6833
|
+
"sessionId": {
|
|
6834
|
+
"type": "string",
|
|
6835
|
+
"description": "Target session identifier"
|
|
6836
|
+
},
|
|
6837
|
+
"source": {
|
|
6838
|
+
"type": "string",
|
|
6839
|
+
"description": "Marketplace source. Accepts the same forms as the CLI: \"owner/repo\" or \"owner/repo#ref\" (GitHub), an http/https/ssh URL (optionally with #ref), a git scp-style URL (user@host:path), or a local path. The marketplace's own name (from its manifest) is used as the registration key."
|
|
6840
|
+
},
|
|
6841
|
+
"workingDirectory": {
|
|
6842
|
+
"type": "string",
|
|
6843
|
+
"description": "Working directory used to resolve relative local paths in `source`. Defaults to the server's current working directory."
|
|
6844
|
+
}
|
|
6845
|
+
},
|
|
6846
|
+
"required": [
|
|
6847
|
+
"sessionId",
|
|
6848
|
+
"source"
|
|
6849
|
+
],
|
|
6850
|
+
"additionalProperties": false,
|
|
6851
|
+
"description": "Marketplace source and optional working directory for relative-path resolution.",
|
|
6852
|
+
"title": "PluginsMarketplacesAddRequest"
|
|
6853
|
+
},
|
|
6854
|
+
"result": {
|
|
6855
|
+
"$ref": "#/definitions/MarketplaceAddResult",
|
|
6856
|
+
"description": "Result of registering a new marketplace."
|
|
6857
|
+
},
|
|
6858
|
+
"stability": "experimental"
|
|
6859
|
+
},
|
|
6860
|
+
"remove": {
|
|
6861
|
+
"rpcMethod": "session.plugins.marketplaces.remove",
|
|
6862
|
+
"description": "Removes a marketplace when permitted by the live session's retained managed policy.",
|
|
6863
|
+
"params": {
|
|
6864
|
+
"type": "object",
|
|
6865
|
+
"properties": {
|
|
6866
|
+
"sessionId": {
|
|
6867
|
+
"type": "string",
|
|
6868
|
+
"description": "Target session identifier"
|
|
6869
|
+
},
|
|
6870
|
+
"name": {
|
|
6871
|
+
"type": "string",
|
|
6872
|
+
"description": "Marketplace name to remove"
|
|
6873
|
+
},
|
|
6874
|
+
"force": {
|
|
6875
|
+
"type": "boolean",
|
|
6876
|
+
"description": "When true, also uninstall every plugin sourced from this marketplace. When false (default), removal is a no-op if any plugin from this marketplace is installed and the dependent plugin names are returned in the result."
|
|
6877
|
+
}
|
|
6878
|
+
},
|
|
6879
|
+
"required": [
|
|
6880
|
+
"sessionId",
|
|
6881
|
+
"name"
|
|
6882
|
+
],
|
|
6883
|
+
"additionalProperties": false,
|
|
6884
|
+
"description": "Name of the marketplace to remove and an optional force flag.",
|
|
6885
|
+
"title": "PluginsMarketplacesRemoveRequest"
|
|
6886
|
+
},
|
|
6887
|
+
"result": {
|
|
6888
|
+
"$ref": "#/definitions/MarketplaceRemoveResult",
|
|
6889
|
+
"description": "Outcome of the remove attempt, including dependent-plugin info when applicable."
|
|
6890
|
+
},
|
|
6891
|
+
"stability": "experimental"
|
|
6892
|
+
},
|
|
6893
|
+
"browse": {
|
|
6894
|
+
"rpcMethod": "session.plugins.marketplaces.browse",
|
|
6895
|
+
"description": "Browses a marketplace resolved through the live session's working directory and retained managed policy.",
|
|
6896
|
+
"params": {
|
|
6897
|
+
"type": "object",
|
|
6898
|
+
"properties": {
|
|
6899
|
+
"sessionId": {
|
|
6900
|
+
"type": "string",
|
|
6901
|
+
"description": "Target session identifier"
|
|
6902
|
+
},
|
|
6903
|
+
"name": {
|
|
6904
|
+
"type": "string",
|
|
6905
|
+
"description": "Marketplace name to browse"
|
|
6906
|
+
}
|
|
6907
|
+
},
|
|
6908
|
+
"required": [
|
|
6909
|
+
"sessionId",
|
|
6910
|
+
"name"
|
|
6911
|
+
],
|
|
6912
|
+
"additionalProperties": false,
|
|
6913
|
+
"description": "Name of the marketplace whose plugin catalog to fetch.",
|
|
6914
|
+
"title": "PluginsMarketplacesBrowseRequest"
|
|
6915
|
+
},
|
|
6916
|
+
"result": {
|
|
6917
|
+
"$ref": "#/definitions/MarketplaceBrowseResult",
|
|
6918
|
+
"description": "Plugins advertised by the marketplace."
|
|
6919
|
+
},
|
|
6920
|
+
"stability": "experimental"
|
|
6921
|
+
},
|
|
6922
|
+
"refresh": {
|
|
6923
|
+
"rpcMethod": "session.plugins.marketplaces.refresh",
|
|
6924
|
+
"description": "Refreshes marketplaces resolved through the live session's working directory and retained managed policy.",
|
|
6925
|
+
"params": {
|
|
6926
|
+
"anyOf": [
|
|
6927
|
+
{
|
|
6928
|
+
"not": {}
|
|
6929
|
+
},
|
|
6930
|
+
{
|
|
6931
|
+
"type": "object",
|
|
6932
|
+
"properties": {
|
|
6933
|
+
"sessionId": {
|
|
6934
|
+
"type": "string",
|
|
6935
|
+
"description": "Target session identifier"
|
|
6936
|
+
},
|
|
6937
|
+
"name": {
|
|
6938
|
+
"type": "string",
|
|
6939
|
+
"description": "Marketplace name to refresh. When omitted, every registered marketplace is refreshed."
|
|
6940
|
+
}
|
|
6941
|
+
},
|
|
6942
|
+
"required": [
|
|
6943
|
+
"sessionId"
|
|
6944
|
+
],
|
|
6945
|
+
"additionalProperties": false
|
|
6946
|
+
}
|
|
6947
|
+
],
|
|
6948
|
+
"description": "Optional marketplace name; omit to refresh all.",
|
|
6949
|
+
"title": "PluginsMarketplacesRefreshRequest"
|
|
6950
|
+
},
|
|
6951
|
+
"result": {
|
|
6952
|
+
"$ref": "#/definitions/MarketplaceRefreshResult",
|
|
6953
|
+
"description": "Result of refreshing one or more marketplace catalogs."
|
|
6954
|
+
},
|
|
6955
|
+
"stability": "experimental"
|
|
6956
|
+
}
|
|
6957
|
+
},
|
|
6012
6958
|
"reload": {
|
|
6013
6959
|
"rpcMethod": "session.plugins.reload",
|
|
6014
6960
|
"description": "Reloads the session's plugin set, refreshing MCP servers, custom agents, hooks, and skills cache so SDK-driven changes via `server.plugins.*` take effect immediately.",
|
|
@@ -9364,6 +10310,100 @@
|
|
|
9364
10310
|
},
|
|
9365
10311
|
"stability": "experimental"
|
|
9366
10312
|
},
|
|
10313
|
+
"withdrawMessage": {
|
|
10314
|
+
"rpcMethod": "session.queue.withdrawMessage",
|
|
10315
|
+
"description": "Atomically withdraws an unchanged, unconsumed user message from the local queued or steering lane. A client retaining the original draft may restore it only when removed is true. Does not interrupt the running turn.",
|
|
10316
|
+
"params": {
|
|
10317
|
+
"type": "object",
|
|
10318
|
+
"properties": {
|
|
10319
|
+
"sessionId": {
|
|
10320
|
+
"type": "string",
|
|
10321
|
+
"description": "Target session identifier"
|
|
10322
|
+
},
|
|
10323
|
+
"messageId": {
|
|
10324
|
+
"type": "string",
|
|
10325
|
+
"description": "Message identity returned by send, not the queue item id. Batch messages are not eligible."
|
|
10326
|
+
},
|
|
10327
|
+
"expectedPrompt": {
|
|
10328
|
+
"type": "string",
|
|
10329
|
+
"description": "The prompt originally sent. A message edited since submission is not withdrawn, so an obsolete draft cannot replace the edit."
|
|
10330
|
+
}
|
|
10331
|
+
},
|
|
10332
|
+
"required": [
|
|
10333
|
+
"sessionId",
|
|
10334
|
+
"messageId",
|
|
10335
|
+
"expectedPrompt"
|
|
10336
|
+
],
|
|
10337
|
+
"additionalProperties": false,
|
|
10338
|
+
"description": "Conditional withdrawal of a single user message, before the runtime claims it for delivery.",
|
|
10339
|
+
"title": "QueueWithdrawMessageRequest",
|
|
10340
|
+
"stability": "experimental"
|
|
10341
|
+
},
|
|
10342
|
+
"result": {
|
|
10343
|
+
"$ref": "#/definitions/QueueRemoveAtResult",
|
|
10344
|
+
"description": "Result of removing a queued item."
|
|
10345
|
+
},
|
|
10346
|
+
"stability": "experimental"
|
|
10347
|
+
},
|
|
10348
|
+
"appendSteering": {
|
|
10349
|
+
"rpcMethod": "session.queue.appendSteering",
|
|
10350
|
+
"description": "Atomically appends text and attachments to an unchanged, unconsumed local steering message. Returns updated=false if delivery or withdrawal already claimed the message.",
|
|
10351
|
+
"params": {
|
|
10352
|
+
"type": "object",
|
|
10353
|
+
"properties": {
|
|
10354
|
+
"sessionId": {
|
|
10355
|
+
"type": "string",
|
|
10356
|
+
"description": "Target session identifier"
|
|
10357
|
+
},
|
|
10358
|
+
"messageId": {
|
|
10359
|
+
"type": "string",
|
|
10360
|
+
"description": "Message identity returned by send, not the queue item id. Only unclaimed user steering messages are eligible."
|
|
10361
|
+
},
|
|
10362
|
+
"expectedPrompt": {
|
|
10363
|
+
"type": "string",
|
|
10364
|
+
"description": "Expected current prompt, including any previous appends. The runtime applies plan-mode normalization before comparing and refuses a changed message."
|
|
10365
|
+
},
|
|
10366
|
+
"agentMode": {
|
|
10367
|
+
"$ref": "#/definitions/SendAgentMode",
|
|
10368
|
+
"description": "Mode captured at submission. Only steering messages in the same mode may be combined."
|
|
10369
|
+
},
|
|
10370
|
+
"prompt": {
|
|
10371
|
+
"type": "string",
|
|
10372
|
+
"description": "Text to append after a blank line."
|
|
10373
|
+
},
|
|
10374
|
+
"displayPrompt": {
|
|
10375
|
+
"type": "string",
|
|
10376
|
+
"description": "Display text to append to the existing preview after a blank line."
|
|
10377
|
+
},
|
|
10378
|
+
"attachments": {
|
|
10379
|
+
"type": "array",
|
|
10380
|
+
"items": {
|
|
10381
|
+
"$ref": "#/definitions/Attachment",
|
|
10382
|
+
"description": "A user message attachment — a file, directory, code selection, blob, GitHub-anchored pointer, or extension-supplied context payload"
|
|
10383
|
+
},
|
|
10384
|
+
"description": "Attachments to add after the message's existing attachments. An empty list preserves the existing attachments."
|
|
10385
|
+
}
|
|
10386
|
+
},
|
|
10387
|
+
"required": [
|
|
10388
|
+
"sessionId",
|
|
10389
|
+
"messageId",
|
|
10390
|
+
"expectedPrompt",
|
|
10391
|
+
"agentMode",
|
|
10392
|
+
"prompt",
|
|
10393
|
+
"displayPrompt",
|
|
10394
|
+
"attachments"
|
|
10395
|
+
],
|
|
10396
|
+
"additionalProperties": false,
|
|
10397
|
+
"description": "Append to one pending steering message without changing its identity or delivery position.",
|
|
10398
|
+
"title": "QueueAppendSteeringRequest",
|
|
10399
|
+
"stability": "experimental"
|
|
10400
|
+
},
|
|
10401
|
+
"result": {
|
|
10402
|
+
"$ref": "#/definitions/QueueUpdateTextResult",
|
|
10403
|
+
"description": "Result of editing a queued message."
|
|
10404
|
+
},
|
|
10405
|
+
"stability": "experimental"
|
|
10406
|
+
},
|
|
9367
10407
|
"duplicateAt": {
|
|
9368
10408
|
"rpcMethod": "session.queue.duplicateAt",
|
|
9369
10409
|
"description": "Duplicates an addressable queued item immediately after its source.",
|
|
@@ -10541,6 +11581,88 @@
|
|
|
10541
11581
|
"stability": "experimental"
|
|
10542
11582
|
}
|
|
10543
11583
|
},
|
|
11584
|
+
"workflow": {
|
|
11585
|
+
"execute": {
|
|
11586
|
+
"rpcMethod": "workflow.execute",
|
|
11587
|
+
"description": "Asks the owning extension connection to execute a registered dynamic workflow.",
|
|
11588
|
+
"params": {
|
|
11589
|
+
"type": "object",
|
|
11590
|
+
"properties": {
|
|
11591
|
+
"sessionId": {
|
|
11592
|
+
"type": "string",
|
|
11593
|
+
"description": "Target session identifier"
|
|
11594
|
+
},
|
|
11595
|
+
"name": {
|
|
11596
|
+
"type": "string",
|
|
11597
|
+
"description": "Registered workflow name."
|
|
11598
|
+
},
|
|
11599
|
+
"runId": {
|
|
11600
|
+
"type": "string",
|
|
11601
|
+
"description": "Workflow run identifier."
|
|
11602
|
+
},
|
|
11603
|
+
"executionToken": {
|
|
11604
|
+
"type": "string",
|
|
11605
|
+
"description": "Opaque token identifying this workflow execution attempt."
|
|
11606
|
+
},
|
|
11607
|
+
"args": {
|
|
11608
|
+
"description": "Workflow input value.",
|
|
11609
|
+
"x-opaque-json": true
|
|
11610
|
+
}
|
|
11611
|
+
},
|
|
11612
|
+
"required": [
|
|
11613
|
+
"sessionId",
|
|
11614
|
+
"name",
|
|
11615
|
+
"runId",
|
|
11616
|
+
"executionToken",
|
|
11617
|
+
"args"
|
|
11618
|
+
],
|
|
11619
|
+
"additionalProperties": false,
|
|
11620
|
+
"description": "Parameters sent to the owning extension to execute a workflow closure.",
|
|
11621
|
+
"title": "WorkflowExecuteRequest",
|
|
11622
|
+
"stability": "experimental"
|
|
11623
|
+
},
|
|
11624
|
+
"result": {
|
|
11625
|
+
"$ref": "#/definitions/WorkflowExecuteResult",
|
|
11626
|
+
"description": "Result returned by an extension workflow closure."
|
|
11627
|
+
},
|
|
11628
|
+
"stability": "experimental"
|
|
11629
|
+
},
|
|
11630
|
+
"abort": {
|
|
11631
|
+
"rpcMethod": "workflow.abort",
|
|
11632
|
+
"description": "Asks the owning extension connection to abort a running dynamic workflow cooperatively.",
|
|
11633
|
+
"params": {
|
|
11634
|
+
"type": "object",
|
|
11635
|
+
"properties": {
|
|
11636
|
+
"sessionId": {
|
|
11637
|
+
"type": "string",
|
|
11638
|
+
"description": "Target session identifier"
|
|
11639
|
+
},
|
|
11640
|
+
"runId": {
|
|
11641
|
+
"type": "string",
|
|
11642
|
+
"description": "Workflow run identifier."
|
|
11643
|
+
},
|
|
11644
|
+
"executionToken": {
|
|
11645
|
+
"type": "string",
|
|
11646
|
+
"description": "Opaque token identifying the execution attempt to abort."
|
|
11647
|
+
}
|
|
11648
|
+
},
|
|
11649
|
+
"required": [
|
|
11650
|
+
"sessionId",
|
|
11651
|
+
"runId",
|
|
11652
|
+
"executionToken"
|
|
11653
|
+
],
|
|
11654
|
+
"additionalProperties": false,
|
|
11655
|
+
"description": "Parameters for cooperatively aborting a workflow body.",
|
|
11656
|
+
"title": "WorkflowAbortRequest",
|
|
11657
|
+
"stability": "experimental"
|
|
11658
|
+
},
|
|
11659
|
+
"result": {
|
|
11660
|
+
"$ref": "#/definitions/WorkflowAckResult",
|
|
11661
|
+
"description": "Acknowledgement that a workflow request was accepted."
|
|
11662
|
+
},
|
|
11663
|
+
"stability": "experimental"
|
|
11664
|
+
}
|
|
11665
|
+
},
|
|
10544
11666
|
"tasks": {
|
|
10545
11667
|
"cancel": {
|
|
10546
11668
|
"rpcMethod": "tasks.cancel",
|
|
@@ -14108,6 +15230,164 @@
|
|
|
14108
15230
|
"description": "SHA-256 digest encoded as exactly 64 lowercase hexadecimal characters.",
|
|
14109
15231
|
"title": "CardDigestValue"
|
|
14110
15232
|
},
|
|
15233
|
+
"CatalogAgentPluginCandidate": {
|
|
15234
|
+
"type": "object",
|
|
15235
|
+
"properties": {
|
|
15236
|
+
"kind": {
|
|
15237
|
+
"$ref": "#/definitions/CatalogAgentPluginCandidateKind",
|
|
15238
|
+
"const": "plugin",
|
|
15239
|
+
"description": "Discriminator: this candidate describes an Agent Plugin."
|
|
15240
|
+
},
|
|
15241
|
+
"mediaType": {
|
|
15242
|
+
"$ref": "#/definitions/CatalogAgentPluginMediaType",
|
|
15243
|
+
"description": "Canonical Agent Plugin media type."
|
|
15244
|
+
},
|
|
15245
|
+
"identity": {
|
|
15246
|
+
"$ref": "#/definitions/CatalogResourceIdentity",
|
|
15247
|
+
"description": "Validated, normalised catalogue resource URN. This identity comes only from the catalog identifier and is never inferred from display text or installed-plugin state."
|
|
15248
|
+
},
|
|
15249
|
+
"version": {
|
|
15250
|
+
"$ref": "#/definitions/CatalogResourceVersion",
|
|
15251
|
+
"description": "Optional version declared by the catalog source. Omitted rather than guessed when the source supplies no version."
|
|
15252
|
+
},
|
|
15253
|
+
"displayName": {
|
|
15254
|
+
"type": "string",
|
|
15255
|
+
"maxLength": 200,
|
|
15256
|
+
"description": "Display name taken verbatim from the card. Inert untrusted text."
|
|
15257
|
+
},
|
|
15258
|
+
"description": {
|
|
15259
|
+
"type": "string",
|
|
15260
|
+
"maxLength": 1000,
|
|
15261
|
+
"description": "Description taken verbatim from the card. Inert untrusted text."
|
|
15262
|
+
},
|
|
15263
|
+
"publisher": {
|
|
15264
|
+
"type": "string",
|
|
15265
|
+
"maxLength": 200,
|
|
15266
|
+
"description": "Publisher taken verbatim from the card. Inert untrusted text."
|
|
15267
|
+
},
|
|
15268
|
+
"source": {
|
|
15269
|
+
"$ref": "#/definitions/CatalogPluginRepositorySource",
|
|
15270
|
+
"description": "Bounded repository provenance declared through the catalog's sourceSet and repoPath metadata. It contains no descriptor URL."
|
|
15271
|
+
},
|
|
15272
|
+
"compatibilityTags": {
|
|
15273
|
+
"allOf": [
|
|
15274
|
+
{
|
|
15275
|
+
"if": {
|
|
15276
|
+
"contains": {
|
|
15277
|
+
"const": "canvas-only"
|
|
15278
|
+
}
|
|
15279
|
+
},
|
|
15280
|
+
"then": {
|
|
15281
|
+
"allOf": [
|
|
15282
|
+
{
|
|
15283
|
+
"contains": {
|
|
15284
|
+
"const": "canvas"
|
|
15285
|
+
}
|
|
15286
|
+
},
|
|
15287
|
+
{
|
|
15288
|
+
"contains": {
|
|
15289
|
+
"const": "github-copilot"
|
|
15290
|
+
}
|
|
15291
|
+
}
|
|
15292
|
+
]
|
|
15293
|
+
}
|
|
15294
|
+
}
|
|
15295
|
+
],
|
|
15296
|
+
"type": "array",
|
|
15297
|
+
"items": {
|
|
15298
|
+
"$ref": "#/definitions/CatalogAgentPluginCompatibilityTag",
|
|
15299
|
+
"description": "Explicit Agent Plugin compatibility declared by exact catalog tags. Clients must not infer these values from display text or other metadata."
|
|
15300
|
+
},
|
|
15301
|
+
"maxItems": 3,
|
|
15302
|
+
"uniqueItems": true,
|
|
15303
|
+
"description": "Explicit validated compatibility tags, in canonical order. An empty list means the source declared no recognised compatibility; clients must not infer compatibility from other fields. `canvas-only` requires both `canvas` and `github-copilot`.",
|
|
15304
|
+
"x-typescript-type": "CatalogAgentPluginCompatibilityTag[]"
|
|
15305
|
+
},
|
|
15306
|
+
"provenance": {
|
|
15307
|
+
"$ref": "#/definitions/CatalogAgentPluginCandidateProvenance",
|
|
15308
|
+
"description": "Where the Agent Plugin catalog reference was observed, without its descriptor, URL, raw data, or content digest."
|
|
15309
|
+
},
|
|
15310
|
+
"trust": {
|
|
15311
|
+
"$ref": "#/definitions/CatalogTrustSnapshot",
|
|
15312
|
+
"description": "Versioned trust metadata observed from the catalog authority. Optional for protocol-3 compatibility and emitted only when the caller also requires the trust-snapshot capability."
|
|
15313
|
+
}
|
|
15314
|
+
},
|
|
15315
|
+
"required": [
|
|
15316
|
+
"kind",
|
|
15317
|
+
"mediaType",
|
|
15318
|
+
"identity",
|
|
15319
|
+
"displayName",
|
|
15320
|
+
"source",
|
|
15321
|
+
"compatibilityTags",
|
|
15322
|
+
"provenance"
|
|
15323
|
+
],
|
|
15324
|
+
"additionalProperties": false,
|
|
15325
|
+
"description": "An inert Agent Plugin catalog result. Its canonical catalog identity, declared version, repository source claim, and explicit compatibility tags are safe to correlate, while its descriptor, URL, raw data, and installed-plugin state remain runtime-private. This contract-only variant does not mint or expose a candidate handle.",
|
|
15326
|
+
"title": "CatalogAgentPluginCandidate"
|
|
15327
|
+
},
|
|
15328
|
+
"CatalogAgentPluginCandidateKind": {
|
|
15329
|
+
"type": "string",
|
|
15330
|
+
"enum": [
|
|
15331
|
+
"plugin"
|
|
15332
|
+
],
|
|
15333
|
+
"description": "Discriminator for an Agent Plugin candidate",
|
|
15334
|
+
"title": "CatalogAgentPluginCandidateKind",
|
|
15335
|
+
"x-enumDescriptions": {
|
|
15336
|
+
"plugin": "An Agent Plugin."
|
|
15337
|
+
}
|
|
15338
|
+
},
|
|
15339
|
+
"CatalogAgentPluginCandidateProvenance": {
|
|
15340
|
+
"type": "object",
|
|
15341
|
+
"properties": {
|
|
15342
|
+
"authority": {
|
|
15343
|
+
"type": "string",
|
|
15344
|
+
"minLength": 1,
|
|
15345
|
+
"description": "Host of the catalog authority that advertised the reference, without path, query, or credentials. Inert untrusted data."
|
|
15346
|
+
},
|
|
15347
|
+
"observedAt": {
|
|
15348
|
+
"type": "string",
|
|
15349
|
+
"description": "ISO 8601 timestamp at which the runtime observed the catalog reference. This is not a retrieval or validation timestamp."
|
|
15350
|
+
},
|
|
15351
|
+
"mediaType": {
|
|
15352
|
+
"$ref": "#/definitions/CatalogAgentPluginMediaType",
|
|
15353
|
+
"description": "Canonical Agent Plugin media type."
|
|
15354
|
+
}
|
|
15355
|
+
},
|
|
15356
|
+
"required": [
|
|
15357
|
+
"authority",
|
|
15358
|
+
"observedAt",
|
|
15359
|
+
"mediaType"
|
|
15360
|
+
],
|
|
15361
|
+
"additionalProperties": false,
|
|
15362
|
+
"description": "Where and when an Agent Plugin catalog reference was observed. Discovery provenance deliberately carries no descriptor URL, raw data, candidate handle, or content digest.",
|
|
15363
|
+
"title": "CatalogAgentPluginCandidateProvenance"
|
|
15364
|
+
},
|
|
15365
|
+
"CatalogAgentPluginCompatibilityTag": {
|
|
15366
|
+
"type": "string",
|
|
15367
|
+
"enum": [
|
|
15368
|
+
"canvas",
|
|
15369
|
+
"canvas-only",
|
|
15370
|
+
"github-copilot"
|
|
15371
|
+
],
|
|
15372
|
+
"description": "Explicit Agent Plugin compatibility declared by exact catalog tags. Clients must not infer these values from display text or other metadata.",
|
|
15373
|
+
"title": "CatalogAgentPluginCompatibilityTag",
|
|
15374
|
+
"x-enumDescriptions": {
|
|
15375
|
+
"canvas": "The plugin contributes at least one GitHub Copilot Canvas.",
|
|
15376
|
+
"canvas-only": "The plugin depends on Canvas for its intended functionality.",
|
|
15377
|
+
"github-copilot": "The plugin targets GitHub Copilot."
|
|
15378
|
+
}
|
|
15379
|
+
},
|
|
15380
|
+
"CatalogAgentPluginMediaType": {
|
|
15381
|
+
"type": "string",
|
|
15382
|
+
"enum": [
|
|
15383
|
+
"application/vnd.github.copilot-plugin"
|
|
15384
|
+
],
|
|
15385
|
+
"description": "Canonical Agent Plugin media type",
|
|
15386
|
+
"title": "CatalogAgentPluginMediaType",
|
|
15387
|
+
"x-enumDescriptions": {
|
|
15388
|
+
"application/vnd.github.copilot-plugin": "A GitHub Copilot Agent Plugin descriptor."
|
|
15389
|
+
}
|
|
15390
|
+
},
|
|
14111
15391
|
"CatalogAiSkillCandidate": {
|
|
14112
15392
|
"type": "object",
|
|
14113
15393
|
"properties": {
|
|
@@ -14121,17 +15401,17 @@
|
|
|
14121
15401
|
"description": "ISO 8601 timestamp after which the handle is stale and will be rejected."
|
|
14122
15402
|
},
|
|
14123
15403
|
"kind": {
|
|
14124
|
-
"
|
|
15404
|
+
"$ref": "#/definitions/CatalogAiSkillCandidateKind",
|
|
14125
15405
|
"const": "ai-skill",
|
|
14126
15406
|
"description": "Discriminator: this candidate describes an AI skill"
|
|
14127
15407
|
},
|
|
14128
15408
|
"mediaType": {
|
|
14129
|
-
"
|
|
15409
|
+
"$ref": "#/definitions/CatalogAiSkillMediaType",
|
|
14130
15410
|
"const": "application/ai-skill",
|
|
14131
15411
|
"description": "Media type of the underlying AI skill card"
|
|
14132
15412
|
},
|
|
14133
15413
|
"installability": {
|
|
14134
|
-
"
|
|
15414
|
+
"$ref": "#/definitions/CatalogAiSkillInstallability",
|
|
14135
15415
|
"const": "not-installable-kind",
|
|
14136
15416
|
"description": "AI skills are discovery-only and cannot be installed through this surface"
|
|
14137
15417
|
},
|
|
@@ -14177,6 +15457,17 @@
|
|
|
14177
15457
|
"description": "An inert AI skill catalog result. AI skills are discovery-only and cannot be represented as installable through this surface.",
|
|
14178
15458
|
"title": "CatalogAiSkillCandidate"
|
|
14179
15459
|
},
|
|
15460
|
+
"CatalogAiSkillCandidateKind": {
|
|
15461
|
+
"type": "string",
|
|
15462
|
+
"enum": [
|
|
15463
|
+
"ai-skill"
|
|
15464
|
+
],
|
|
15465
|
+
"description": "Discriminator for an AI skill candidate",
|
|
15466
|
+
"title": "CatalogAiSkillCandidateKind",
|
|
15467
|
+
"x-enumDescriptions": {
|
|
15468
|
+
"ai-skill": "An AI skill."
|
|
15469
|
+
}
|
|
15470
|
+
},
|
|
14180
15471
|
"CatalogAiSkillCandidateProvenance": {
|
|
14181
15472
|
"type": "object",
|
|
14182
15473
|
"properties": {
|
|
@@ -14190,7 +15481,7 @@
|
|
|
14190
15481
|
"description": "ISO 8601 timestamp at which the runtime observed the catalog reference. This is not a retrieval or validation timestamp."
|
|
14191
15482
|
},
|
|
14192
15483
|
"mediaType": {
|
|
14193
|
-
"
|
|
15484
|
+
"$ref": "#/definitions/CatalogAiSkillMediaType",
|
|
14194
15485
|
"const": "application/ai-skill",
|
|
14195
15486
|
"description": "Media type advertised for the referenced AI skill card"
|
|
14196
15487
|
}
|
|
@@ -14204,6 +15495,28 @@
|
|
|
14204
15495
|
"description": "Where and when an AI skill catalog reference was observed. Discovery provenance deliberately carries no content digest because search does not establish the exact validated content a later plan will bind.",
|
|
14205
15496
|
"title": "CatalogAiSkillCandidateProvenance"
|
|
14206
15497
|
},
|
|
15498
|
+
"CatalogAiSkillInstallability": {
|
|
15499
|
+
"type": "string",
|
|
15500
|
+
"enum": [
|
|
15501
|
+
"not-installable-kind"
|
|
15502
|
+
],
|
|
15503
|
+
"description": "Typed non-installable state for an AI skill candidate",
|
|
15504
|
+
"title": "CatalogAiSkillInstallability",
|
|
15505
|
+
"x-enumDescriptions": {
|
|
15506
|
+
"not-installable-kind": "AI skills are discovery-only on this surface."
|
|
15507
|
+
}
|
|
15508
|
+
},
|
|
15509
|
+
"CatalogAiSkillMediaType": {
|
|
15510
|
+
"type": "string",
|
|
15511
|
+
"enum": [
|
|
15512
|
+
"application/ai-skill"
|
|
15513
|
+
],
|
|
15514
|
+
"description": "Canonical AI skill media type",
|
|
15515
|
+
"title": "CatalogAiSkillMediaType",
|
|
15516
|
+
"x-enumDescriptions": {
|
|
15517
|
+
"application/ai-skill": "An AI skill card."
|
|
15518
|
+
}
|
|
15519
|
+
},
|
|
14207
15520
|
"CatalogAuthenticationRequiredError": {
|
|
14208
15521
|
"type": "object",
|
|
14209
15522
|
"properties": {
|
|
@@ -14255,22 +15568,28 @@
|
|
|
14255
15568
|
{
|
|
14256
15569
|
"$ref": "#/definitions/CatalogAiSkillCandidate",
|
|
14257
15570
|
"description": "An inert AI skill catalog result. AI skills are discovery-only and cannot be represented as installable through this surface."
|
|
15571
|
+
},
|
|
15572
|
+
{
|
|
15573
|
+
"$ref": "#/definitions/CatalogAgentPluginCandidate",
|
|
15574
|
+
"description": "An inert Agent Plugin catalog result. Its canonical catalog identity, declared version, repository source claim, and explicit compatibility tags are safe to correlate, while its descriptor, URL, raw data, and installed-plugin state remain runtime-private. This contract-only variant does not mint or expose a candidate handle."
|
|
14258
15575
|
}
|
|
14259
15576
|
],
|
|
14260
|
-
"description": "One inert catalog result, represented as an MCP server
|
|
15577
|
+
"description": "One inert catalog result, represented as an MCP server, discovery-only AI skill, or opt-in Agent Plugin variant so kind, media type, provenance, and available operations cannot contradict each other.",
|
|
14261
15578
|
"title": "CatalogCandidate"
|
|
14262
15579
|
},
|
|
14263
15580
|
"CatalogCandidateKind": {
|
|
14264
15581
|
"type": "string",
|
|
14265
15582
|
"enum": [
|
|
14266
15583
|
"mcp-server",
|
|
14267
|
-
"ai-skill"
|
|
15584
|
+
"ai-skill",
|
|
15585
|
+
"plugin"
|
|
14268
15586
|
],
|
|
14269
15587
|
"description": "What kind of resource a catalog candidate describes",
|
|
14270
15588
|
"title": "CatalogCandidateKind",
|
|
14271
15589
|
"x-enumDescriptions": {
|
|
14272
15590
|
"mcp-server": "An MCP server, which can be planned for installation.",
|
|
14273
|
-
"ai-skill": "An AI skill, which is discoverable but not installable through this surface."
|
|
15591
|
+
"ai-skill": "An AI skill, which is discoverable but not installable through this surface.",
|
|
15592
|
+
"plugin": "An inert Agent Plugin candidate, available only when explicitly requested."
|
|
14274
15593
|
}
|
|
14275
15594
|
},
|
|
14276
15595
|
"CatalogCandidateSource": {
|
|
@@ -14331,9 +15650,12 @@
|
|
|
14331
15650
|
"mcp-server-card",
|
|
14332
15651
|
"legacy-mcp-server-card",
|
|
14333
15652
|
"ai-skill-discovery",
|
|
15653
|
+
"agent-plugin-discovery",
|
|
14334
15654
|
"mcp-install-planning",
|
|
14335
15655
|
"multiple-transport-choice",
|
|
14336
|
-
"
|
|
15656
|
+
"catalog-search-pagination",
|
|
15657
|
+
"trust-snapshot",
|
|
15658
|
+
"catalog-selection"
|
|
14337
15659
|
],
|
|
14338
15660
|
"description": "A wire feature a caller can require of the catalog surface, negotiated per request. A grant means the runtime understands the feature's contract, not that the deployment has enabled the operation; typed unavailable results report availability separately.",
|
|
14339
15661
|
"title": "CatalogCapability",
|
|
@@ -14341,9 +15663,12 @@
|
|
|
14341
15663
|
"mcp-server-card": "Understands the current `application/mcp-server-card+json` media type.",
|
|
14342
15664
|
"legacy-mcp-server-card": "Understands the legacy `application/mcp-server+json` media type.",
|
|
14343
15665
|
"ai-skill-discovery": "Understands `application/ai-skill` candidates as discovery-only and typed non-installable.",
|
|
15666
|
+
"agent-plugin-discovery": "Understands opt-in `application/vnd.github.copilot-plugin` candidates and their typed identity, version, source, and compatibility fields.",
|
|
14344
15667
|
"mcp-install-planning": "Understands side-effect-free MCP install-plan requests, results, and plan handles; `planning-unavailable` separately reports that planning is not enabled.",
|
|
14345
15668
|
"multiple-transport-choice": "Understands plans that enumerate every eligible transport rather than a single preferred one.",
|
|
14346
|
-
"
|
|
15669
|
+
"catalog-search-pagination": "Understands explicit numbered navigation and authority-reported pagination metadata with opaque tokens. Advertised and granted only when requested.",
|
|
15670
|
+
"trust-snapshot": "Understands versioned candidate trust snapshots. Protocol-3 callers must require this capability before the runtime adds the optional snapshot field.",
|
|
15671
|
+
"catalog-selection": "Understands exact candidate selection through model-safe opaque references and host-only candidate-handle hand-off."
|
|
14347
15672
|
}
|
|
14348
15673
|
},
|
|
14349
15674
|
"CatalogCapabilityId": {
|
|
@@ -14422,7 +15747,7 @@
|
|
|
14422
15747
|
"x-enumDescriptions": {
|
|
14423
15748
|
"both-url-and-data": "A result carried both a URL and embedded data, when exactly one is permitted.",
|
|
14424
15749
|
"neither-url-nor-data": "A result carried neither a URL nor embedded data, when exactly one is required.",
|
|
14425
|
-
"duplicate-identity": "Two results claimed the same normalised identity.",
|
|
15750
|
+
"duplicate-identity": "Two results claimed the same collision key: normalised identity for existing kinds, or normalised identity and declared version for Agent Plugins.",
|
|
14426
15751
|
"unknown-media-type": "A result declared no media type, or one this contract does not model."
|
|
14427
15752
|
}
|
|
14428
15753
|
},
|
|
@@ -14464,28 +15789,34 @@
|
|
|
14464
15789
|
"invalid",
|
|
14465
15790
|
"stale",
|
|
14466
15791
|
"replayed",
|
|
14467
|
-
"foreign"
|
|
15792
|
+
"foreign",
|
|
15793
|
+
"wrong-kind",
|
|
15794
|
+
"search-mismatch"
|
|
14468
15795
|
],
|
|
14469
15796
|
"description": "Why a presented handle was rejected",
|
|
14470
15797
|
"title": "CatalogHandleRejectionReason",
|
|
14471
15798
|
"x-enumDescriptions": {
|
|
14472
|
-
"invalid": "The handle is unparseable
|
|
15799
|
+
"invalid": "The handle is unparseable or unknown.",
|
|
14473
15800
|
"stale": "The handle's time to live has elapsed.",
|
|
14474
15801
|
"replayed": "The handle has already been used, and handles are single-use.",
|
|
14475
|
-
"foreign": "The handle was issued by a different runtime instance."
|
|
15802
|
+
"foreign": "The handle was issued by a different runtime instance or session.",
|
|
15803
|
+
"wrong-kind": "The handle was issued for another catalog operation.",
|
|
15804
|
+
"search-mismatch": "The supplied search identifier does not match the retained candidate."
|
|
14476
15805
|
}
|
|
14477
15806
|
},
|
|
14478
15807
|
"CatalogHandleType": {
|
|
14479
15808
|
"type": "string",
|
|
14480
15809
|
"enum": [
|
|
14481
15810
|
"candidate",
|
|
14482
|
-
"plan"
|
|
15811
|
+
"plan",
|
|
15812
|
+
"selection"
|
|
14483
15813
|
],
|
|
14484
15814
|
"description": "Which kind of opaque handle was presented",
|
|
14485
15815
|
"title": "CatalogHandleType",
|
|
14486
15816
|
"x-enumDescriptions": {
|
|
14487
15817
|
"candidate": "A search candidate handle.",
|
|
14488
|
-
"plan": "An install plan handle."
|
|
15818
|
+
"plan": "An install plan handle.",
|
|
15819
|
+
"selection": "A model-safe reference to one retained search candidate."
|
|
14489
15820
|
}
|
|
14490
15821
|
},
|
|
14491
15822
|
"CatalogInvalidRequestError": {
|
|
@@ -14512,7 +15843,7 @@
|
|
|
14512
15843
|
"message"
|
|
14513
15844
|
],
|
|
14514
15845
|
"additionalProperties": false,
|
|
14515
|
-
"description": "The request was rejected
|
|
15846
|
+
"description": "The request was rejected because a bounded field fell outside its permitted range or a required field was unusable. Pagination may also be rejected by the authority after a continuation request; repeat the search without page.",
|
|
14516
15847
|
"title": "CatalogInvalidRequestError"
|
|
14517
15848
|
},
|
|
14518
15849
|
"CatalogInvalidRequestField": {
|
|
@@ -14524,9 +15855,13 @@
|
|
|
14524
15855
|
"contract",
|
|
14525
15856
|
"source",
|
|
14526
15857
|
"card",
|
|
14527
|
-
"scope"
|
|
15858
|
+
"scope",
|
|
15859
|
+
"page",
|
|
15860
|
+
"sessionId",
|
|
15861
|
+
"selectionRef",
|
|
15862
|
+
"outcome"
|
|
14528
15863
|
],
|
|
14529
|
-
"description": "Which request field was rejected
|
|
15864
|
+
"description": "Which request field was rejected locally or by the catalog authority",
|
|
14530
15865
|
"title": "CatalogInvalidRequestField",
|
|
14531
15866
|
"x-enumDescriptions": {
|
|
14532
15867
|
"query": "The search query was empty or longer than permitted.",
|
|
@@ -14535,7 +15870,11 @@
|
|
|
14535
15870
|
"contract": "The negotiation block was missing or malformed.",
|
|
14536
15871
|
"source": "The plan source was missing or malformed.",
|
|
14537
15872
|
"card": "The supplied card was missing its media type, URL, or data.",
|
|
14538
|
-
"scope": "The requested configuration scope is not one this runtime writes."
|
|
15873
|
+
"scope": "The requested configuration scope is not one this runtime writes.",
|
|
15874
|
+
"page": "The pagination token or target was invalid, or the authority rejected the continuation. Repeat the search without page.",
|
|
15875
|
+
"sessionId": "The locally owned session identifier was missing or malformed.",
|
|
15876
|
+
"selectionRef": "The opaque selection reference was missing or malformed.",
|
|
15877
|
+
"outcome": "The terminal selection outcome was missing or unsupported."
|
|
14539
15878
|
}
|
|
14540
15879
|
},
|
|
14541
15880
|
"CatalogMalformedCardError": {
|
|
@@ -14601,7 +15940,7 @@
|
|
|
14601
15940
|
"description": "ISO 8601 timestamp after which the handle is stale and will be rejected."
|
|
14602
15941
|
},
|
|
14603
15942
|
"kind": {
|
|
14604
|
-
"
|
|
15943
|
+
"$ref": "#/definitions/CatalogMcpServerCandidateKind",
|
|
14605
15944
|
"const": "mcp-server",
|
|
14606
15945
|
"description": "Discriminator: this candidate describes an MCP server"
|
|
14607
15946
|
},
|
|
@@ -14655,6 +15994,17 @@
|
|
|
14655
15994
|
"description": "An inert MCP server catalog result. Every free-text field is untrusted external data and must never be treated as an instruction, and the handle is the only way to refer to the candidate in a later operation.",
|
|
14656
15995
|
"title": "CatalogMcpServerCandidate"
|
|
14657
15996
|
},
|
|
15997
|
+
"CatalogMcpServerCandidateKind": {
|
|
15998
|
+
"type": "string",
|
|
15999
|
+
"enum": [
|
|
16000
|
+
"mcp-server"
|
|
16001
|
+
],
|
|
16002
|
+
"description": "Discriminator for an MCP server candidate",
|
|
16003
|
+
"title": "CatalogMcpServerCandidateKind",
|
|
16004
|
+
"x-enumDescriptions": {
|
|
16005
|
+
"mcp-server": "An MCP server."
|
|
16006
|
+
}
|
|
16007
|
+
},
|
|
14658
16008
|
"CatalogMcpServerCandidateProvenance": {
|
|
14659
16009
|
"type": "object",
|
|
14660
16010
|
"properties": {
|
|
@@ -14699,14 +16049,16 @@
|
|
|
14699
16049
|
"enum": [
|
|
14700
16050
|
"application/mcp-server-card+json",
|
|
14701
16051
|
"application/mcp-server+json",
|
|
14702
|
-
"application/ai-skill"
|
|
16052
|
+
"application/ai-skill",
|
|
16053
|
+
"application/vnd.github.copilot-plugin"
|
|
14703
16054
|
],
|
|
14704
16055
|
"description": "Media type a catalog card is interpreted as",
|
|
14705
16056
|
"title": "CatalogMediaType",
|
|
14706
16057
|
"x-enumDescriptions": {
|
|
14707
16058
|
"application/mcp-server-card+json": "The current MCP server card media type.",
|
|
14708
16059
|
"application/mcp-server+json": "The legacy MCP server card media type, accepted for compatibility.",
|
|
14709
|
-
"application/ai-skill": "An AI skill card. Representable and searchable, but typed non-installable."
|
|
16060
|
+
"application/ai-skill": "An AI skill card. Representable and searchable, but typed non-installable.",
|
|
16061
|
+
"application/vnd.github.copilot-plugin": "An inert Agent Plugin descriptor."
|
|
14710
16062
|
}
|
|
14711
16063
|
},
|
|
14712
16064
|
"CatalogNegotiatedContract": {
|
|
@@ -14723,7 +16075,7 @@
|
|
|
14723
16075
|
"$ref": "#/definitions/CatalogCapability",
|
|
14724
16076
|
"description": "A wire feature a caller can require of the catalog surface, negotiated per request. A grant means the runtime understands the feature's contract, not that the deployment has enabled the operation; typed unavailable results report availability separately."
|
|
14725
16077
|
},
|
|
14726
|
-
"description": "Wire features the runtime understood for this operation. Always a superset of the caller's required features, because any shortfall is a refusal instead. Operation availability remains a separate typed result."
|
|
16078
|
+
"description": "Wire features the runtime understood for this operation. Includes the five original catalog capabilities and only explicitly requested supported additions, in supported order without duplicates. Capabilities that introduce new success-union variants or operations are therefore included only when explicitly required, preserving older protocol-v3 clients. Always a superset of the caller's required features, because any shortfall is a refusal instead. Operation availability remains a separate typed result."
|
|
14727
16079
|
}
|
|
14728
16080
|
},
|
|
14729
16081
|
"required": [
|
|
@@ -14921,6 +16273,31 @@
|
|
|
14921
16273
|
"policy-forbids": "Policy forbids installing this candidate."
|
|
14922
16274
|
}
|
|
14923
16275
|
},
|
|
16276
|
+
"CatalogPluginRepositorySource": {
|
|
16277
|
+
"type": "object",
|
|
16278
|
+
"properties": {
|
|
16279
|
+
"repository": {
|
|
16280
|
+
"type": "string",
|
|
16281
|
+
"minLength": 3,
|
|
16282
|
+
"maxLength": 256,
|
|
16283
|
+
"pattern": "^[a-z0-9_.-]+/[a-z0-9_.-]+$",
|
|
16284
|
+
"description": "Canonical lowercase owner/repository name derived from metadata.sourceSet."
|
|
16285
|
+
},
|
|
16286
|
+
"path": {
|
|
16287
|
+
"type": "string",
|
|
16288
|
+
"minLength": 1,
|
|
16289
|
+
"maxLength": 256,
|
|
16290
|
+
"description": "Case-preserving safe relative POSIX path derived from metadata.repoPath."
|
|
16291
|
+
}
|
|
16292
|
+
},
|
|
16293
|
+
"required": [
|
|
16294
|
+
"repository",
|
|
16295
|
+
"path"
|
|
16296
|
+
],
|
|
16297
|
+
"additionalProperties": false,
|
|
16298
|
+
"description": "Syntactically validated GitHub repository provenance declared by catalog metadata. This is a source claim rather than proof that the descriptor URL resolves to the repository.",
|
|
16299
|
+
"title": "CatalogPluginRepositorySource"
|
|
16300
|
+
},
|
|
14924
16301
|
"CatalogPolicyRejectedError": {
|
|
14925
16302
|
"type": "object",
|
|
14926
16303
|
"properties": {
|
|
@@ -14948,6 +16325,107 @@
|
|
|
14948
16325
|
"description": "Registry or enterprise policy refused the operation.",
|
|
14949
16326
|
"title": "CatalogPolicyRejectedError"
|
|
14950
16327
|
},
|
|
16328
|
+
"CatalogResourceIdentity": {
|
|
16329
|
+
"type": "string",
|
|
16330
|
+
"minLength": 1,
|
|
16331
|
+
"maxLength": 1000,
|
|
16332
|
+
"pattern": "^urn:air:[a-z0-9.-]+:[A-Za-z0-9._-]+:[A-Za-z0-9._-]+(?::[A-Za-z0-9._-]+)*$",
|
|
16333
|
+
"description": "Canonical catalogue resource identity. The runtime rewrites accepted urn:ai and urn:air identifiers to urn:air, lowercases the authority, and preserves the remaining resource components.",
|
|
16334
|
+
"title": "CatalogResourceIdentity"
|
|
16335
|
+
},
|
|
16336
|
+
"CatalogResourceVersion": {
|
|
16337
|
+
"type": "string",
|
|
16338
|
+
"minLength": 1,
|
|
16339
|
+
"maxLength": 256,
|
|
16340
|
+
"description": "Bounded source-declared resource version, preserved exactly after validation and never inferred.",
|
|
16341
|
+
"title": "CatalogResourceVersion"
|
|
16342
|
+
},
|
|
16343
|
+
"CatalogSearchPage": {
|
|
16344
|
+
"type": "object",
|
|
16345
|
+
"properties": {
|
|
16346
|
+
"token": {
|
|
16347
|
+
"type": "string",
|
|
16348
|
+
"minLength": 1,
|
|
16349
|
+
"maxLength": 4096,
|
|
16350
|
+
"description": "Opaque authority-issued pagination token from an earlier response. Never decode, modify or log it in an SDK consumer."
|
|
16351
|
+
},
|
|
16352
|
+
"number": {
|
|
16353
|
+
"type": "integer",
|
|
16354
|
+
"minimum": 1,
|
|
16355
|
+
"maximum": 1000,
|
|
16356
|
+
"description": "Requested one-based page. Must not exceed either the token's signed pageCount or the navigation window ceil(1000 / pageSize). Repeat the search without page to discover newly available pages beyond that signed pageCount."
|
|
16357
|
+
}
|
|
16358
|
+
},
|
|
16359
|
+
"required": [
|
|
16360
|
+
"token",
|
|
16361
|
+
"number"
|
|
16362
|
+
],
|
|
16363
|
+
"additionalProperties": false,
|
|
16364
|
+
"description": "An explicit numbered-page request. The SDK treats the token as opaque; only the runtime decodes it and changes its targetPage. Authority validation binds navigation to the original search. No snapshot stability or token TTL is promised.",
|
|
16365
|
+
"title": "CatalogSearchPage"
|
|
16366
|
+
},
|
|
16367
|
+
"CatalogSearchPagination": {
|
|
16368
|
+
"type": "object",
|
|
16369
|
+
"properties": {
|
|
16370
|
+
"token": {
|
|
16371
|
+
"type": "string",
|
|
16372
|
+
"minLength": 1,
|
|
16373
|
+
"maxLength": 4096,
|
|
16374
|
+
"description": "Opaque authority-issued pagination token. Only the runtime decodes it or changes targetPage; SDK consumers must not decode, modify or log it. It has no runtime-created expiry or cache."
|
|
16375
|
+
},
|
|
16376
|
+
"currentPage": {
|
|
16377
|
+
"type": "integer",
|
|
16378
|
+
"minimum": 1,
|
|
16379
|
+
"maximum": 1000,
|
|
16380
|
+
"description": "One-based page returned by the authority."
|
|
16381
|
+
},
|
|
16382
|
+
"pageSize": {
|
|
16383
|
+
"type": "integer",
|
|
16384
|
+
"minimum": 1,
|
|
16385
|
+
"maximum": 50,
|
|
16386
|
+
"description": "Page size bound to the search, equal to the effective request limit."
|
|
16387
|
+
},
|
|
16388
|
+
"totalCount": {
|
|
16389
|
+
"type": "integer",
|
|
16390
|
+
"minimum": 0,
|
|
16391
|
+
"maximum": 9007199254740991,
|
|
16392
|
+
"description": "Backend-reported count for this response, not the number of returned candidates. Its relationship to the full query result set is unknown."
|
|
16393
|
+
},
|
|
16394
|
+
"totalCountRelation": {
|
|
16395
|
+
"$ref": "#/definitions/CatalogSearchTotalCountRelation",
|
|
16396
|
+
"description": "The relationship of totalCount to the complete query result set is unknown; neither exactness nor a lower-bound guarantee is implied."
|
|
16397
|
+
},
|
|
16398
|
+
"pageCount": {
|
|
16399
|
+
"type": "integer",
|
|
16400
|
+
"minimum": 2,
|
|
16401
|
+
"maximum": 9007199254740991,
|
|
16402
|
+
"description": "Backend-reported page count, which may exceed maxPage. Present pagination metadata always describes a multi-page result; zero- and single-page responses omit pagination. Navigation targets must also be within the signed pageCount carried by the supplied token."
|
|
16403
|
+
},
|
|
16404
|
+
"maxPage": {
|
|
16405
|
+
"type": "integer",
|
|
16406
|
+
"minimum": 1,
|
|
16407
|
+
"maximum": 1000,
|
|
16408
|
+
"description": "Navigation window ceiling ceil(1000 / pageSize), not the number of existing pages. Legal targets must not exceed this ceiling or the token's signed pageCount."
|
|
16409
|
+
},
|
|
16410
|
+
"hasNextPage": {
|
|
16411
|
+
"type": "boolean",
|
|
16412
|
+
"description": "Whether the authority token advertises a valid next target within the navigation window. Not inferred from token presence, truncated, or currentPage being less than pageCount."
|
|
16413
|
+
}
|
|
16414
|
+
},
|
|
16415
|
+
"required": [
|
|
16416
|
+
"token",
|
|
16417
|
+
"currentPage",
|
|
16418
|
+
"pageSize",
|
|
16419
|
+
"totalCount",
|
|
16420
|
+
"totalCountRelation",
|
|
16421
|
+
"pageCount",
|
|
16422
|
+
"maxPage",
|
|
16423
|
+
"hasNextPage"
|
|
16424
|
+
],
|
|
16425
|
+
"additionalProperties": false,
|
|
16426
|
+
"description": "Authority-reported navigation metadata, returned only to callers requiring catalog-search-pagination and only when a supported token is present. Tokenless first-page and continuation responses omit this object; no counts are inferred from candidates. The opaque token may be retained for previous or numbered navigation even when hasNextPage is false.",
|
|
16427
|
+
"title": "CatalogSearchPagination"
|
|
16428
|
+
},
|
|
14951
16429
|
"CatalogSearchRequest": {
|
|
14952
16430
|
"type": "object",
|
|
14953
16431
|
"properties": {
|
|
@@ -14976,9 +16454,13 @@
|
|
|
14976
16454
|
"description": "What kind of resource a catalog candidate describes"
|
|
14977
16455
|
},
|
|
14978
16456
|
"minItems": 1,
|
|
14979
|
-
"maxItems":
|
|
16457
|
+
"maxItems": 3,
|
|
14980
16458
|
"uniqueItems": true,
|
|
14981
|
-
"description": "Restrict results to these candidate kinds.
|
|
16459
|
+
"description": "Restrict results to these candidate kinds. Agent Plugins are opt-in and require the `agent-plugin-discovery` capability so protocol-v3 clients generated before that variant cannot receive an unknown result; when omitted, the backwards-compatible MCP server and AI skill kinds are searched."
|
|
16460
|
+
},
|
|
16461
|
+
"page": {
|
|
16462
|
+
"$ref": "#/definitions/CatalogSearchPage",
|
|
16463
|
+
"description": "Numbered navigation using metadata from an earlier response. Requires catalog-search-pagination and the same query, kinds and effective limit. Omit for a fresh first-page search."
|
|
14982
16464
|
}
|
|
14983
16465
|
},
|
|
14984
16466
|
"required": [
|
|
@@ -14993,7 +16475,7 @@
|
|
|
14993
16475
|
"anyOf": [
|
|
14994
16476
|
{
|
|
14995
16477
|
"$ref": "#/definitions/CatalogSearchSucceeded",
|
|
14996
|
-
"description": "A completed catalog search
|
|
16478
|
+
"description": "A completed catalog search containing inert candidate summaries. MCP server and AI skill variants carry a single-use handle; the Agent Plugin variant is handleless."
|
|
14997
16479
|
},
|
|
14998
16480
|
{
|
|
14999
16481
|
"$ref": "#/definitions/CatalogNegotiationRefusedError",
|
|
@@ -15005,7 +16487,7 @@
|
|
|
15005
16487
|
},
|
|
15006
16488
|
{
|
|
15007
16489
|
"$ref": "#/definitions/CatalogInvalidRequestError",
|
|
15008
|
-
"description": "The request was rejected
|
|
16490
|
+
"description": "The request was rejected because a bounded field fell outside its permitted range or a required field was unusable. Pagination may also be rejected by the authority after a continuation request; repeat the search without page."
|
|
15009
16491
|
},
|
|
15010
16492
|
{
|
|
15011
16493
|
"$ref": "#/definitions/CatalogAuthenticationRequiredError",
|
|
@@ -15057,18 +16539,22 @@
|
|
|
15057
16539
|
"type": "array",
|
|
15058
16540
|
"items": {
|
|
15059
16541
|
"$ref": "#/definitions/CatalogCandidate",
|
|
15060
|
-
"description": "One inert catalog result, represented as an MCP server
|
|
16542
|
+
"description": "One inert catalog result, represented as an MCP server, discovery-only AI skill, or opt-in Agent Plugin variant so kind, media type, provenance, and available operations cannot contradict each other."
|
|
15061
16543
|
},
|
|
15062
16544
|
"maxItems": 50,
|
|
15063
16545
|
"description": "Matching candidates, never more than the requested limit. All text is inert untrusted data."
|
|
15064
16546
|
},
|
|
15065
16547
|
"truncated": {
|
|
15066
16548
|
"type": "boolean",
|
|
15067
|
-
"description": "
|
|
16549
|
+
"description": "Legacy indication that the authority returned a page token. Preserved for compatibility; this is not a has-next-page indicator. Use pagination.hasNextPage when pagination metadata is present."
|
|
15068
16550
|
},
|
|
15069
16551
|
"negotiated": {
|
|
15070
16552
|
"$ref": "#/definitions/CatalogNegotiatedContract",
|
|
15071
16553
|
"description": "Protocol version and capabilities the runtime honoured."
|
|
16554
|
+
},
|
|
16555
|
+
"pagination": {
|
|
16556
|
+
"$ref": "#/definitions/CatalogSearchPagination",
|
|
16557
|
+
"description": "Navigation metadata for callers explicitly requiring catalog-search-pagination. Omitted when the authority returns no token, including tokenless first-page and continuation responses. Counts are never substituted from candidates.length."
|
|
15072
16558
|
}
|
|
15073
16559
|
},
|
|
15074
16560
|
"required": [
|
|
@@ -15079,9 +16565,334 @@
|
|
|
15079
16565
|
"negotiated"
|
|
15080
16566
|
],
|
|
15081
16567
|
"additionalProperties": false,
|
|
15082
|
-
"description": "A completed catalog search
|
|
16568
|
+
"description": "A completed catalog search containing inert candidate summaries. MCP server and AI skill variants carry a single-use handle; the Agent Plugin variant is handleless.",
|
|
15083
16569
|
"title": "CatalogSearchSucceeded"
|
|
15084
16570
|
},
|
|
16571
|
+
"CatalogSearchTotalCountRelation": {
|
|
16572
|
+
"type": "string",
|
|
16573
|
+
"enum": [
|
|
16574
|
+
"unknown"
|
|
16575
|
+
],
|
|
16576
|
+
"description": "Relationship of the backend-reported count to the complete query result set.",
|
|
16577
|
+
"title": "CatalogSearchTotalCountRelation",
|
|
16578
|
+
"x-enumDescriptions": {
|
|
16579
|
+
"unknown": "No exact/full-query or lower-bound guarantee is available."
|
|
16580
|
+
}
|
|
16581
|
+
},
|
|
16582
|
+
"CatalogSelectionCancelled": {
|
|
16583
|
+
"type": "object",
|
|
16584
|
+
"properties": {
|
|
16585
|
+
"kind": {
|
|
16586
|
+
"type": "string",
|
|
16587
|
+
"const": "cancelled",
|
|
16588
|
+
"description": "Discriminator: selection was cancelled"
|
|
16589
|
+
},
|
|
16590
|
+
"searchId": {
|
|
16591
|
+
"type": "string",
|
|
16592
|
+
"minLength": 1,
|
|
16593
|
+
"maxLength": 64,
|
|
16594
|
+
"description": "The search identifier privately bound to the released selection group."
|
|
16595
|
+
}
|
|
16596
|
+
},
|
|
16597
|
+
"required": [
|
|
16598
|
+
"kind",
|
|
16599
|
+
"searchId"
|
|
16600
|
+
],
|
|
16601
|
+
"additionalProperties": false,
|
|
16602
|
+
"description": "The caller cancelled the selection interaction and the retained search state was released.",
|
|
16603
|
+
"title": "CatalogSelectionCancelled"
|
|
16604
|
+
},
|
|
16605
|
+
"CatalogSelectionDecision": {
|
|
16606
|
+
"type": "string",
|
|
16607
|
+
"enum": [
|
|
16608
|
+
"selected",
|
|
16609
|
+
"declined",
|
|
16610
|
+
"cancelled",
|
|
16611
|
+
"timed-out"
|
|
16612
|
+
],
|
|
16613
|
+
"description": "Terminal outcome declared for a retained catalog selection group",
|
|
16614
|
+
"title": "CatalogSelectionDecision",
|
|
16615
|
+
"x-enumDescriptions": {
|
|
16616
|
+
"selected": "Choose the candidate named by selectionRef.",
|
|
16617
|
+
"declined": "Explicitly decline every candidate in the search.",
|
|
16618
|
+
"cancelled": "Cancel the selection interaction without choosing a candidate.",
|
|
16619
|
+
"timed-out": "Declare that the host's live interaction deadline elapsed while the reference remained valid."
|
|
16620
|
+
}
|
|
16621
|
+
},
|
|
16622
|
+
"CatalogSelectionDeclined": {
|
|
16623
|
+
"type": "object",
|
|
16624
|
+
"properties": {
|
|
16625
|
+
"kind": {
|
|
16626
|
+
"type": "string",
|
|
16627
|
+
"const": "declined",
|
|
16628
|
+
"description": "Discriminator: the candidates were declined"
|
|
16629
|
+
},
|
|
16630
|
+
"searchId": {
|
|
16631
|
+
"type": "string",
|
|
16632
|
+
"minLength": 1,
|
|
16633
|
+
"maxLength": 64,
|
|
16634
|
+
"description": "The search identifier privately bound to the released selection group."
|
|
16635
|
+
}
|
|
16636
|
+
},
|
|
16637
|
+
"required": [
|
|
16638
|
+
"kind",
|
|
16639
|
+
"searchId"
|
|
16640
|
+
],
|
|
16641
|
+
"additionalProperties": false,
|
|
16642
|
+
"description": "The caller explicitly declined every candidate and the retained search state was released.",
|
|
16643
|
+
"title": "CatalogSelectionDeclined"
|
|
16644
|
+
},
|
|
16645
|
+
"CatalogSelectionForeign": {
|
|
16646
|
+
"type": "object",
|
|
16647
|
+
"properties": {
|
|
16648
|
+
"kind": {
|
|
16649
|
+
"type": "string",
|
|
16650
|
+
"const": "foreign",
|
|
16651
|
+
"description": "Discriminator for this typed selection rejection"
|
|
16652
|
+
},
|
|
16653
|
+
"message": {
|
|
16654
|
+
"type": "string",
|
|
16655
|
+
"maxLength": 1000,
|
|
16656
|
+
"description": "Human-readable explanation safe to surface. Never contains the presented reference or private candidate state."
|
|
16657
|
+
}
|
|
16658
|
+
},
|
|
16659
|
+
"required": [
|
|
16660
|
+
"kind",
|
|
16661
|
+
"message"
|
|
16662
|
+
],
|
|
16663
|
+
"additionalProperties": false,
|
|
16664
|
+
"description": "The selection reference belongs to another runtime instance or session.",
|
|
16665
|
+
"title": "CatalogSelectionForeign"
|
|
16666
|
+
},
|
|
16667
|
+
"CatalogSelectionInvalid": {
|
|
16668
|
+
"type": "object",
|
|
16669
|
+
"properties": {
|
|
16670
|
+
"kind": {
|
|
16671
|
+
"type": "string",
|
|
16672
|
+
"const": "invalid",
|
|
16673
|
+
"description": "Discriminator for this typed selection rejection"
|
|
16674
|
+
},
|
|
16675
|
+
"message": {
|
|
16676
|
+
"type": "string",
|
|
16677
|
+
"maxLength": 1000,
|
|
16678
|
+
"description": "Human-readable explanation safe to surface. Never contains the presented reference or private candidate state."
|
|
16679
|
+
}
|
|
16680
|
+
},
|
|
16681
|
+
"required": [
|
|
16682
|
+
"kind",
|
|
16683
|
+
"message"
|
|
16684
|
+
],
|
|
16685
|
+
"additionalProperties": false,
|
|
16686
|
+
"description": "The selection reference was malformed or unknown.",
|
|
16687
|
+
"title": "CatalogSelectionInvalid"
|
|
16688
|
+
},
|
|
16689
|
+
"CatalogSelectionReplayed": {
|
|
16690
|
+
"type": "object",
|
|
16691
|
+
"properties": {
|
|
16692
|
+
"kind": {
|
|
16693
|
+
"type": "string",
|
|
16694
|
+
"const": "replayed",
|
|
16695
|
+
"description": "Discriminator for this typed selection rejection"
|
|
16696
|
+
},
|
|
16697
|
+
"message": {
|
|
16698
|
+
"type": "string",
|
|
16699
|
+
"maxLength": 1000,
|
|
16700
|
+
"description": "Human-readable explanation safe to surface. Never contains the presented reference or private candidate state."
|
|
16701
|
+
}
|
|
16702
|
+
},
|
|
16703
|
+
"required": [
|
|
16704
|
+
"kind",
|
|
16705
|
+
"message"
|
|
16706
|
+
],
|
|
16707
|
+
"additionalProperties": false,
|
|
16708
|
+
"description": "The selection group was already terminated or its pending host hand-off was already claimed.",
|
|
16709
|
+
"title": "CatalogSelectionReplayed"
|
|
16710
|
+
},
|
|
16711
|
+
"CatalogSelectionRequest": {
|
|
16712
|
+
"type": "object",
|
|
16713
|
+
"properties": {
|
|
16714
|
+
"contract": {
|
|
16715
|
+
"$ref": "#/definitions/CatalogClientContract",
|
|
16716
|
+
"description": "Protocol version and capabilities the caller requires."
|
|
16717
|
+
},
|
|
16718
|
+
"sessionId": {
|
|
16719
|
+
"type": "string",
|
|
16720
|
+
"minLength": 1,
|
|
16721
|
+
"maxLength": 256,
|
|
16722
|
+
"description": "Locally owned root session whose retained search state is being resolved."
|
|
16723
|
+
},
|
|
16724
|
+
"selectionRef": {
|
|
16725
|
+
"type": "string",
|
|
16726
|
+
"minLength": 1,
|
|
16727
|
+
"maxLength": 256,
|
|
16728
|
+
"description": "Opaque runtime-instance scoped reference to one visible candidate. For a non-selected outcome, any candidate reference from the same search closes that search's retained group."
|
|
16729
|
+
},
|
|
16730
|
+
"outcome": {
|
|
16731
|
+
"$ref": "#/definitions/CatalogSelectionDecision",
|
|
16732
|
+
"description": "The terminal outcome declared by the caller. Timed-out means the host's live interaction deadline elapsed; a reference whose runtime TTL elapsed is rejected separately as stale."
|
|
16733
|
+
}
|
|
16734
|
+
},
|
|
16735
|
+
"required": [
|
|
16736
|
+
"contract",
|
|
16737
|
+
"sessionId",
|
|
16738
|
+
"selectionRef",
|
|
16739
|
+
"outcome"
|
|
16740
|
+
],
|
|
16741
|
+
"additionalProperties": false,
|
|
16742
|
+
"description": "Terminates one retained catalog selection group through an opaque reference previously returned by the model-safe search projection.",
|
|
16743
|
+
"title": "CatalogSelectionRequest"
|
|
16744
|
+
},
|
|
16745
|
+
"CatalogSelectionResult": {
|
|
16746
|
+
"anyOf": [
|
|
16747
|
+
{
|
|
16748
|
+
"$ref": "#/definitions/CatalogSelectionSelected",
|
|
16749
|
+
"description": "The chosen candidate was transferred into a fresh bounded single-use handle for a later explicit planning request."
|
|
16750
|
+
},
|
|
16751
|
+
{
|
|
16752
|
+
"$ref": "#/definitions/CatalogSelectionDeclined",
|
|
16753
|
+
"description": "The caller explicitly declined every candidate and the retained search state was released."
|
|
16754
|
+
},
|
|
16755
|
+
{
|
|
16756
|
+
"$ref": "#/definitions/CatalogSelectionCancelled",
|
|
16757
|
+
"description": "The caller cancelled the selection interaction and the retained search state was released."
|
|
16758
|
+
},
|
|
16759
|
+
{
|
|
16760
|
+
"$ref": "#/definitions/CatalogSelectionTimedOut",
|
|
16761
|
+
"description": "The host declared that its live selection interaction timed out, and the retained search state was released."
|
|
16762
|
+
},
|
|
16763
|
+
{
|
|
16764
|
+
"$ref": "#/definitions/CatalogSelectionInvalid",
|
|
16765
|
+
"description": "The selection reference was malformed or unknown."
|
|
16766
|
+
},
|
|
16767
|
+
{
|
|
16768
|
+
"$ref": "#/definitions/CatalogSelectionStale",
|
|
16769
|
+
"description": "The runtime-enforced selection reference lifetime elapsed before the request arrived."
|
|
16770
|
+
},
|
|
16771
|
+
{
|
|
16772
|
+
"$ref": "#/definitions/CatalogSelectionReplayed",
|
|
16773
|
+
"description": "The selection group was already terminated or its pending host hand-off was already claimed."
|
|
16774
|
+
},
|
|
16775
|
+
{
|
|
16776
|
+
"$ref": "#/definitions/CatalogSelectionForeign",
|
|
16777
|
+
"description": "The selection reference belongs to another runtime instance or session."
|
|
16778
|
+
},
|
|
16779
|
+
{
|
|
16780
|
+
"$ref": "#/definitions/CatalogSelectionWrongKind",
|
|
16781
|
+
"description": "The presented opaque handle was issued for another catalog operation."
|
|
16782
|
+
},
|
|
16783
|
+
{
|
|
16784
|
+
"$ref": "#/definitions/CatalogNegotiationRefusedError",
|
|
16785
|
+
"description": "The caller's protocol version or required capabilities cannot be honoured. Returned instead of a partial or ambiguous success."
|
|
16786
|
+
},
|
|
16787
|
+
{
|
|
16788
|
+
"$ref": "#/definitions/CatalogInvalidRequestError",
|
|
16789
|
+
"description": "The request was rejected because a bounded field fell outside its permitted range or a required field was unusable. Pagination may also be rejected by the authority after a continuation request; repeat the search without page."
|
|
16790
|
+
},
|
|
16791
|
+
{
|
|
16792
|
+
"$ref": "#/definitions/CatalogUnavailableError",
|
|
16793
|
+
"description": "The operation is not available on this runtime. Distinct from a network failure: nothing was attempted."
|
|
16794
|
+
}
|
|
16795
|
+
],
|
|
16796
|
+
"description": "Typed outcome of catalog.select. Only the selected host result carries a fresh candidate handle; the model-facing projection removes both that handle and searchId.",
|
|
16797
|
+
"title": "CatalogSelectionResult"
|
|
16798
|
+
},
|
|
16799
|
+
"CatalogSelectionSelected": {
|
|
16800
|
+
"type": "object",
|
|
16801
|
+
"properties": {
|
|
16802
|
+
"kind": {
|
|
16803
|
+
"type": "string",
|
|
16804
|
+
"const": "selected",
|
|
16805
|
+
"description": "Discriminator: one candidate was selected"
|
|
16806
|
+
},
|
|
16807
|
+
"candidateHandle": {
|
|
16808
|
+
"type": "string",
|
|
16809
|
+
"minLength": 1,
|
|
16810
|
+
"maxLength": 256,
|
|
16811
|
+
"description": "Fresh single-use candidate handle accepted by mcp.planInstall. Returned only to the native host and never included in model-tool output."
|
|
16812
|
+
},
|
|
16813
|
+
"searchId": {
|
|
16814
|
+
"type": "string",
|
|
16815
|
+
"minLength": 1,
|
|
16816
|
+
"maxLength": 64,
|
|
16817
|
+
"description": "The exact search identifier privately bound to the selected candidate."
|
|
16818
|
+
}
|
|
16819
|
+
},
|
|
16820
|
+
"required": [
|
|
16821
|
+
"kind",
|
|
16822
|
+
"candidateHandle",
|
|
16823
|
+
"searchId"
|
|
16824
|
+
],
|
|
16825
|
+
"additionalProperties": false,
|
|
16826
|
+
"description": "The chosen candidate was transferred into a fresh bounded single-use handle for a later explicit planning request.",
|
|
16827
|
+
"title": "CatalogSelectionSelected"
|
|
16828
|
+
},
|
|
16829
|
+
"CatalogSelectionStale": {
|
|
16830
|
+
"type": "object",
|
|
16831
|
+
"properties": {
|
|
16832
|
+
"kind": {
|
|
16833
|
+
"type": "string",
|
|
16834
|
+
"const": "stale",
|
|
16835
|
+
"description": "Discriminator for this typed selection rejection"
|
|
16836
|
+
},
|
|
16837
|
+
"message": {
|
|
16838
|
+
"type": "string",
|
|
16839
|
+
"maxLength": 1000,
|
|
16840
|
+
"description": "Human-readable explanation safe to surface. Never contains the presented reference or private candidate state."
|
|
16841
|
+
}
|
|
16842
|
+
},
|
|
16843
|
+
"required": [
|
|
16844
|
+
"kind",
|
|
16845
|
+
"message"
|
|
16846
|
+
],
|
|
16847
|
+
"additionalProperties": false,
|
|
16848
|
+
"description": "The runtime-enforced selection reference lifetime elapsed before the request arrived.",
|
|
16849
|
+
"title": "CatalogSelectionStale"
|
|
16850
|
+
},
|
|
16851
|
+
"CatalogSelectionTimedOut": {
|
|
16852
|
+
"type": "object",
|
|
16853
|
+
"properties": {
|
|
16854
|
+
"kind": {
|
|
16855
|
+
"type": "string",
|
|
16856
|
+
"const": "timed-out",
|
|
16857
|
+
"description": "Discriminator: the host's live interaction timed out"
|
|
16858
|
+
},
|
|
16859
|
+
"searchId": {
|
|
16860
|
+
"type": "string",
|
|
16861
|
+
"minLength": 1,
|
|
16862
|
+
"maxLength": 64,
|
|
16863
|
+
"description": "The search identifier privately bound to the released selection group."
|
|
16864
|
+
}
|
|
16865
|
+
},
|
|
16866
|
+
"required": [
|
|
16867
|
+
"kind",
|
|
16868
|
+
"searchId"
|
|
16869
|
+
],
|
|
16870
|
+
"additionalProperties": false,
|
|
16871
|
+
"description": "The host declared that its live selection interaction timed out, and the retained search state was released.",
|
|
16872
|
+
"title": "CatalogSelectionTimedOut"
|
|
16873
|
+
},
|
|
16874
|
+
"CatalogSelectionWrongKind": {
|
|
16875
|
+
"type": "object",
|
|
16876
|
+
"properties": {
|
|
16877
|
+
"kind": {
|
|
16878
|
+
"type": "string",
|
|
16879
|
+
"const": "wrong-kind",
|
|
16880
|
+
"description": "Discriminator for this typed selection rejection"
|
|
16881
|
+
},
|
|
16882
|
+
"message": {
|
|
16883
|
+
"type": "string",
|
|
16884
|
+
"maxLength": 1000,
|
|
16885
|
+
"description": "Human-readable explanation safe to surface. Never contains the presented reference or private candidate state."
|
|
16886
|
+
}
|
|
16887
|
+
},
|
|
16888
|
+
"required": [
|
|
16889
|
+
"kind",
|
|
16890
|
+
"message"
|
|
16891
|
+
],
|
|
16892
|
+
"additionalProperties": false,
|
|
16893
|
+
"description": "The presented opaque handle was issued for another catalog operation.",
|
|
16894
|
+
"title": "CatalogSelectionWrongKind"
|
|
16895
|
+
},
|
|
15085
16896
|
"CatalogTrustEligibility": {
|
|
15086
16897
|
"type": "string",
|
|
15087
16898
|
"enum": [
|
|
@@ -15522,6 +17333,7 @@
|
|
|
15522
17333
|
"enum": [
|
|
15523
17334
|
"search-unavailable",
|
|
15524
17335
|
"planning-unavailable",
|
|
17336
|
+
"selection-unavailable",
|
|
15525
17337
|
"authority-not-configured",
|
|
15526
17338
|
"disabled-by-policy"
|
|
15527
17339
|
],
|
|
@@ -15530,6 +17342,7 @@
|
|
|
15530
17342
|
"x-enumDescriptions": {
|
|
15531
17343
|
"search-unavailable": "Bounded search is not wired up on this runtime build.",
|
|
15532
17344
|
"planning-unavailable": "Install planning is not wired up on this runtime build.",
|
|
17345
|
+
"selection-unavailable": "Exact candidate selection is not available in this session or runtime.",
|
|
15533
17346
|
"authority-not-configured": "No catalog authority is configured for this runtime.",
|
|
15534
17347
|
"disabled-by-policy": "The surface is disabled by policy on this runtime."
|
|
15535
17348
|
}
|
|
@@ -16587,6 +18400,24 @@
|
|
|
16587
18400
|
"cli_remote_control_enabled": {
|
|
16588
18401
|
"type": "boolean",
|
|
16589
18402
|
"description": "Whether CLI remote control is enabled for the user."
|
|
18403
|
+
},
|
|
18404
|
+
"enterprise_list": {
|
|
18405
|
+
"type": "array",
|
|
18406
|
+
"items": {
|
|
18407
|
+
"type": "object",
|
|
18408
|
+
"properties": {
|
|
18409
|
+
"id": {
|
|
18410
|
+
"type": "integer",
|
|
18411
|
+
"minimum": 0,
|
|
18412
|
+
"description": "Numeric database ID of the enterprise."
|
|
18413
|
+
}
|
|
18414
|
+
},
|
|
18415
|
+
"required": [
|
|
18416
|
+
"id"
|
|
18417
|
+
],
|
|
18418
|
+
"additionalProperties": false
|
|
18419
|
+
},
|
|
18420
|
+
"description": "Enterprises that provide the user's Copilot license, each with a stable numeric ID."
|
|
16590
18421
|
}
|
|
16591
18422
|
},
|
|
16592
18423
|
"additionalProperties": false,
|
|
@@ -21419,6 +23250,25 @@
|
|
|
21419
23250
|
"notification": "Runs when the agent emits a notification."
|
|
21420
23251
|
}
|
|
21421
23252
|
},
|
|
23253
|
+
"IndexedSearchState": {
|
|
23254
|
+
"type": "string",
|
|
23255
|
+
"enum": [
|
|
23256
|
+
"disabled",
|
|
23257
|
+
"starting",
|
|
23258
|
+
"enabled",
|
|
23259
|
+
"ready",
|
|
23260
|
+
"failed"
|
|
23261
|
+
],
|
|
23262
|
+
"description": "Live indexed-search state for this session activation, never inferred from persisted history.",
|
|
23263
|
+
"title": "IndexedSearchState",
|
|
23264
|
+
"x-enumDescriptions": {
|
|
23265
|
+
"disabled": "Indexed search is not active for this session.",
|
|
23266
|
+
"starting": "Indexed-search startup is in progress.",
|
|
23267
|
+
"enabled": "The indexed-search server started successfully; its index may still be warming.",
|
|
23268
|
+
"ready": "The indexed-search server and its index are ready.",
|
|
23269
|
+
"failed": "Indexed-search startup or the active server failed."
|
|
23270
|
+
}
|
|
23271
|
+
},
|
|
21422
23272
|
"InstalledPlugin": {
|
|
21423
23273
|
"type": "object",
|
|
21424
23274
|
"properties": {
|
|
@@ -21499,6 +23349,18 @@
|
|
|
21499
23349
|
"source": {
|
|
21500
23350
|
"type": "string",
|
|
21501
23351
|
"description": "Runtime-reported plugin provenance. Currently set to \"builtin\" only for plugins registered through the trusted host built-in boundary; absent for installed, marketplace, direct, and live plugins."
|
|
23352
|
+
},
|
|
23353
|
+
"managed": {
|
|
23354
|
+
"type": "boolean",
|
|
23355
|
+
"description": "Whether enterprise managed settings control this plugin's enabled state."
|
|
23356
|
+
},
|
|
23357
|
+
"managedDesiredEnabled": {
|
|
23358
|
+
"type": "boolean",
|
|
23359
|
+
"description": "The enabled state required by enterprise managed settings, when this plugin spec is managed."
|
|
23360
|
+
},
|
|
23361
|
+
"installed": {
|
|
23362
|
+
"type": "boolean",
|
|
23363
|
+
"description": "Whether the managed desired plugin currently has an installed or live record. Set to false for a managed desired entry retained in the listing after installation or reconciliation failed."
|
|
21502
23364
|
}
|
|
21503
23365
|
},
|
|
21504
23366
|
"required": [
|
|
@@ -22361,6 +24223,91 @@
|
|
|
22361
24223
|
"description": "Validated device-managed settings discovered before a session exists.",
|
|
22362
24224
|
"title": "ManagedSettingsReadResult"
|
|
22363
24225
|
},
|
|
24226
|
+
"ManagedSettingsResolvedData": {
|
|
24227
|
+
"type": "object",
|
|
24228
|
+
"properties": {
|
|
24229
|
+
"source": {
|
|
24230
|
+
"$ref": "#/definitions/ManagedSettingsResolvedSource",
|
|
24231
|
+
"description": "Channel summary: `server`, `device`, `client`, or `policyHelper` when exactly one channel contributed; `mixed` when multiple channels contributed; otherwise `none`. Consult the per-channel booleans for exact provenance."
|
|
24232
|
+
},
|
|
24233
|
+
"serverManaged": {
|
|
24234
|
+
"type": "boolean",
|
|
24235
|
+
"description": "Whether the server (account/org) managed-settings layer was present"
|
|
24236
|
+
},
|
|
24237
|
+
"deviceManaged": {
|
|
24238
|
+
"type": "boolean",
|
|
24239
|
+
"description": "Whether an actual device MDM/plist/registry/file managed-settings layer was present"
|
|
24240
|
+
},
|
|
24241
|
+
"clientManaged": {
|
|
24242
|
+
"type": "boolean",
|
|
24243
|
+
"description": "Whether a session-local permissions layer injected by the SDK host was present"
|
|
24244
|
+
},
|
|
24245
|
+
"policyHelperManaged": {
|
|
24246
|
+
"type": "boolean",
|
|
24247
|
+
"description": "Whether the policy-helper managed-settings layer was present. The policy helper is the weakest channel: it fills keys no enterprise source set and can never replace one."
|
|
24248
|
+
},
|
|
24249
|
+
"failClosed": {
|
|
24250
|
+
"type": "boolean",
|
|
24251
|
+
"description": "Whether managed policy could not be determined (e.g. a failed server fetch) and the session fell back to the fail-closed restriction. When true, restrictions such as disabling bypass-permissions are enforced even though `settings` may be absent."
|
|
24252
|
+
},
|
|
24253
|
+
"sandboxEnabledByUndeterminedPolicy": {
|
|
24254
|
+
"type": "boolean",
|
|
24255
|
+
"description": "Whether the effective sandbox policy forces the sandbox on *only* because managed policy could not be determined, rather than because the policy requires it. Lets clients tell a user whose `--no-sandbox` was overridden that the sandbox stayed on as a fail-closed fallback, instead of attributing it to an administrator who set no such policy."
|
|
24256
|
+
},
|
|
24257
|
+
"bypassPermissionsDisabled": {
|
|
24258
|
+
"type": "boolean",
|
|
24259
|
+
"description": "Whether enterprise policy disables bypass-permissions (\"yolo\") mode for this session. Deny-wins across layers, and forced on when `failClosed` is true."
|
|
24260
|
+
},
|
|
24261
|
+
"permissionsAllowIntersected": {
|
|
24262
|
+
"type": "boolean",
|
|
24263
|
+
"description": "Whether at least two managed sources supplied permission allowlists, so enforcement intersects them and the flattened settings payload omits `permissions.allow`."
|
|
24264
|
+
},
|
|
24265
|
+
"managedKeys": {
|
|
24266
|
+
"type": "array",
|
|
24267
|
+
"items": {
|
|
24268
|
+
"type": "string"
|
|
24269
|
+
},
|
|
24270
|
+
"description": "The setting keys under enterprise management in the effective managed settings (e.g. `model`, `enabledPlugins`, `permissions`). Empty when no managed settings are in force."
|
|
24271
|
+
},
|
|
24272
|
+
"settings": {
|
|
24273
|
+
"description": "The effective (resolved) managed settings values, so clients can render exactly what is enforced. Absent when no managed policy is in force.",
|
|
24274
|
+
"x-opaque-json": true
|
|
24275
|
+
}
|
|
24276
|
+
},
|
|
24277
|
+
"required": [
|
|
24278
|
+
"source",
|
|
24279
|
+
"serverManaged",
|
|
24280
|
+
"deviceManaged",
|
|
24281
|
+
"failClosed",
|
|
24282
|
+
"bypassPermissionsDisabled",
|
|
24283
|
+
"managedKeys"
|
|
24284
|
+
],
|
|
24285
|
+
"additionalProperties": false,
|
|
24286
|
+
"description": "Enterprise managed-settings resolution: the effective managed settings the session applied and which channels contributed, so SDK clients can show users what is enterprise-managed. Fires whenever managed policy is (re)applied — at session start, on resume, and on account switch. This is an ephemeral live snapshot (delivered to subscribers but not persisted to the session event log), because at session start it resolves before `session.start` is emitted. Device values take precedence over server values, then the policy helper, per ordinary key, while permissions compose restrictively across device, server, policy-helper, and SDK-client layers. The account-scoped `getManagedSettings()` API does not include session-local client injection. Marked experimental while the managed-settings surface stabilizes.",
|
|
24287
|
+
"title": "ManagedSettingsResolvedData",
|
|
24288
|
+
"stability": "experimental"
|
|
24289
|
+
},
|
|
24290
|
+
"ManagedSettingsResolvedSource": {
|
|
24291
|
+
"type": "string",
|
|
24292
|
+
"enum": [
|
|
24293
|
+
"server",
|
|
24294
|
+
"device",
|
|
24295
|
+
"client",
|
|
24296
|
+
"policyHelper",
|
|
24297
|
+
"mixed",
|
|
24298
|
+
"none"
|
|
24299
|
+
],
|
|
24300
|
+
"description": "Summary of which managed-settings channels contributed to the effective session policy. Use the per-channel booleans for exact provenance.",
|
|
24301
|
+
"title": "ManagedSettingsResolvedSource",
|
|
24302
|
+
"x-enumDescriptions": {
|
|
24303
|
+
"server": "Only the server/account channel contributed.",
|
|
24304
|
+
"device": "Only the device MDM/plist/registry/file channel contributed.",
|
|
24305
|
+
"client": "Only session-local SDK-host injection contributed.",
|
|
24306
|
+
"policyHelper": "A policy helper registered by device or server policy contributed. Device registration takes priority when present.",
|
|
24307
|
+
"mixed": "More than one channel contributed. Ordinary keys resolve device over server over policy helper per key, while permissions compose restrictively across all present layers.",
|
|
24308
|
+
"none": "No managed policy is in force (no channel contributed)."
|
|
24309
|
+
}
|
|
24310
|
+
},
|
|
22364
24311
|
"MarketplaceAddResult": {
|
|
22365
24312
|
"type": "object",
|
|
22366
24313
|
"properties": {
|
|
@@ -22409,6 +24356,14 @@
|
|
|
22409
24356
|
"isDefault": {
|
|
22410
24357
|
"type": "boolean",
|
|
22411
24358
|
"description": "True when this is a default marketplace shipped with the runtime. Defaults are not removable."
|
|
24359
|
+
},
|
|
24360
|
+
"managed": {
|
|
24361
|
+
"type": "boolean",
|
|
24362
|
+
"description": "Whether enterprise managed settings provide and control this marketplace entry."
|
|
24363
|
+
},
|
|
24364
|
+
"available": {
|
|
24365
|
+
"type": "boolean",
|
|
24366
|
+
"description": "Whether the managed marketplace currently resolved into the runtime marketplace registry. Set to false when the desired managed entry is retained for governance visibility after loading or reconciliation failed."
|
|
22412
24367
|
}
|
|
22413
24368
|
},
|
|
22414
24369
|
"required": [
|
|
@@ -23599,9 +25554,9 @@
|
|
|
23599
25554
|
"type": "array",
|
|
23600
25555
|
"items": {
|
|
23601
25556
|
"$ref": "#/definitions/McpPlanConfigurationChange",
|
|
23602
|
-
"description": "
|
|
25557
|
+
"description": "The configuration-change alternative for the transportChoices entry at the same index. Only the selected alternative is applied; entries are not cumulative. The payload stays behind the runtime boundary."
|
|
23603
25558
|
},
|
|
23604
|
-
"description": "
|
|
25559
|
+
"description": "Alternative configuration changes, with exactly one entry for each transportChoices entry in the same order. Only the entry for the subsequently selected transport applies; these are not cumulative writes. Payloads remain behind the runtime boundary."
|
|
23605
25560
|
},
|
|
23606
25561
|
"reloadRequired": {
|
|
23607
25562
|
"type": "boolean",
|
|
@@ -23609,7 +25564,7 @@
|
|
|
23609
25564
|
},
|
|
23610
25565
|
"requiresInteractiveConfiguration": {
|
|
23611
25566
|
"type": "boolean",
|
|
23612
|
-
"description": "
|
|
25567
|
+
"description": "True only when every eligible transport choice needs additional values or secrets. False means at least one choice needs no additional configuration, not that every choice is ready. A later apply operation must validate the selected choice's own inputs, secrets and policy after explicit confirmation."
|
|
23613
25568
|
}
|
|
23614
25569
|
},
|
|
23615
25570
|
"required": [
|
|
@@ -24063,7 +26018,7 @@
|
|
|
24063
26018
|
"secretReferences"
|
|
24064
26019
|
],
|
|
24065
26020
|
"additionalProperties": false,
|
|
24066
|
-
"description": "
|
|
26021
|
+
"description": "The configuration-change alternative for the transportChoices entry at the same index. Only the selected alternative is applied; entries are not cumulative. The payload stays behind the runtime boundary.",
|
|
24067
26022
|
"title": "McpPlanConfigurationChange"
|
|
24068
26023
|
},
|
|
24069
26024
|
"McpPlanConfigurationOperation": {
|
|
@@ -24156,7 +26111,7 @@
|
|
|
24156
26111
|
},
|
|
24157
26112
|
{
|
|
24158
26113
|
"$ref": "#/definitions/CatalogInvalidRequestError",
|
|
24159
|
-
"description": "The request was rejected
|
|
26114
|
+
"description": "The request was rejected because a bounded field fell outside its permitted range or a required field was unusable. Pagination may also be rejected by the authority after a continuation request; repeat the search without page."
|
|
24160
26115
|
},
|
|
24161
26116
|
{
|
|
24162
26117
|
"$ref": "#/definitions/CatalogAuthenticationRequiredError",
|
|
@@ -24230,7 +26185,7 @@
|
|
|
24230
26185
|
"type": "string",
|
|
24231
26186
|
"minLength": 1,
|
|
24232
26187
|
"maxLength": 64,
|
|
24233
|
-
"description": "The runtime- or authority-minted `searchId` returned with the search that produced this candidate.
|
|
26188
|
+
"description": "The runtime- or authority-minted `searchId` returned with the search that produced this candidate. Planning verifies the private correlation and atomically consumes a matching candidate before downstream work, including attempts that subsequently fail or report unavailable. A mismatched search does not consume the candidate. It identifies a search rather than a person and must never be joined with user identity to re-identify anyone."
|
|
24234
26189
|
}
|
|
24235
26190
|
},
|
|
24236
26191
|
"required": [
|
|
@@ -25684,6 +27639,13 @@
|
|
|
25684
27639
|
"format": "duration",
|
|
25685
27640
|
"description": "Timeout in milliseconds for tool discovery and tool calls."
|
|
25686
27641
|
},
|
|
27642
|
+
"slowConnectionThresholdMs": {
|
|
27643
|
+
"type": "integer",
|
|
27644
|
+
"exclusiveMinimum": 0,
|
|
27645
|
+
"maximum": 2147483647,
|
|
27646
|
+
"format": "duration",
|
|
27647
|
+
"description": "Milliseconds this server may spend connecting before the CLI warns that it is taking longer than expected. Presentation only: it does not change how long the connection is allowed to take."
|
|
27648
|
+
},
|
|
25687
27649
|
"oidc": {
|
|
25688
27650
|
"$ref": "#/definitions/McpServerAuthConfig",
|
|
25689
27651
|
"description": "Set to `true` to use defaults, or provide an object with additional auth or OIDC settings."
|
|
@@ -25854,6 +27816,13 @@
|
|
|
25854
27816
|
"type": "integer",
|
|
25855
27817
|
"description": "Timeout in milliseconds for tool discovery and tool calls."
|
|
25856
27818
|
},
|
|
27819
|
+
"slowConnectionThresholdMs": {
|
|
27820
|
+
"type": "integer",
|
|
27821
|
+
"exclusiveMinimum": 0,
|
|
27822
|
+
"maximum": 2147483647,
|
|
27823
|
+
"format": "duration",
|
|
27824
|
+
"description": "Milliseconds this server may spend connecting before the CLI warns that it is taking longer than expected. Presentation only: it does not change how long the connection is allowed to take."
|
|
27825
|
+
},
|
|
25857
27826
|
"oidc": {
|
|
25858
27827
|
"$ref": "#/definitions/McpServerAuthConfig",
|
|
25859
27828
|
"description": "Set to `true` to use default OIDC settings."
|
|
@@ -25969,6 +27938,13 @@
|
|
|
25969
27938
|
"format": "duration",
|
|
25970
27939
|
"description": "Timeout in milliseconds for tool discovery and tool calls."
|
|
25971
27940
|
},
|
|
27941
|
+
"slowConnectionThresholdMs": {
|
|
27942
|
+
"type": "integer",
|
|
27943
|
+
"exclusiveMinimum": 0,
|
|
27944
|
+
"maximum": 2147483647,
|
|
27945
|
+
"format": "duration",
|
|
27946
|
+
"description": "Milliseconds this server may spend connecting before the CLI warns that it is taking longer than expected. Presentation only: it does not change how long the connection is allowed to take."
|
|
27947
|
+
},
|
|
25972
27948
|
"oidc": {
|
|
25973
27949
|
"$ref": "#/definitions/McpServerAuthConfig",
|
|
25974
27950
|
"description": "Set to `true` to use defaults, or provide an object with additional auth or OIDC settings."
|
|
@@ -26920,6 +28896,10 @@
|
|
|
26920
28896
|
"type": "string",
|
|
26921
28897
|
"description": "Startup default model from the enterprise policy helper, when configured. Weakest of the managed sources: it applies only when neither device nor server policy names a model, and an explicit user selection still wins."
|
|
26922
28898
|
},
|
|
28899
|
+
"autoTier": {
|
|
28900
|
+
"$ref": "#/definitions/AutoTier",
|
|
28901
|
+
"description": "Effective default Auto routing preference from user and managed settings. Applies only to fresh sessions and never replaces a per-session selection."
|
|
28902
|
+
},
|
|
26923
28903
|
"repoModel": {
|
|
26924
28904
|
"type": "string",
|
|
26925
28905
|
"description": "Model selected by repository settings, when configured."
|
|
@@ -27305,6 +29285,7 @@
|
|
|
27305
29285
|
"agent",
|
|
27306
29286
|
"plan_mode",
|
|
27307
29287
|
"automatic",
|
|
29288
|
+
"changeboarding_shortcut",
|
|
27308
29289
|
"sdk"
|
|
27309
29290
|
],
|
|
27310
29291
|
"description": "Origin of an effective session model change.",
|
|
@@ -27320,6 +29301,7 @@
|
|
|
27320
29301
|
"agent": "Selecting an agent selected its configured model.",
|
|
27321
29302
|
"plan_mode": "Entering, leaving, or reconfiguring plan mode selected the model.",
|
|
27322
29303
|
"automatic": "The runtime selected the model automatically, such as rate-limit recovery or refusal fallback.",
|
|
29304
|
+
"changeboarding_shortcut": "The user selected the promoted model from the changeboarding card or its keyboard shortcut.",
|
|
27323
29305
|
"sdk": "An SDK or RPC caller selected the model."
|
|
27324
29306
|
}
|
|
27325
29307
|
},
|
|
@@ -27806,6 +29788,10 @@
|
|
|
27806
29788
|
"ModelSwitchToResult": {
|
|
27807
29789
|
"type": "object",
|
|
27808
29790
|
"properties": {
|
|
29791
|
+
"queueId": {
|
|
29792
|
+
"type": "string",
|
|
29793
|
+
"description": "Stable queue item identifier when this request was enqueued. Remains present if the item drains before the response is returned."
|
|
29794
|
+
},
|
|
27809
29795
|
"modelId": {
|
|
27810
29796
|
"type": "string",
|
|
27811
29797
|
"description": "Currently active model identifier after the switch"
|
|
@@ -28335,6 +30321,10 @@
|
|
|
28335
30321
|
"request": {
|
|
28336
30322
|
"$ref": "session-events.schema.json#/definitions/PermissionPromptRequest",
|
|
28337
30323
|
"description": "The user-facing permission prompt details (commands, write, read, mcp, url, memory, custom-tool, path, hook)"
|
|
30324
|
+
},
|
|
30325
|
+
"recoveryEpisodeId": {
|
|
30326
|
+
"type": "string",
|
|
30327
|
+
"description": "Permission-recovery episode that authorized this request to surface for interactive attention"
|
|
28338
30328
|
}
|
|
28339
30329
|
},
|
|
28340
30330
|
"required": [
|
|
@@ -29760,6 +31750,210 @@
|
|
|
29760
31750
|
"title": "PermissionPromptShownNotification",
|
|
29761
31751
|
"stability": "experimental"
|
|
29762
31752
|
},
|
|
31753
|
+
"PermissionRecoveryAttempt": {
|
|
31754
|
+
"type": "object",
|
|
31755
|
+
"properties": {
|
|
31756
|
+
"attemptId": {
|
|
31757
|
+
"type": "string",
|
|
31758
|
+
"description": "Unique identifier for this attempt record"
|
|
31759
|
+
},
|
|
31760
|
+
"toolCallId": {
|
|
31761
|
+
"type": "string",
|
|
31762
|
+
"description": "Tool-call identifier associated with this attempt, when available"
|
|
31763
|
+
},
|
|
31764
|
+
"permissionKind": {
|
|
31765
|
+
"type": "string",
|
|
31766
|
+
"description": "Controlled permission request kind, such as shell, path, URL, or tool"
|
|
31767
|
+
},
|
|
31768
|
+
"requestFingerprint": {
|
|
31769
|
+
"type": "string",
|
|
31770
|
+
"description": "SHA-256 fingerprint of normalized request data; raw permission arguments are not included"
|
|
31771
|
+
},
|
|
31772
|
+
"relation": {
|
|
31773
|
+
"$ref": "#/definitions/PermissionRecoveryAttemptRelation",
|
|
31774
|
+
"description": "Relationship between this attempt and earlier attempts in the episode"
|
|
31775
|
+
},
|
|
31776
|
+
"disposition": {
|
|
31777
|
+
"$ref": "#/definitions/PermissionRecoveryAttemptDisposition",
|
|
31778
|
+
"description": "How the runtime handled this attempt"
|
|
31779
|
+
},
|
|
31780
|
+
"reason": {
|
|
31781
|
+
"$ref": "#/definitions/PermissionRecoveryAttemptReason",
|
|
31782
|
+
"description": "Controlled reason for the attempt disposition"
|
|
31783
|
+
},
|
|
31784
|
+
"ordinal": {
|
|
31785
|
+
"type": "integer",
|
|
31786
|
+
"minimum": 1,
|
|
31787
|
+
"description": "One-based position of this attempt in the episode"
|
|
31788
|
+
}
|
|
31789
|
+
},
|
|
31790
|
+
"required": [
|
|
31791
|
+
"attemptId",
|
|
31792
|
+
"permissionKind",
|
|
31793
|
+
"requestFingerprint",
|
|
31794
|
+
"relation",
|
|
31795
|
+
"disposition",
|
|
31796
|
+
"reason",
|
|
31797
|
+
"ordinal"
|
|
31798
|
+
],
|
|
31799
|
+
"additionalProperties": false
|
|
31800
|
+
},
|
|
31801
|
+
"PermissionRecoveryAttemptDisposition": {
|
|
31802
|
+
"type": "string",
|
|
31803
|
+
"enum": [
|
|
31804
|
+
"deferred",
|
|
31805
|
+
"prompted",
|
|
31806
|
+
"approved",
|
|
31807
|
+
"denied",
|
|
31808
|
+
"blocked",
|
|
31809
|
+
"succeeded"
|
|
31810
|
+
],
|
|
31811
|
+
"description": "Runtime handling applied to a recovery attempt",
|
|
31812
|
+
"title": "PermissionRecoveryAttemptDisposition",
|
|
31813
|
+
"x-enumDescriptions": {
|
|
31814
|
+
"deferred": "The request was denied without prompting so the agent could try an alternative.",
|
|
31815
|
+
"prompted": "The request was surfaced to an interactive responder.",
|
|
31816
|
+
"approved": "The interactive responder approved the request.",
|
|
31817
|
+
"denied": "The interactive responder denied the request or became unavailable.",
|
|
31818
|
+
"blocked": "The request exhausted unattended recovery and produced a blocked outcome.",
|
|
31819
|
+
"succeeded": "A tool call succeeded as an equivalent alternative."
|
|
31820
|
+
}
|
|
31821
|
+
},
|
|
31822
|
+
"PermissionRecoveryAttemptReason": {
|
|
31823
|
+
"type": "string",
|
|
31824
|
+
"enum": [
|
|
31825
|
+
"permission_required",
|
|
31826
|
+
"repeated_attempt",
|
|
31827
|
+
"attempts_exhausted",
|
|
31828
|
+
"permission_approved",
|
|
31829
|
+
"permission_denied",
|
|
31830
|
+
"responder_unavailable",
|
|
31831
|
+
"equivalent_alternative_succeeded"
|
|
31832
|
+
],
|
|
31833
|
+
"description": "Controlled reason for an individual attempt disposition",
|
|
31834
|
+
"title": "PermissionRecoveryAttemptReason",
|
|
31835
|
+
"x-enumDescriptions": {
|
|
31836
|
+
"permission_required": "The attempt required permission that Assisted Permissions could not grant.",
|
|
31837
|
+
"repeated_attempt": "The request repeated an earlier attempt.",
|
|
31838
|
+
"attempts_exhausted": "The request exceeded the bounded number of distinct attempts.",
|
|
31839
|
+
"permission_approved": "The interactive responder approved the request.",
|
|
31840
|
+
"permission_denied": "The interactive responder denied the request.",
|
|
31841
|
+
"responder_unavailable": "The interactive responder became unavailable.",
|
|
31842
|
+
"equivalent_alternative_succeeded": "The tool call succeeded without the blocked permission."
|
|
31843
|
+
}
|
|
31844
|
+
},
|
|
31845
|
+
"PermissionRecoveryAttemptRelation": {
|
|
31846
|
+
"type": "string",
|
|
31847
|
+
"enum": [
|
|
31848
|
+
"initial",
|
|
31849
|
+
"retry",
|
|
31850
|
+
"alternative"
|
|
31851
|
+
],
|
|
31852
|
+
"description": "Relationship of an attempt to earlier permission requests",
|
|
31853
|
+
"title": "PermissionRecoveryAttemptRelation",
|
|
31854
|
+
"x-enumDescriptions": {
|
|
31855
|
+
"initial": "The first denied permission request in the episode.",
|
|
31856
|
+
"retry": "A request equivalent to an earlier attempt.",
|
|
31857
|
+
"alternative": "A distinct request or a successful alternative tool call."
|
|
31858
|
+
}
|
|
31859
|
+
},
|
|
31860
|
+
"PermissionRecoveryData": {
|
|
31861
|
+
"type": "object",
|
|
31862
|
+
"properties": {
|
|
31863
|
+
"episodeId": {
|
|
31864
|
+
"type": "string",
|
|
31865
|
+
"description": "Stable identifier shared by every transition in this recovery episode"
|
|
31866
|
+
},
|
|
31867
|
+
"status": {
|
|
31868
|
+
"$ref": "#/definitions/PermissionRecoveryStatus",
|
|
31869
|
+
"description": "Current lifecycle state of the recovery episode"
|
|
31870
|
+
},
|
|
31871
|
+
"onBlocked": {
|
|
31872
|
+
"$ref": "#/definitions/PermissionRecoveryOnBlocked",
|
|
31873
|
+
"description": "Policy selected from the current client's response capability; mode or client changes may update it during recovery"
|
|
31874
|
+
},
|
|
31875
|
+
"reason": {
|
|
31876
|
+
"$ref": "#/definitions/PermissionRecoveryReason",
|
|
31877
|
+
"description": "Controlled reason for the latest episode transition"
|
|
31878
|
+
},
|
|
31879
|
+
"maxAttempts": {
|
|
31880
|
+
"type": "integer",
|
|
31881
|
+
"minimum": 1,
|
|
31882
|
+
"description": "Maximum number of distinct autonomous permission attempts allowed before escalation"
|
|
31883
|
+
},
|
|
31884
|
+
"attempts": {
|
|
31885
|
+
"type": "array",
|
|
31886
|
+
"items": {
|
|
31887
|
+
"$ref": "#/definitions/PermissionRecoveryAttempt"
|
|
31888
|
+
},
|
|
31889
|
+
"description": "Ordered privacy-safe record of permission attempts and the successful alternative, when any"
|
|
31890
|
+
}
|
|
31891
|
+
},
|
|
31892
|
+
"required": [
|
|
31893
|
+
"episodeId",
|
|
31894
|
+
"status",
|
|
31895
|
+
"onBlocked",
|
|
31896
|
+
"reason",
|
|
31897
|
+
"maxAttempts",
|
|
31898
|
+
"attempts"
|
|
31899
|
+
],
|
|
31900
|
+
"additionalProperties": false,
|
|
31901
|
+
"description": "Authoritative snapshot of an Autopilot permission-recovery episode",
|
|
31902
|
+
"title": "PermissionRecoveryData"
|
|
31903
|
+
},
|
|
31904
|
+
"PermissionRecoveryOnBlocked": {
|
|
31905
|
+
"type": "string",
|
|
31906
|
+
"enum": [
|
|
31907
|
+
"ask",
|
|
31908
|
+
"fail"
|
|
31909
|
+
],
|
|
31910
|
+
"description": "Action selected when autonomous recovery cannot continue",
|
|
31911
|
+
"title": "PermissionRecoveryOnBlocked",
|
|
31912
|
+
"x-enumDescriptions": {
|
|
31913
|
+
"ask": "Surface the existing permission prompt to a response-capable client.",
|
|
31914
|
+
"fail": "Return a structured unsuccessful blocked outcome because no responder is available."
|
|
31915
|
+
}
|
|
31916
|
+
},
|
|
31917
|
+
"PermissionRecoveryReason": {
|
|
31918
|
+
"type": "string",
|
|
31919
|
+
"enum": [
|
|
31920
|
+
"permission_required",
|
|
31921
|
+
"repeated_attempt",
|
|
31922
|
+
"attempts_exhausted",
|
|
31923
|
+
"permission_approved",
|
|
31924
|
+
"permission_denied",
|
|
31925
|
+
"responder_unavailable",
|
|
31926
|
+
"equivalent_alternative_succeeded"
|
|
31927
|
+
],
|
|
31928
|
+
"description": "Controlled reason for a permission-recovery episode transition",
|
|
31929
|
+
"title": "PermissionRecoveryReason",
|
|
31930
|
+
"x-enumDescriptions": {
|
|
31931
|
+
"permission_required": "An action required permission that Assisted Permissions could not grant.",
|
|
31932
|
+
"repeated_attempt": "The agent repeated an equivalent permission request instead of making progress.",
|
|
31933
|
+
"attempts_exhausted": "The bounded number of distinct permission attempts was exhausted.",
|
|
31934
|
+
"permission_approved": "A responder approved the escalated permission request.",
|
|
31935
|
+
"permission_denied": "A responder denied the escalated permission request.",
|
|
31936
|
+
"responder_unavailable": "The response-capable client became unavailable while escalation was pending.",
|
|
31937
|
+
"equivalent_alternative_succeeded": "A later tool call succeeded without requiring the blocked permission."
|
|
31938
|
+
}
|
|
31939
|
+
},
|
|
31940
|
+
"PermissionRecoveryStatus": {
|
|
31941
|
+
"type": "string",
|
|
31942
|
+
"enum": [
|
|
31943
|
+
"recovering",
|
|
31944
|
+
"awaiting_approval",
|
|
31945
|
+
"resolved",
|
|
31946
|
+
"blocked"
|
|
31947
|
+
],
|
|
31948
|
+
"description": "Lifecycle state of a permission-recovery episode",
|
|
31949
|
+
"title": "PermissionRecoveryStatus",
|
|
31950
|
+
"x-enumDescriptions": {
|
|
31951
|
+
"recovering": "Autopilot may try a bounded equivalent alternative.",
|
|
31952
|
+
"awaiting_approval": "An interactive permission response is required.",
|
|
31953
|
+
"resolved": "The episode ended through approval or a successful equivalent alternative.",
|
|
31954
|
+
"blocked": "No autonomous path remains and the task requires intervention."
|
|
31955
|
+
}
|
|
31956
|
+
},
|
|
29763
31957
|
"PermissionRequestResult": {
|
|
29764
31958
|
"type": "object",
|
|
29765
31959
|
"properties": {
|
|
@@ -30860,6 +33054,30 @@
|
|
|
30860
33054
|
"enabled": {
|
|
30861
33055
|
"type": "boolean",
|
|
30862
33056
|
"description": "Whether the plugin is currently enabled"
|
|
33057
|
+
},
|
|
33058
|
+
"directSourceId": {
|
|
33059
|
+
"type": "string",
|
|
33060
|
+
"description": "Opaque stable identity for a direct plugin source."
|
|
33061
|
+
},
|
|
33062
|
+
"installedFrom": {
|
|
33063
|
+
"type": "string",
|
|
33064
|
+
"description": "Absolute marketplace directory for a live plugin."
|
|
33065
|
+
},
|
|
33066
|
+
"source": {
|
|
33067
|
+
"type": "string",
|
|
33068
|
+
"description": "Runtime plugin provenance, such as \"builtin\"."
|
|
33069
|
+
},
|
|
33070
|
+
"managed": {
|
|
33071
|
+
"type": "boolean",
|
|
33072
|
+
"description": "Whether enterprise managed settings control this plugin."
|
|
33073
|
+
},
|
|
33074
|
+
"managedDesiredEnabled": {
|
|
33075
|
+
"type": "boolean",
|
|
33076
|
+
"description": "Enabled state required by enterprise managed settings."
|
|
33077
|
+
},
|
|
33078
|
+
"installed": {
|
|
33079
|
+
"type": "boolean",
|
|
33080
|
+
"description": "Whether this managed desired plugin has an installed or live record."
|
|
30863
33081
|
}
|
|
30864
33082
|
},
|
|
30865
33083
|
"required": [
|
|
@@ -32607,6 +34825,51 @@
|
|
|
32607
34825
|
"description": "Pointer to a GitHub repository.",
|
|
32608
34826
|
"title": "PushGitHubRepoRef"
|
|
32609
34827
|
},
|
|
34828
|
+
"QueueAppendSteeringRequest": {
|
|
34829
|
+
"type": "object",
|
|
34830
|
+
"properties": {
|
|
34831
|
+
"messageId": {
|
|
34832
|
+
"type": "string",
|
|
34833
|
+
"description": "Message identity returned by send, not the queue item id. Only unclaimed user steering messages are eligible."
|
|
34834
|
+
},
|
|
34835
|
+
"expectedPrompt": {
|
|
34836
|
+
"type": "string",
|
|
34837
|
+
"description": "Expected current prompt, including any previous appends. The runtime applies plan-mode normalization before comparing and refuses a changed message."
|
|
34838
|
+
},
|
|
34839
|
+
"agentMode": {
|
|
34840
|
+
"$ref": "#/definitions/SendAgentMode",
|
|
34841
|
+
"description": "Mode captured at submission. Only steering messages in the same mode may be combined."
|
|
34842
|
+
},
|
|
34843
|
+
"prompt": {
|
|
34844
|
+
"type": "string",
|
|
34845
|
+
"description": "Text to append after a blank line."
|
|
34846
|
+
},
|
|
34847
|
+
"displayPrompt": {
|
|
34848
|
+
"type": "string",
|
|
34849
|
+
"description": "Display text to append to the existing preview after a blank line."
|
|
34850
|
+
},
|
|
34851
|
+
"attachments": {
|
|
34852
|
+
"type": "array",
|
|
34853
|
+
"items": {
|
|
34854
|
+
"$ref": "#/definitions/Attachment",
|
|
34855
|
+
"description": "A user message attachment — a file, directory, code selection, blob, GitHub-anchored pointer, or extension-supplied context payload"
|
|
34856
|
+
},
|
|
34857
|
+
"description": "Attachments to add after the message's existing attachments. An empty list preserves the existing attachments."
|
|
34858
|
+
}
|
|
34859
|
+
},
|
|
34860
|
+
"required": [
|
|
34861
|
+
"messageId",
|
|
34862
|
+
"expectedPrompt",
|
|
34863
|
+
"agentMode",
|
|
34864
|
+
"prompt",
|
|
34865
|
+
"displayPrompt",
|
|
34866
|
+
"attachments"
|
|
34867
|
+
],
|
|
34868
|
+
"additionalProperties": false,
|
|
34869
|
+
"description": "Append to one pending steering message without changing its identity or delivery position.",
|
|
34870
|
+
"title": "QueueAppendSteeringRequest",
|
|
34871
|
+
"stability": "experimental"
|
|
34872
|
+
},
|
|
32610
34873
|
"QueueBeginDeferredIdleDrainRequest": {
|
|
32611
34874
|
"type": "object",
|
|
32612
34875
|
"properties": {
|
|
@@ -33137,6 +35400,10 @@
|
|
|
33137
35400
|
"QueueSnapshotResult": {
|
|
33138
35401
|
"type": "object",
|
|
33139
35402
|
"properties": {
|
|
35403
|
+
"inFlightModelChangeId": {
|
|
35404
|
+
"type": "string",
|
|
35405
|
+
"description": "Queue item identifier of a model switch that has been dequeued but not yet applied."
|
|
35406
|
+
},
|
|
33140
35407
|
"items": {
|
|
33141
35408
|
"type": "array",
|
|
33142
35409
|
"items": {
|
|
@@ -33215,6 +35482,27 @@
|
|
|
33215
35482
|
"description": "Result of editing a queued message.",
|
|
33216
35483
|
"title": "QueueUpdateTextResult"
|
|
33217
35484
|
},
|
|
35485
|
+
"QueueWithdrawMessageRequest": {
|
|
35486
|
+
"type": "object",
|
|
35487
|
+
"properties": {
|
|
35488
|
+
"messageId": {
|
|
35489
|
+
"type": "string",
|
|
35490
|
+
"description": "Message identity returned by send, not the queue item id. Batch messages are not eligible."
|
|
35491
|
+
},
|
|
35492
|
+
"expectedPrompt": {
|
|
35493
|
+
"type": "string",
|
|
35494
|
+
"description": "The prompt originally sent. A message edited since submission is not withdrawn, so an obsolete draft cannot replace the edit."
|
|
35495
|
+
}
|
|
35496
|
+
},
|
|
35497
|
+
"required": [
|
|
35498
|
+
"messageId",
|
|
35499
|
+
"expectedPrompt"
|
|
35500
|
+
],
|
|
35501
|
+
"additionalProperties": false,
|
|
35502
|
+
"description": "Conditional withdrawal of a single user message, before the runtime claims it for delivery.",
|
|
35503
|
+
"title": "QueueWithdrawMessageRequest",
|
|
35504
|
+
"stability": "experimental"
|
|
35505
|
+
},
|
|
33218
35506
|
"ReasoningSummary": {
|
|
33219
35507
|
"type": "string",
|
|
33220
35508
|
"enum": [
|
|
@@ -34040,7 +36328,7 @@
|
|
|
34040
36328
|
},
|
|
34041
36329
|
"proxy": {
|
|
34042
36330
|
"$ref": "#/definitions/SandboxConfigUserPolicyNetworkProxy",
|
|
34043
|
-
"description": "HTTP(S) proxy for sandboxed traffic.
|
|
36331
|
+
"description": "HTTP(S) proxy for sandboxed traffic. This is the built-in local proxy's upstream: every sandboxed command reaches it through a loopback listener, so credentials stay in the runtime and never reach the child. On Windows the sandbox also needs local network access, because it reaches that listener over host loopback. Configure credentials in the separate username/password fields. The transient local listener URL is never persisted."
|
|
34044
36332
|
}
|
|
34045
36333
|
},
|
|
34046
36334
|
"additionalProperties": false,
|
|
@@ -35727,7 +38015,7 @@
|
|
|
35727
38015
|
"properties": {
|
|
35728
38016
|
"initialCwd": {
|
|
35729
38017
|
"type": "string",
|
|
35730
|
-
"description": "
|
|
38018
|
+
"description": "Absolute initial working directory for sessions. Registering the provider establishes this path as the root of its virtual namespace; the runtime does not require the provider to materialize or stat it before creating a session."
|
|
35731
38019
|
},
|
|
35732
38020
|
"sessionStatePath": {
|
|
35733
38021
|
"type": "string",
|
|
@@ -35748,7 +38036,7 @@
|
|
|
35748
38036
|
"conventions"
|
|
35749
38037
|
],
|
|
35750
38038
|
"additionalProperties": false,
|
|
35751
|
-
"description": "Initial working directory, session-state path layout, and path conventions used to register the calling SDK client as the session filesystem provider.",
|
|
38039
|
+
"description": "Initial working directory, session-state path layout, and path conventions used to register the calling SDK client as the session filesystem provider. A registered provider is authoritative for path interpretation and filesystem facts used by workspace permission validation. Paths are interpreted lexically; home-relative paths (`~` and `~/...`) and Windows drive-relative paths such as `C:foo` are unsupported. Until provider-side canonicalization is supported, providers must not expose symlinks inside allowed roots that escape those roots.",
|
|
35752
38040
|
"title": "SessionFsSetProviderRequest"
|
|
35753
38041
|
},
|
|
35754
38042
|
"SessionFsSetProviderResult": {
|
|
@@ -36562,7 +38850,7 @@
|
|
|
36562
38850
|
"properties": {
|
|
36563
38851
|
"disableBypassPermissionsMode": {
|
|
36564
38852
|
"type": "string",
|
|
36565
|
-
"description": "When set to `disable`, prevents bypass/allow-all permission modes.
|
|
38853
|
+
"description": "When set to `disable`, prevents bypass/allow-all permission modes. Advisory auto-approval remains available because normal prompt paths stay active. Any other value is accepted rather than failing the session, but is enforced as `disable`: the key is only present to restrict something, so a mode this runtime cannot interpret fails closed to the most restrictive one it knows. Omit the key entirely to impose no restriction."
|
|
36566
38854
|
},
|
|
36567
38855
|
"deny": {
|
|
36568
38856
|
"type": "array",
|
|
@@ -36674,6 +38962,10 @@
|
|
|
36674
38962
|
],
|
|
36675
38963
|
"description": "Current session limits, or null when no limits are active"
|
|
36676
38964
|
},
|
|
38965
|
+
"indexedSearch": {
|
|
38966
|
+
"$ref": "#/definitions/IndexedSearchState",
|
|
38967
|
+
"description": "Live indexed-search state for this session activation. Omitted by runtimes that do not expose indexed-search status; absence does not indicate enablement."
|
|
38968
|
+
},
|
|
36677
38969
|
"workspace": {
|
|
36678
38970
|
"$ref": "#/definitions/WorkspaceSummary",
|
|
36679
38971
|
"description": "Public-facing workspace metadata for this session, or null if the session has no associated workspace. Excludes runtime-internal fields (GitHub IDs, summary count, internal flags)."
|
|
@@ -37344,6 +39636,60 @@
|
|
|
37344
39636
|
"description": "Result of opening a session.",
|
|
37345
39637
|
"title": "SessionOpenResult"
|
|
37346
39638
|
},
|
|
39639
|
+
"SessionPluginsDisableRequest": {
|
|
39640
|
+
"type": "object",
|
|
39641
|
+
"properties": {
|
|
39642
|
+
"names": {
|
|
39643
|
+
"type": "array",
|
|
39644
|
+
"items": {
|
|
39645
|
+
"type": "string"
|
|
39646
|
+
},
|
|
39647
|
+
"description": "Plugin names or \"plugin@marketplace\" specs to disable. Unknown names are ignored. Non-marketplace direct installs cannot be disabled via this API; uninstall them instead. Plugin-owned MCP servers are stopped in active sessions immediately; other plugin contributions remain available until each session reloads plugins."
|
|
39648
|
+
}
|
|
39649
|
+
},
|
|
39650
|
+
"required": [
|
|
39651
|
+
"names"
|
|
39652
|
+
],
|
|
39653
|
+
"additionalProperties": false,
|
|
39654
|
+
"description": "Plugin names (or specs) to disable in the session's authoritative working directory.",
|
|
39655
|
+
"title": "SessionPluginsDisableRequest",
|
|
39656
|
+
"stability": "experimental"
|
|
39657
|
+
},
|
|
39658
|
+
"SessionPluginsEnableRequest": {
|
|
39659
|
+
"type": "object",
|
|
39660
|
+
"properties": {
|
|
39661
|
+
"names": {
|
|
39662
|
+
"type": "array",
|
|
39663
|
+
"items": {
|
|
39664
|
+
"type": "string"
|
|
39665
|
+
},
|
|
39666
|
+
"description": "Plugin names or \"plugin@marketplace\" specs to enable. Unknown names are ignored. Non-marketplace direct installs are always enabled and cannot be toggled via this API."
|
|
39667
|
+
}
|
|
39668
|
+
},
|
|
39669
|
+
"required": [
|
|
39670
|
+
"names"
|
|
39671
|
+
],
|
|
39672
|
+
"additionalProperties": false,
|
|
39673
|
+
"description": "Plugin names (or specs) to enable in the session's authoritative working directory.",
|
|
39674
|
+
"title": "SessionPluginsEnableRequest",
|
|
39675
|
+
"stability": "experimental"
|
|
39676
|
+
},
|
|
39677
|
+
"SessionPluginsInstallRequest": {
|
|
39678
|
+
"type": "object",
|
|
39679
|
+
"properties": {
|
|
39680
|
+
"source": {
|
|
39681
|
+
"type": "string",
|
|
39682
|
+
"description": "Plugin install spec. Accepts the same forms as the CLI: \"plugin@marketplace\" (marketplace install), \"owner/repo\" or \"owner/repo:subpath\" (GitHub direct), an http/https/ssh URL, or a local path. Direct (non-marketplace) installs are deprecated and will produce a deprecationWarning in the result."
|
|
39683
|
+
}
|
|
39684
|
+
},
|
|
39685
|
+
"required": [
|
|
39686
|
+
"source"
|
|
39687
|
+
],
|
|
39688
|
+
"additionalProperties": false,
|
|
39689
|
+
"description": "Plugin source resolved relative to the session's authoritative working directory.",
|
|
39690
|
+
"title": "SessionPluginsInstallRequest",
|
|
39691
|
+
"stability": "experimental"
|
|
39692
|
+
},
|
|
37347
39693
|
"SessionPruneResult": {
|
|
37348
39694
|
"type": "object",
|
|
37349
39695
|
"properties": {
|
|
@@ -40802,6 +43148,48 @@
|
|
|
40802
43148
|
"description": "Progress snapshot for an agent task, with recent activity lines and optional latest intent.",
|
|
40803
43149
|
"title": "TaskAgentProgress"
|
|
40804
43150
|
},
|
|
43151
|
+
"TaskBlocker": {
|
|
43152
|
+
"type": "object",
|
|
43153
|
+
"properties": {
|
|
43154
|
+
"kind": {
|
|
43155
|
+
"$ref": "#/definitions/TaskBlockerKind",
|
|
43156
|
+
"description": "Category of intervention that blocked the task"
|
|
43157
|
+
},
|
|
43158
|
+
"reason": {
|
|
43159
|
+
"$ref": "#/definitions/PermissionRecoveryReason",
|
|
43160
|
+
"description": "Controlled reason for the current blocked state"
|
|
43161
|
+
},
|
|
43162
|
+
"resumable": {
|
|
43163
|
+
"type": "boolean",
|
|
43164
|
+
"description": "Whether a later user response or steering message can resume the task"
|
|
43165
|
+
},
|
|
43166
|
+
"permissionRecovery": {
|
|
43167
|
+
"$ref": "#/definitions/PermissionRecoveryData",
|
|
43168
|
+
"description": "Permission-recovery episode that produced this blocker"
|
|
43169
|
+
}
|
|
43170
|
+
},
|
|
43171
|
+
"required": [
|
|
43172
|
+
"kind",
|
|
43173
|
+
"reason",
|
|
43174
|
+
"resumable",
|
|
43175
|
+
"permissionRecovery"
|
|
43176
|
+
],
|
|
43177
|
+
"additionalProperties": false,
|
|
43178
|
+
"description": "Structured reason that the task cannot continue without intervention",
|
|
43179
|
+
"title": "TaskBlocker",
|
|
43180
|
+
"stability": "experimental"
|
|
43181
|
+
},
|
|
43182
|
+
"TaskBlockerKind": {
|
|
43183
|
+
"type": "string",
|
|
43184
|
+
"enum": [
|
|
43185
|
+
"permission_recovery"
|
|
43186
|
+
],
|
|
43187
|
+
"description": "Category of structured task blocker",
|
|
43188
|
+
"title": "TaskBlockerKind",
|
|
43189
|
+
"x-enumDescriptions": {
|
|
43190
|
+
"permission_recovery": "Autopilot permission recovery requires intervention or has no safe autonomous path."
|
|
43191
|
+
}
|
|
43192
|
+
},
|
|
40805
43193
|
"TaskClientActiveStatus": {
|
|
40806
43194
|
"type": "string",
|
|
40807
43195
|
"enum": [
|
|
@@ -41245,6 +43633,10 @@
|
|
|
41245
43633
|
"objectiveId": {
|
|
41246
43634
|
"type": "integer",
|
|
41247
43635
|
"description": "Active autopilot objective ID evaluated by the completion reviewer"
|
|
43636
|
+
},
|
|
43637
|
+
"blocker": {
|
|
43638
|
+
"$ref": "#/definitions/TaskBlocker",
|
|
43639
|
+
"description": "Structured blocker details when outcome is blocked"
|
|
41248
43640
|
}
|
|
41249
43641
|
},
|
|
41250
43642
|
"additionalProperties": false,
|
|
@@ -44166,6 +46558,1727 @@
|
|
|
44166
46558
|
"description": "Effective sharing status and shareable GitHub URL after updating session visibility.",
|
|
44167
46559
|
"title": "VisibilitySetResult"
|
|
44168
46560
|
},
|
|
46561
|
+
"WorkflowAbortRequest": {
|
|
46562
|
+
"type": "object",
|
|
46563
|
+
"properties": {
|
|
46564
|
+
"runId": {
|
|
46565
|
+
"type": "string",
|
|
46566
|
+
"description": "Workflow run identifier."
|
|
46567
|
+
},
|
|
46568
|
+
"executionToken": {
|
|
46569
|
+
"type": "string",
|
|
46570
|
+
"description": "Opaque token identifying the execution attempt to abort."
|
|
46571
|
+
}
|
|
46572
|
+
},
|
|
46573
|
+
"required": [
|
|
46574
|
+
"runId",
|
|
46575
|
+
"executionToken"
|
|
46576
|
+
],
|
|
46577
|
+
"additionalProperties": false,
|
|
46578
|
+
"description": "Parameters for cooperatively aborting a workflow body.",
|
|
46579
|
+
"title": "WorkflowAbortRequest",
|
|
46580
|
+
"stability": "experimental"
|
|
46581
|
+
},
|
|
46582
|
+
"WorkflowAckResult": {
|
|
46583
|
+
"type": "object",
|
|
46584
|
+
"properties": {},
|
|
46585
|
+
"additionalProperties": false,
|
|
46586
|
+
"description": "Acknowledgement that a workflow request was accepted.",
|
|
46587
|
+
"title": "WorkflowAckResult"
|
|
46588
|
+
},
|
|
46589
|
+
"WorkflowAgentOptions": {
|
|
46590
|
+
"type": "object",
|
|
46591
|
+
"properties": {
|
|
46592
|
+
"label": {
|
|
46593
|
+
"type": "string",
|
|
46594
|
+
"description": "Optional label distinguishing otherwise identical memoized agent calls."
|
|
46595
|
+
},
|
|
46596
|
+
"schema": {
|
|
46597
|
+
"description": "Optional JSON Schema for structured agent output.",
|
|
46598
|
+
"x-opaque-json": true
|
|
46599
|
+
},
|
|
46600
|
+
"model": {
|
|
46601
|
+
"type": "string",
|
|
46602
|
+
"description": "Optional model identifier for the subagent."
|
|
46603
|
+
},
|
|
46604
|
+
"reasoningEffort": {
|
|
46605
|
+
"type": "string",
|
|
46606
|
+
"description": "Optional reasoning effort override for the subagent."
|
|
46607
|
+
},
|
|
46608
|
+
"contextTier": {
|
|
46609
|
+
"$ref": "#/definitions/ContextTier",
|
|
46610
|
+
"description": "Optional context tier override for the subagent."
|
|
46611
|
+
},
|
|
46612
|
+
"agent": {
|
|
46613
|
+
"type": "string",
|
|
46614
|
+
"description": "Optional built-in or custom agent name whose definition configures the subagent."
|
|
46615
|
+
}
|
|
46616
|
+
},
|
|
46617
|
+
"additionalProperties": false,
|
|
46618
|
+
"description": "Options for one workflow-scoped subagent call.",
|
|
46619
|
+
"title": "WorkflowAgentOptions",
|
|
46620
|
+
"stability": "experimental"
|
|
46621
|
+
},
|
|
46622
|
+
"WorkflowAgentRequest": {
|
|
46623
|
+
"type": "object",
|
|
46624
|
+
"properties": {
|
|
46625
|
+
"workflowRunId": {
|
|
46626
|
+
"type": "string",
|
|
46627
|
+
"description": "Workflow run identifier that owns the subagent."
|
|
46628
|
+
},
|
|
46629
|
+
"executionToken": {
|
|
46630
|
+
"type": "string",
|
|
46631
|
+
"description": "Opaque token identifying the current workflow execution attempt."
|
|
46632
|
+
},
|
|
46633
|
+
"prompt": {
|
|
46634
|
+
"type": "string",
|
|
46635
|
+
"description": "Prompt to send to the subagent."
|
|
46636
|
+
},
|
|
46637
|
+
"opts": {
|
|
46638
|
+
"$ref": "#/definitions/WorkflowAgentOptions",
|
|
46639
|
+
"description": "Subagent execution options."
|
|
46640
|
+
}
|
|
46641
|
+
},
|
|
46642
|
+
"required": [
|
|
46643
|
+
"workflowRunId",
|
|
46644
|
+
"executionToken",
|
|
46645
|
+
"prompt",
|
|
46646
|
+
"opts"
|
|
46647
|
+
],
|
|
46648
|
+
"additionalProperties": false,
|
|
46649
|
+
"description": "Parameters for one workflow-scoped subagent call.",
|
|
46650
|
+
"title": "WorkflowAgentRequest",
|
|
46651
|
+
"stability": "experimental"
|
|
46652
|
+
},
|
|
46653
|
+
"WorkflowAgentResult": {
|
|
46654
|
+
"type": "object",
|
|
46655
|
+
"properties": {
|
|
46656
|
+
"result": {
|
|
46657
|
+
"description": "Agent result, omitted when the agent produced no result.",
|
|
46658
|
+
"x-opaque-json": true
|
|
46659
|
+
}
|
|
46660
|
+
},
|
|
46661
|
+
"additionalProperties": false,
|
|
46662
|
+
"description": "Result of one workflow-scoped subagent call.",
|
|
46663
|
+
"title": "WorkflowAgentResult"
|
|
46664
|
+
},
|
|
46665
|
+
"WorkflowAgentSummary": {
|
|
46666
|
+
"type": "object",
|
|
46667
|
+
"properties": {
|
|
46668
|
+
"agentId": {
|
|
46669
|
+
"type": "string",
|
|
46670
|
+
"description": "Stable direct-agent identifier."
|
|
46671
|
+
},
|
|
46672
|
+
"toolCallId": {
|
|
46673
|
+
"type": "string",
|
|
46674
|
+
"description": "Tool-call identifier that launched the agent."
|
|
46675
|
+
},
|
|
46676
|
+
"runId": {
|
|
46677
|
+
"type": "string",
|
|
46678
|
+
"description": "Owning workflow run identifier."
|
|
46679
|
+
},
|
|
46680
|
+
"phaseId": {
|
|
46681
|
+
"type": [
|
|
46682
|
+
"string",
|
|
46683
|
+
"null"
|
|
46684
|
+
],
|
|
46685
|
+
"description": "Phase identifier active when the agent was launched, or null."
|
|
46686
|
+
},
|
|
46687
|
+
"label": {
|
|
46688
|
+
"type": "string",
|
|
46689
|
+
"description": "Friendly, non-unique name intended for display"
|
|
46690
|
+
},
|
|
46691
|
+
"displayName": {
|
|
46692
|
+
"type": "string",
|
|
46693
|
+
"description": "Friendly, non-unique name intended for display"
|
|
46694
|
+
},
|
|
46695
|
+
"agentType": {
|
|
46696
|
+
"type": "string",
|
|
46697
|
+
"description": "Registered agent type."
|
|
46698
|
+
},
|
|
46699
|
+
"status": {
|
|
46700
|
+
"type": "string",
|
|
46701
|
+
"description": "Current durable or live agent status."
|
|
46702
|
+
},
|
|
46703
|
+
"requestedModel": {
|
|
46704
|
+
"type": "string",
|
|
46705
|
+
"description": "Model requested when the agent was launched."
|
|
46706
|
+
},
|
|
46707
|
+
"resolvedModel": {
|
|
46708
|
+
"type": "string",
|
|
46709
|
+
"description": "Concrete model resolved for the agent."
|
|
46710
|
+
},
|
|
46711
|
+
"startedAt": {
|
|
46712
|
+
"type": "integer",
|
|
46713
|
+
"description": "Epoch milliseconds when the agent started."
|
|
46714
|
+
},
|
|
46715
|
+
"completedAt": {
|
|
46716
|
+
"type": "integer",
|
|
46717
|
+
"description": "Epoch milliseconds when the agent completed."
|
|
46718
|
+
},
|
|
46719
|
+
"activeMs": {
|
|
46720
|
+
"type": "integer",
|
|
46721
|
+
"description": "Accumulated active agent time in milliseconds."
|
|
46722
|
+
},
|
|
46723
|
+
"activity": {
|
|
46724
|
+
"type": "string",
|
|
46725
|
+
"description": "Prompt-safe live activity text."
|
|
46726
|
+
}
|
|
46727
|
+
},
|
|
46728
|
+
"required": [
|
|
46729
|
+
"agentId",
|
|
46730
|
+
"toolCallId",
|
|
46731
|
+
"runId",
|
|
46732
|
+
"phaseId",
|
|
46733
|
+
"label",
|
|
46734
|
+
"agentType",
|
|
46735
|
+
"status",
|
|
46736
|
+
"activeMs"
|
|
46737
|
+
],
|
|
46738
|
+
"additionalProperties": false,
|
|
46739
|
+
"description": "Prompt-safe durable identity and live status for a direct workflow agent.",
|
|
46740
|
+
"title": "WorkflowAgentSummary",
|
|
46741
|
+
"stability": "experimental"
|
|
46742
|
+
},
|
|
46743
|
+
"WorkflowCancelRequest": {
|
|
46744
|
+
"type": "object",
|
|
46745
|
+
"properties": {
|
|
46746
|
+
"runId": {
|
|
46747
|
+
"type": "string",
|
|
46748
|
+
"description": "Workflow run identifier."
|
|
46749
|
+
}
|
|
46750
|
+
},
|
|
46751
|
+
"required": [
|
|
46752
|
+
"runId"
|
|
46753
|
+
],
|
|
46754
|
+
"additionalProperties": false,
|
|
46755
|
+
"description": "Parameters for cancelling a workflow run.",
|
|
46756
|
+
"title": "WorkflowCancelRequest",
|
|
46757
|
+
"stability": "experimental"
|
|
46758
|
+
},
|
|
46759
|
+
"WorkflowCurrentPhase": {
|
|
46760
|
+
"type": "object",
|
|
46761
|
+
"properties": {
|
|
46762
|
+
"id": {
|
|
46763
|
+
"type": "string",
|
|
46764
|
+
"description": "Current phase identifier."
|
|
46765
|
+
},
|
|
46766
|
+
"ordinal": {
|
|
46767
|
+
"type": [
|
|
46768
|
+
"integer",
|
|
46769
|
+
"null"
|
|
46770
|
+
],
|
|
46771
|
+
"minimum": 0,
|
|
46772
|
+
"description": "Zero-based declared phase ordinal, or null for an undeclared phase."
|
|
46773
|
+
}
|
|
46774
|
+
},
|
|
46775
|
+
"required": [
|
|
46776
|
+
"id",
|
|
46777
|
+
"ordinal"
|
|
46778
|
+
],
|
|
46779
|
+
"additionalProperties": false,
|
|
46780
|
+
"description": "Current workflow phase identity.",
|
|
46781
|
+
"title": "WorkflowCurrentPhase",
|
|
46782
|
+
"stability": "experimental"
|
|
46783
|
+
},
|
|
46784
|
+
"WorkflowDeclaredLimits": {
|
|
46785
|
+
"type": "object",
|
|
46786
|
+
"properties": {
|
|
46787
|
+
"maxConcurrentSubagents": {
|
|
46788
|
+
"type": "integer",
|
|
46789
|
+
"minimum": 0,
|
|
46790
|
+
"description": "Maximum concurrently active subagents."
|
|
46791
|
+
},
|
|
46792
|
+
"maxTotalSubagents": {
|
|
46793
|
+
"type": "integer",
|
|
46794
|
+
"minimum": 0,
|
|
46795
|
+
"description": "Maximum total subagents spawned by the run."
|
|
46796
|
+
},
|
|
46797
|
+
"timeoutSeconds": {
|
|
46798
|
+
"type": "number",
|
|
46799
|
+
"description": "Maximum accumulated active execution time in seconds."
|
|
46800
|
+
},
|
|
46801
|
+
"maxAiCredits": {
|
|
46802
|
+
"type": "number",
|
|
46803
|
+
"description": "Maximum AI credits consumed by subagents and descendants."
|
|
46804
|
+
}
|
|
46805
|
+
},
|
|
46806
|
+
"additionalProperties": false,
|
|
46807
|
+
"description": "Declared or approved workflow resource ceilings.",
|
|
46808
|
+
"title": "WorkflowDeclaredLimits",
|
|
46809
|
+
"stability": "experimental"
|
|
46810
|
+
},
|
|
46811
|
+
"WorkflowDurableOperation": {
|
|
46812
|
+
"type": "string",
|
|
46813
|
+
"enum": [
|
|
46814
|
+
"createRun",
|
|
46815
|
+
"markRunStarted",
|
|
46816
|
+
"finishRun",
|
|
46817
|
+
"reserveAgent",
|
|
46818
|
+
"releaseAgent",
|
|
46819
|
+
"chargeCredit",
|
|
46820
|
+
"addElapsed",
|
|
46821
|
+
"reconcileCreditTotal",
|
|
46822
|
+
"journalGet",
|
|
46823
|
+
"journalPut",
|
|
46824
|
+
"refreshLease"
|
|
46825
|
+
],
|
|
46826
|
+
"description": "Execution-critical workflow storage operation.",
|
|
46827
|
+
"title": "WorkflowDurableOperation",
|
|
46828
|
+
"x-enumDescriptions": {
|
|
46829
|
+
"createRun": "Creating the durable run and declared phases.",
|
|
46830
|
+
"markRunStarted": "Persisting the transition to running.",
|
|
46831
|
+
"finishRun": "Persisting the terminal run envelope.",
|
|
46832
|
+
"reserveAgent": "Persisting subagent admission accounting.",
|
|
46833
|
+
"releaseAgent": "Rolling back an uncommitted subagent admission.",
|
|
46834
|
+
"chargeCredit": "Persisting an idempotent model-usage charge.",
|
|
46835
|
+
"addElapsed": "Persisting active execution time.",
|
|
46836
|
+
"reconcileCreditTotal": "Reading the authoritative AI-credit total.",
|
|
46837
|
+
"journalGet": "Reading a journal entry without treating storage failure as a cache miss.",
|
|
46838
|
+
"journalPut": "Persisting a journal entry before reporting success.",
|
|
46839
|
+
"refreshLease": "Renewing the durable owner lease that proves this process still owns the run."
|
|
46840
|
+
}
|
|
46841
|
+
},
|
|
46842
|
+
"WorkflowExecuteRequest": {
|
|
46843
|
+
"type": "object",
|
|
46844
|
+
"properties": {
|
|
46845
|
+
"name": {
|
|
46846
|
+
"type": "string",
|
|
46847
|
+
"description": "Registered workflow name."
|
|
46848
|
+
},
|
|
46849
|
+
"runId": {
|
|
46850
|
+
"type": "string",
|
|
46851
|
+
"description": "Workflow run identifier."
|
|
46852
|
+
},
|
|
46853
|
+
"executionToken": {
|
|
46854
|
+
"type": "string",
|
|
46855
|
+
"description": "Opaque token identifying this workflow execution attempt."
|
|
46856
|
+
},
|
|
46857
|
+
"args": {
|
|
46858
|
+
"description": "Workflow input value.",
|
|
46859
|
+
"x-opaque-json": true
|
|
46860
|
+
}
|
|
46861
|
+
},
|
|
46862
|
+
"required": [
|
|
46863
|
+
"name",
|
|
46864
|
+
"runId",
|
|
46865
|
+
"executionToken",
|
|
46866
|
+
"args"
|
|
46867
|
+
],
|
|
46868
|
+
"additionalProperties": false,
|
|
46869
|
+
"description": "Parameters sent to the owning extension to execute a workflow closure.",
|
|
46870
|
+
"title": "WorkflowExecuteRequest",
|
|
46871
|
+
"stability": "experimental"
|
|
46872
|
+
},
|
|
46873
|
+
"WorkflowExecuteResult": {
|
|
46874
|
+
"type": "object",
|
|
46875
|
+
"properties": {
|
|
46876
|
+
"result": {
|
|
46877
|
+
"description": "Workflow result value.",
|
|
46878
|
+
"x-opaque-json": true
|
|
46879
|
+
}
|
|
46880
|
+
},
|
|
46881
|
+
"additionalProperties": false,
|
|
46882
|
+
"description": "Result returned by an extension workflow closure.",
|
|
46883
|
+
"title": "WorkflowExecuteResult"
|
|
46884
|
+
},
|
|
46885
|
+
"WorkflowGetRunProgressRequest": {
|
|
46886
|
+
"type": "object",
|
|
46887
|
+
"properties": {
|
|
46888
|
+
"runId": {
|
|
46889
|
+
"type": "string",
|
|
46890
|
+
"description": "Workflow run identifier."
|
|
46891
|
+
},
|
|
46892
|
+
"phaseId": {
|
|
46893
|
+
"type": "string",
|
|
46894
|
+
"description": "Optional phase identifier used to scope records and cursors."
|
|
46895
|
+
},
|
|
46896
|
+
"afterSeq": {
|
|
46897
|
+
"type": "integer",
|
|
46898
|
+
"description": "Exclusive forward cursor."
|
|
46899
|
+
},
|
|
46900
|
+
"beforeSeq": {
|
|
46901
|
+
"type": "integer",
|
|
46902
|
+
"description": "Exclusive backward cursor."
|
|
46903
|
+
},
|
|
46904
|
+
"limit": {
|
|
46905
|
+
"type": "integer",
|
|
46906
|
+
"minimum": 1,
|
|
46907
|
+
"maximum": 500,
|
|
46908
|
+
"description": "Maximum records to return. Defaults to 200 and is capped at 500."
|
|
46909
|
+
}
|
|
46910
|
+
},
|
|
46911
|
+
"required": [
|
|
46912
|
+
"runId"
|
|
46913
|
+
],
|
|
46914
|
+
"additionalProperties": false,
|
|
46915
|
+
"description": "Parameters for paging workflow progress.",
|
|
46916
|
+
"title": "WorkflowGetRunProgressRequest",
|
|
46917
|
+
"stability": "experimental"
|
|
46918
|
+
},
|
|
46919
|
+
"WorkflowGetRunRequest": {
|
|
46920
|
+
"type": "object",
|
|
46921
|
+
"properties": {
|
|
46922
|
+
"runId": {
|
|
46923
|
+
"type": "string",
|
|
46924
|
+
"description": "Workflow run identifier."
|
|
46925
|
+
}
|
|
46926
|
+
},
|
|
46927
|
+
"required": [
|
|
46928
|
+
"runId"
|
|
46929
|
+
],
|
|
46930
|
+
"additionalProperties": false,
|
|
46931
|
+
"description": "Parameters for retrieving a workflow run.",
|
|
46932
|
+
"title": "WorkflowGetRunRequest",
|
|
46933
|
+
"stability": "experimental"
|
|
46934
|
+
},
|
|
46935
|
+
"WorkflowJournalGetRequest": {
|
|
46936
|
+
"type": "object",
|
|
46937
|
+
"properties": {
|
|
46938
|
+
"runId": {
|
|
46939
|
+
"type": "string",
|
|
46940
|
+
"description": "Workflow run identifier."
|
|
46941
|
+
},
|
|
46942
|
+
"executionToken": {
|
|
46943
|
+
"type": "string",
|
|
46944
|
+
"description": "Opaque token identifying the current workflow execution attempt."
|
|
46945
|
+
},
|
|
46946
|
+
"key": {
|
|
46947
|
+
"type": "string",
|
|
46948
|
+
"description": "Namespaced journal key."
|
|
46949
|
+
}
|
|
46950
|
+
},
|
|
46951
|
+
"required": [
|
|
46952
|
+
"runId",
|
|
46953
|
+
"executionToken",
|
|
46954
|
+
"key"
|
|
46955
|
+
],
|
|
46956
|
+
"additionalProperties": false,
|
|
46957
|
+
"description": "Parameters for reading a workflow journal entry.",
|
|
46958
|
+
"title": "WorkflowJournalGetRequest",
|
|
46959
|
+
"stability": "experimental"
|
|
46960
|
+
},
|
|
46961
|
+
"WorkflowJournalGetResult": {
|
|
46962
|
+
"type": "object",
|
|
46963
|
+
"properties": {
|
|
46964
|
+
"hit": {
|
|
46965
|
+
"type": "boolean",
|
|
46966
|
+
"description": "Whether the journal contained the requested key."
|
|
46967
|
+
},
|
|
46968
|
+
"resultJson": {
|
|
46969
|
+
"description": "Cached JSON result. The hit field distinguishes a cached JSON null from a miss.",
|
|
46970
|
+
"x-opaque-json": true
|
|
46971
|
+
}
|
|
46972
|
+
},
|
|
46973
|
+
"required": [
|
|
46974
|
+
"hit"
|
|
46975
|
+
],
|
|
46976
|
+
"additionalProperties": false,
|
|
46977
|
+
"description": "Result of reading a workflow journal entry.",
|
|
46978
|
+
"title": "WorkflowJournalGetResult"
|
|
46979
|
+
},
|
|
46980
|
+
"WorkflowJournalPutRequest": {
|
|
46981
|
+
"type": "object",
|
|
46982
|
+
"properties": {
|
|
46983
|
+
"runId": {
|
|
46984
|
+
"type": "string",
|
|
46985
|
+
"description": "Workflow run identifier."
|
|
46986
|
+
},
|
|
46987
|
+
"executionToken": {
|
|
46988
|
+
"type": "string",
|
|
46989
|
+
"description": "Opaque token identifying the current workflow execution attempt."
|
|
46990
|
+
},
|
|
46991
|
+
"key": {
|
|
46992
|
+
"type": "string",
|
|
46993
|
+
"description": "Namespaced journal key."
|
|
46994
|
+
},
|
|
46995
|
+
"resultJson": {
|
|
46996
|
+
"description": "JSON result to memoize.",
|
|
46997
|
+
"x-opaque-json": true
|
|
46998
|
+
}
|
|
46999
|
+
},
|
|
47000
|
+
"required": [
|
|
47001
|
+
"runId",
|
|
47002
|
+
"executionToken",
|
|
47003
|
+
"key",
|
|
47004
|
+
"resultJson"
|
|
47005
|
+
],
|
|
47006
|
+
"additionalProperties": false,
|
|
47007
|
+
"description": "Parameters for storing a workflow journal entry.",
|
|
47008
|
+
"title": "WorkflowJournalPutRequest",
|
|
47009
|
+
"stability": "experimental"
|
|
47010
|
+
},
|
|
47011
|
+
"WorkflowListRunsRequest": {
|
|
47012
|
+
"type": "object",
|
|
47013
|
+
"properties": {
|
|
47014
|
+
"afterSeq": {
|
|
47015
|
+
"type": "integer",
|
|
47016
|
+
"description": "Exclusive forward cursor."
|
|
47017
|
+
},
|
|
47018
|
+
"beforeSeq": {
|
|
47019
|
+
"type": "integer",
|
|
47020
|
+
"description": "Exclusive backward cursor."
|
|
47021
|
+
},
|
|
47022
|
+
"limit": {
|
|
47023
|
+
"type": "integer",
|
|
47024
|
+
"minimum": 1,
|
|
47025
|
+
"maximum": 500,
|
|
47026
|
+
"description": "Maximum terminal runs to return. Defaults to 200 and is capped at 500."
|
|
47027
|
+
}
|
|
47028
|
+
},
|
|
47029
|
+
"additionalProperties": false,
|
|
47030
|
+
"description": "Parameters for paging workflow runs.",
|
|
47031
|
+
"title": "WorkflowListRunsRequest",
|
|
47032
|
+
"stability": "experimental"
|
|
47033
|
+
},
|
|
47034
|
+
"WorkflowListRunsResult": {
|
|
47035
|
+
"type": "object",
|
|
47036
|
+
"properties": {
|
|
47037
|
+
"runs": {
|
|
47038
|
+
"type": "array",
|
|
47039
|
+
"items": {
|
|
47040
|
+
"$ref": "#/definitions/WorkflowRunSummary",
|
|
47041
|
+
"description": "Durable workflow run summary with read-time live overlays."
|
|
47042
|
+
},
|
|
47043
|
+
"description": "Workflow run summaries in durable creation order."
|
|
47044
|
+
},
|
|
47045
|
+
"oldestSeq": {
|
|
47046
|
+
"anyOf": [
|
|
47047
|
+
{
|
|
47048
|
+
"type": "integer"
|
|
47049
|
+
},
|
|
47050
|
+
{
|
|
47051
|
+
"type": "null"
|
|
47052
|
+
}
|
|
47053
|
+
],
|
|
47054
|
+
"description": "Oldest terminal-run cursor in this page, or null when the terminal window is empty."
|
|
47055
|
+
},
|
|
47056
|
+
"newestSeq": {
|
|
47057
|
+
"anyOf": [
|
|
47058
|
+
{
|
|
47059
|
+
"type": "integer"
|
|
47060
|
+
},
|
|
47061
|
+
{
|
|
47062
|
+
"type": "null"
|
|
47063
|
+
}
|
|
47064
|
+
],
|
|
47065
|
+
"description": "Newest terminal-run cursor in this page, or null when the terminal window is empty."
|
|
47066
|
+
},
|
|
47067
|
+
"hasMoreNewer": {
|
|
47068
|
+
"type": "boolean",
|
|
47069
|
+
"description": "Whether terminal runs newer than this page exist."
|
|
47070
|
+
},
|
|
47071
|
+
"omittedOlder": {
|
|
47072
|
+
"type": "integer",
|
|
47073
|
+
"minimum": 0,
|
|
47074
|
+
"description": "Number of terminal runs older than this page."
|
|
47075
|
+
}
|
|
47076
|
+
},
|
|
47077
|
+
"required": [
|
|
47078
|
+
"runs"
|
|
47079
|
+
],
|
|
47080
|
+
"additionalProperties": false,
|
|
47081
|
+
"description": "A page of workflow runs in durable creation order.",
|
|
47082
|
+
"title": "WorkflowListRunsResult",
|
|
47083
|
+
"stability": "experimental"
|
|
47084
|
+
},
|
|
47085
|
+
"WorkflowLogLine": {
|
|
47086
|
+
"type": "object",
|
|
47087
|
+
"properties": {
|
|
47088
|
+
"seq": {
|
|
47089
|
+
"type": "integer",
|
|
47090
|
+
"minimum": 0,
|
|
47091
|
+
"description": "Monotonic sequence number within the workflow run."
|
|
47092
|
+
},
|
|
47093
|
+
"kind": {
|
|
47094
|
+
"$ref": "#/definitions/WorkflowLogLineKind",
|
|
47095
|
+
"description": "Progress line kind."
|
|
47096
|
+
},
|
|
47097
|
+
"text": {
|
|
47098
|
+
"type": "string",
|
|
47099
|
+
"description": "Progress text."
|
|
47100
|
+
}
|
|
47101
|
+
},
|
|
47102
|
+
"required": [
|
|
47103
|
+
"seq",
|
|
47104
|
+
"kind",
|
|
47105
|
+
"text"
|
|
47106
|
+
],
|
|
47107
|
+
"additionalProperties": false,
|
|
47108
|
+
"description": "One ordered workflow progress line.",
|
|
47109
|
+
"title": "WorkflowLogLine",
|
|
47110
|
+
"stability": "experimental"
|
|
47111
|
+
},
|
|
47112
|
+
"WorkflowLogLineKind": {
|
|
47113
|
+
"type": "string",
|
|
47114
|
+
"enum": [
|
|
47115
|
+
"log",
|
|
47116
|
+
"phase"
|
|
47117
|
+
],
|
|
47118
|
+
"description": "Kind of workflow progress line.",
|
|
47119
|
+
"title": "WorkflowLogLineKind",
|
|
47120
|
+
"x-enumDescriptions": {
|
|
47121
|
+
"log": "A narrator log line.",
|
|
47122
|
+
"phase": "A named workflow phase marker."
|
|
47123
|
+
}
|
|
47124
|
+
},
|
|
47125
|
+
"WorkflowLogRequest": {
|
|
47126
|
+
"type": "object",
|
|
47127
|
+
"properties": {
|
|
47128
|
+
"runId": {
|
|
47129
|
+
"type": "string",
|
|
47130
|
+
"description": "Workflow run identifier."
|
|
47131
|
+
},
|
|
47132
|
+
"executionToken": {
|
|
47133
|
+
"type": "string",
|
|
47134
|
+
"description": "Opaque token identifying the current workflow execution attempt."
|
|
47135
|
+
},
|
|
47136
|
+
"lines": {
|
|
47137
|
+
"type": "array",
|
|
47138
|
+
"items": {
|
|
47139
|
+
"$ref": "#/definitions/WorkflowLogLine",
|
|
47140
|
+
"description": "One ordered workflow progress line."
|
|
47141
|
+
},
|
|
47142
|
+
"description": "Ordered progress lines to append."
|
|
47143
|
+
}
|
|
47144
|
+
},
|
|
47145
|
+
"required": [
|
|
47146
|
+
"runId",
|
|
47147
|
+
"executionToken",
|
|
47148
|
+
"lines"
|
|
47149
|
+
],
|
|
47150
|
+
"additionalProperties": false,
|
|
47151
|
+
"description": "Parameters for recording workflow progress.",
|
|
47152
|
+
"title": "WorkflowLogRequest",
|
|
47153
|
+
"stability": "experimental"
|
|
47154
|
+
},
|
|
47155
|
+
"WorkflowPauseCheckpointAction": {
|
|
47156
|
+
"type": "string",
|
|
47157
|
+
"enum": [
|
|
47158
|
+
"continue",
|
|
47159
|
+
"pause"
|
|
47160
|
+
],
|
|
47161
|
+
"description": "Action the runtime selected for a durable workflow pause checkpoint.",
|
|
47162
|
+
"title": "WorkflowPauseCheckpointAction",
|
|
47163
|
+
"x-enumDescriptions": {
|
|
47164
|
+
"continue": "The checkpoint was committed by a prior paused attempt, so execution may continue.",
|
|
47165
|
+
"pause": "This attempt claimed the checkpoint and must cooperatively stop."
|
|
47166
|
+
}
|
|
47167
|
+
},
|
|
47168
|
+
"WorkflowPauseCheckpointRequest": {
|
|
47169
|
+
"type": "object",
|
|
47170
|
+
"properties": {
|
|
47171
|
+
"runId": {
|
|
47172
|
+
"type": "string",
|
|
47173
|
+
"description": "Workflow run identifier."
|
|
47174
|
+
},
|
|
47175
|
+
"executionToken": {
|
|
47176
|
+
"type": "string",
|
|
47177
|
+
"description": "Opaque token identifying the execution attempt that reached the checkpoint."
|
|
47178
|
+
},
|
|
47179
|
+
"key": {
|
|
47180
|
+
"type": "string",
|
|
47181
|
+
"description": "Stable author-defined checkpoint key."
|
|
47182
|
+
}
|
|
47183
|
+
},
|
|
47184
|
+
"required": [
|
|
47185
|
+
"runId",
|
|
47186
|
+
"executionToken",
|
|
47187
|
+
"key"
|
|
47188
|
+
],
|
|
47189
|
+
"additionalProperties": false,
|
|
47190
|
+
"description": "Parameters for an owned durable pause checkpoint.",
|
|
47191
|
+
"title": "WorkflowPauseCheckpointRequest",
|
|
47192
|
+
"stability": "experimental"
|
|
47193
|
+
},
|
|
47194
|
+
"WorkflowPauseCheckpointResult": {
|
|
47195
|
+
"type": "object",
|
|
47196
|
+
"properties": {
|
|
47197
|
+
"action": {
|
|
47198
|
+
"$ref": "#/definitions/WorkflowPauseCheckpointAction",
|
|
47199
|
+
"description": "Whether this execution attempt must pause or may continue."
|
|
47200
|
+
}
|
|
47201
|
+
},
|
|
47202
|
+
"required": [
|
|
47203
|
+
"action"
|
|
47204
|
+
],
|
|
47205
|
+
"additionalProperties": false
|
|
47206
|
+
},
|
|
47207
|
+
"WorkflowPauseInfo": {
|
|
47208
|
+
"anyOf": [
|
|
47209
|
+
{
|
|
47210
|
+
"type": "object",
|
|
47211
|
+
"properties": {
|
|
47212
|
+
"type": {
|
|
47213
|
+
"type": "string",
|
|
47214
|
+
"const": "user",
|
|
47215
|
+
"description": "Workflow pause initiator discriminator."
|
|
47216
|
+
}
|
|
47217
|
+
},
|
|
47218
|
+
"required": [
|
|
47219
|
+
"type"
|
|
47220
|
+
]
|
|
47221
|
+
},
|
|
47222
|
+
{
|
|
47223
|
+
"type": "object",
|
|
47224
|
+
"properties": {
|
|
47225
|
+
"key": {
|
|
47226
|
+
"type": "string",
|
|
47227
|
+
"description": "Stable author-defined checkpoint key that initiated the pause."
|
|
47228
|
+
},
|
|
47229
|
+
"type": {
|
|
47230
|
+
"type": "string",
|
|
47231
|
+
"const": "checkpoint",
|
|
47232
|
+
"description": "Workflow pause initiator discriminator."
|
|
47233
|
+
}
|
|
47234
|
+
},
|
|
47235
|
+
"required": [
|
|
47236
|
+
"type",
|
|
47237
|
+
"key"
|
|
47238
|
+
]
|
|
47239
|
+
}
|
|
47240
|
+
],
|
|
47241
|
+
"description": "Durable metadata describing who initiated a workflow pause.",
|
|
47242
|
+
"title": "WorkflowPauseInfo"
|
|
47243
|
+
},
|
|
47244
|
+
"WorkflowPauseRequest": {
|
|
47245
|
+
"type": "object",
|
|
47246
|
+
"properties": {
|
|
47247
|
+
"runId": {
|
|
47248
|
+
"type": "string",
|
|
47249
|
+
"description": "Workflow run identifier."
|
|
47250
|
+
}
|
|
47251
|
+
},
|
|
47252
|
+
"required": [
|
|
47253
|
+
"runId"
|
|
47254
|
+
],
|
|
47255
|
+
"additionalProperties": false,
|
|
47256
|
+
"description": "Parameters for pausing a running workflow.",
|
|
47257
|
+
"title": "WorkflowPauseRequest",
|
|
47258
|
+
"stability": "experimental"
|
|
47259
|
+
},
|
|
47260
|
+
"WorkflowPhaseObservation": {
|
|
47261
|
+
"type": "object",
|
|
47262
|
+
"properties": {
|
|
47263
|
+
"id": {
|
|
47264
|
+
"type": "string",
|
|
47265
|
+
"description": "Phase identifier."
|
|
47266
|
+
},
|
|
47267
|
+
"ordinal": {
|
|
47268
|
+
"type": [
|
|
47269
|
+
"integer",
|
|
47270
|
+
"null"
|
|
47271
|
+
],
|
|
47272
|
+
"minimum": 0,
|
|
47273
|
+
"description": "Zero-based declared phase ordinal, or null for an undeclared phase."
|
|
47274
|
+
},
|
|
47275
|
+
"title": {
|
|
47276
|
+
"type": "string",
|
|
47277
|
+
"description": "Human-readable phase title."
|
|
47278
|
+
},
|
|
47279
|
+
"detail": {
|
|
47280
|
+
"type": "string",
|
|
47281
|
+
"description": "Optional human-readable phase detail."
|
|
47282
|
+
},
|
|
47283
|
+
"status": {
|
|
47284
|
+
"$ref": "#/definitions/WorkflowPhaseStatus",
|
|
47285
|
+
"description": "Derived lifecycle state of the phase."
|
|
47286
|
+
},
|
|
47287
|
+
"lastEnteredRunAttempt": {
|
|
47288
|
+
"type": "integer",
|
|
47289
|
+
"minimum": 0,
|
|
47290
|
+
"description": "Most recent run attempt that entered this phase, or `0` if the phase has never been entered."
|
|
47291
|
+
},
|
|
47292
|
+
"entryCount": {
|
|
47293
|
+
"type": "integer",
|
|
47294
|
+
"minimum": 0,
|
|
47295
|
+
"description": "Number of times execution entered this phase."
|
|
47296
|
+
},
|
|
47297
|
+
"startedAt": {
|
|
47298
|
+
"type": "integer",
|
|
47299
|
+
"description": "Epoch milliseconds when this phase first started; for a skipped phase, the synthetic skip timestamp (equal to `completedAt`)."
|
|
47300
|
+
},
|
|
47301
|
+
"completedAt": {
|
|
47302
|
+
"type": "integer",
|
|
47303
|
+
"description": "Epoch milliseconds when this phase completed; for a skipped phase, the synthetic skip timestamp (equal to `startedAt`)."
|
|
47304
|
+
},
|
|
47305
|
+
"accumulatedActiveMs": {
|
|
47306
|
+
"type": "integer",
|
|
47307
|
+
"description": "Completed active time accumulated by this phase in milliseconds."
|
|
47308
|
+
},
|
|
47309
|
+
"currentActiveMs": {
|
|
47310
|
+
"type": "integer",
|
|
47311
|
+
"description": "Current live active time for this phase in milliseconds."
|
|
47312
|
+
},
|
|
47313
|
+
"totalAgentCount": {
|
|
47314
|
+
"type": "integer",
|
|
47315
|
+
"minimum": 0,
|
|
47316
|
+
"description": "Total direct agents associated with this phase."
|
|
47317
|
+
},
|
|
47318
|
+
"liveAgentCount": {
|
|
47319
|
+
"type": "integer",
|
|
47320
|
+
"minimum": 0,
|
|
47321
|
+
"description": "Direct agents in this phase that are currently live."
|
|
47322
|
+
}
|
|
47323
|
+
},
|
|
47324
|
+
"required": [
|
|
47325
|
+
"id",
|
|
47326
|
+
"ordinal",
|
|
47327
|
+
"title",
|
|
47328
|
+
"status",
|
|
47329
|
+
"lastEnteredRunAttempt",
|
|
47330
|
+
"entryCount",
|
|
47331
|
+
"accumulatedActiveMs",
|
|
47332
|
+
"currentActiveMs",
|
|
47333
|
+
"totalAgentCount",
|
|
47334
|
+
"liveAgentCount"
|
|
47335
|
+
],
|
|
47336
|
+
"additionalProperties": false,
|
|
47337
|
+
"description": "Durable lifecycle and timing for one workflow phase.",
|
|
47338
|
+
"title": "WorkflowPhaseObservation",
|
|
47339
|
+
"stability": "experimental"
|
|
47340
|
+
},
|
|
47341
|
+
"WorkflowPhaseStatus": {
|
|
47342
|
+
"type": "string",
|
|
47343
|
+
"enum": [
|
|
47344
|
+
"pending",
|
|
47345
|
+
"active",
|
|
47346
|
+
"completed",
|
|
47347
|
+
"skipped"
|
|
47348
|
+
],
|
|
47349
|
+
"description": "Derived lifecycle state of a workflow phase.",
|
|
47350
|
+
"title": "WorkflowPhaseStatus",
|
|
47351
|
+
"x-enumDescriptions": {
|
|
47352
|
+
"pending": "The phase has not been entered yet.",
|
|
47353
|
+
"active": "The phase is currently entered and accumulating active time.",
|
|
47354
|
+
"completed": "The phase was entered and has since been closed.",
|
|
47355
|
+
"skipped": "The phase was never entered because a later phase was entered or the run reached a terminal state."
|
|
47356
|
+
},
|
|
47357
|
+
"stability": "experimental"
|
|
47358
|
+
},
|
|
47359
|
+
"WorkflowProgressLine": {
|
|
47360
|
+
"type": "object",
|
|
47361
|
+
"properties": {
|
|
47362
|
+
"seq": {
|
|
47363
|
+
"type": "integer",
|
|
47364
|
+
"minimum": 1,
|
|
47365
|
+
"description": "Global monotonic sequence number within the run."
|
|
47366
|
+
},
|
|
47367
|
+
"attempt": {
|
|
47368
|
+
"type": "integer",
|
|
47369
|
+
"minimum": 1,
|
|
47370
|
+
"description": "Resume attempt that emitted this record."
|
|
47371
|
+
},
|
|
47372
|
+
"phaseId": {
|
|
47373
|
+
"type": [
|
|
47374
|
+
"string",
|
|
47375
|
+
"null"
|
|
47376
|
+
],
|
|
47377
|
+
"description": "Phase active when the record was emitted, or null before any phase."
|
|
47378
|
+
},
|
|
47379
|
+
"recordedAt": {
|
|
47380
|
+
"type": "integer",
|
|
47381
|
+
"description": "Epoch milliseconds when the record was persisted."
|
|
47382
|
+
},
|
|
47383
|
+
"kind": {
|
|
47384
|
+
"$ref": "#/definitions/WorkflowLogLineKind",
|
|
47385
|
+
"description": "Progress record kind."
|
|
47386
|
+
},
|
|
47387
|
+
"text": {
|
|
47388
|
+
"type": "string",
|
|
47389
|
+
"description": "Prompt-safe progress text."
|
|
47390
|
+
}
|
|
47391
|
+
},
|
|
47392
|
+
"required": [
|
|
47393
|
+
"seq",
|
|
47394
|
+
"attempt",
|
|
47395
|
+
"phaseId",
|
|
47396
|
+
"recordedAt",
|
|
47397
|
+
"kind",
|
|
47398
|
+
"text"
|
|
47399
|
+
],
|
|
47400
|
+
"additionalProperties": false,
|
|
47401
|
+
"description": "One durable workflow progress record.",
|
|
47402
|
+
"title": "WorkflowProgressLine",
|
|
47403
|
+
"stability": "experimental"
|
|
47404
|
+
},
|
|
47405
|
+
"WorkflowProgressPage": {
|
|
47406
|
+
"type": "object",
|
|
47407
|
+
"properties": {
|
|
47408
|
+
"records": {
|
|
47409
|
+
"type": "array",
|
|
47410
|
+
"items": {
|
|
47411
|
+
"$ref": "#/definitions/WorkflowProgressLine",
|
|
47412
|
+
"description": "One durable workflow progress record."
|
|
47413
|
+
},
|
|
47414
|
+
"description": "Progress records in sequence order."
|
|
47415
|
+
},
|
|
47416
|
+
"oldestSeq": {
|
|
47417
|
+
"type": [
|
|
47418
|
+
"integer",
|
|
47419
|
+
"null"
|
|
47420
|
+
],
|
|
47421
|
+
"description": "Oldest sequence number in this page, or null when empty."
|
|
47422
|
+
},
|
|
47423
|
+
"newestSeq": {
|
|
47424
|
+
"type": [
|
|
47425
|
+
"integer",
|
|
47426
|
+
"null"
|
|
47427
|
+
],
|
|
47428
|
+
"description": "Newest sequence number in this page, or null when empty."
|
|
47429
|
+
},
|
|
47430
|
+
"hasMoreOlder": {
|
|
47431
|
+
"type": "boolean",
|
|
47432
|
+
"description": "Whether progress records older than this page exist."
|
|
47433
|
+
},
|
|
47434
|
+
"hasMoreNewer": {
|
|
47435
|
+
"type": "boolean",
|
|
47436
|
+
"description": "Whether progress records newer than this page exist."
|
|
47437
|
+
},
|
|
47438
|
+
"revision": {
|
|
47439
|
+
"type": "integer",
|
|
47440
|
+
"minimum": 0,
|
|
47441
|
+
"description": "Run revision reflected by this page."
|
|
47442
|
+
}
|
|
47443
|
+
},
|
|
47444
|
+
"required": [
|
|
47445
|
+
"records",
|
|
47446
|
+
"oldestSeq",
|
|
47447
|
+
"newestSeq",
|
|
47448
|
+
"hasMoreOlder",
|
|
47449
|
+
"hasMoreNewer",
|
|
47450
|
+
"revision"
|
|
47451
|
+
],
|
|
47452
|
+
"additionalProperties": false,
|
|
47453
|
+
"description": "A bidirectional page of workflow progress.",
|
|
47454
|
+
"title": "WorkflowProgressPage",
|
|
47455
|
+
"stability": "experimental"
|
|
47456
|
+
},
|
|
47457
|
+
"WorkflowResumeRequest": {
|
|
47458
|
+
"type": "object",
|
|
47459
|
+
"properties": {
|
|
47460
|
+
"runId": {
|
|
47461
|
+
"type": "string",
|
|
47462
|
+
"description": "Workflow run identifier."
|
|
47463
|
+
},
|
|
47464
|
+
"limits": {
|
|
47465
|
+
"$ref": "#/definitions/WorkflowRunLimits",
|
|
47466
|
+
"description": "Optional per-invocation resource ceiling overrides."
|
|
47467
|
+
},
|
|
47468
|
+
"notifyOnComplete": {
|
|
47469
|
+
"type": "boolean",
|
|
47470
|
+
"description": "Whether to notify the originating session when the workflow completes."
|
|
47471
|
+
},
|
|
47472
|
+
"logPhaseNames": {
|
|
47473
|
+
"type": "boolean",
|
|
47474
|
+
"description": "Whether to emit workflow phase names to the session transcript."
|
|
47475
|
+
}
|
|
47476
|
+
},
|
|
47477
|
+
"required": [
|
|
47478
|
+
"runId"
|
|
47479
|
+
],
|
|
47480
|
+
"additionalProperties": false,
|
|
47481
|
+
"description": "Parameters for resuming a workflow run from its persisted identity.",
|
|
47482
|
+
"title": "WorkflowResumeRequest",
|
|
47483
|
+
"stability": "experimental"
|
|
47484
|
+
},
|
|
47485
|
+
"WorkflowResumeResult": {
|
|
47486
|
+
"type": "object",
|
|
47487
|
+
"properties": {
|
|
47488
|
+
"workflowName": {
|
|
47489
|
+
"type": "string",
|
|
47490
|
+
"description": "Persisted workflow name resolved for the resumed run."
|
|
47491
|
+
},
|
|
47492
|
+
"run": {
|
|
47493
|
+
"$ref": "#/definitions/WorkflowRunResult",
|
|
47494
|
+
"description": "Terminal resumed run envelope."
|
|
47495
|
+
}
|
|
47496
|
+
},
|
|
47497
|
+
"required": [
|
|
47498
|
+
"workflowName",
|
|
47499
|
+
"run"
|
|
47500
|
+
],
|
|
47501
|
+
"additionalProperties": false,
|
|
47502
|
+
"description": "Resolved persisted workflow identity and resumed run envelope.",
|
|
47503
|
+
"title": "WorkflowResumeResult"
|
|
47504
|
+
},
|
|
47505
|
+
"WorkflowRunConsumed": {
|
|
47506
|
+
"type": "object",
|
|
47507
|
+
"properties": {
|
|
47508
|
+
"activeMs": {
|
|
47509
|
+
"type": "integer",
|
|
47510
|
+
"description": "Accumulated active execution time in milliseconds."
|
|
47511
|
+
},
|
|
47512
|
+
"subagents": {
|
|
47513
|
+
"type": "integer",
|
|
47514
|
+
"minimum": 0,
|
|
47515
|
+
"description": "Total subagents spawned by the run."
|
|
47516
|
+
},
|
|
47517
|
+
"nanoAiu": {
|
|
47518
|
+
"type": "integer",
|
|
47519
|
+
"description": "AI usage consumed by the run in nano-AIU."
|
|
47520
|
+
}
|
|
47521
|
+
},
|
|
47522
|
+
"required": [
|
|
47523
|
+
"activeMs",
|
|
47524
|
+
"subagents",
|
|
47525
|
+
"nanoAiu"
|
|
47526
|
+
],
|
|
47527
|
+
"additionalProperties": false,
|
|
47528
|
+
"description": "Durable workflow resource consumption.",
|
|
47529
|
+
"title": "WorkflowRunConsumed",
|
|
47530
|
+
"stability": "experimental"
|
|
47531
|
+
},
|
|
47532
|
+
"WorkflowRunDetail": {
|
|
47533
|
+
"type": "object",
|
|
47534
|
+
"properties": {
|
|
47535
|
+
"runId": {
|
|
47536
|
+
"type": "string",
|
|
47537
|
+
"description": "Workflow run identifier."
|
|
47538
|
+
},
|
|
47539
|
+
"workflowName": {
|
|
47540
|
+
"type": "string",
|
|
47541
|
+
"description": "Registered workflow name."
|
|
47542
|
+
},
|
|
47543
|
+
"description": {
|
|
47544
|
+
"type": "string",
|
|
47545
|
+
"description": "Human-readable workflow description."
|
|
47546
|
+
},
|
|
47547
|
+
"status": {
|
|
47548
|
+
"$ref": "#/definitions/WorkflowRunStatus",
|
|
47549
|
+
"description": "Current workflow run status."
|
|
47550
|
+
},
|
|
47551
|
+
"revision": {
|
|
47552
|
+
"type": "integer",
|
|
47553
|
+
"description": "Monotonic durable run revision."
|
|
47554
|
+
},
|
|
47555
|
+
"createdAt": {
|
|
47556
|
+
"type": "integer",
|
|
47557
|
+
"description": "Epoch milliseconds when the run was created."
|
|
47558
|
+
},
|
|
47559
|
+
"startedAt": {
|
|
47560
|
+
"type": [
|
|
47561
|
+
"integer",
|
|
47562
|
+
"null"
|
|
47563
|
+
],
|
|
47564
|
+
"description": "Epoch milliseconds when execution first started, or null before start."
|
|
47565
|
+
},
|
|
47566
|
+
"updatedAt": {
|
|
47567
|
+
"type": "integer",
|
|
47568
|
+
"description": "Epoch milliseconds when the durable run was last updated."
|
|
47569
|
+
},
|
|
47570
|
+
"completedAt": {
|
|
47571
|
+
"type": [
|
|
47572
|
+
"integer",
|
|
47573
|
+
"null"
|
|
47574
|
+
],
|
|
47575
|
+
"description": "Epoch milliseconds when the run completed, or null while nonterminal."
|
|
47576
|
+
},
|
|
47577
|
+
"currentPhase": {
|
|
47578
|
+
"anyOf": [
|
|
47579
|
+
{
|
|
47580
|
+
"$ref": "#/definitions/WorkflowCurrentPhase",
|
|
47581
|
+
"description": "Current workflow phase identity."
|
|
47582
|
+
},
|
|
47583
|
+
{
|
|
47584
|
+
"type": "null"
|
|
47585
|
+
}
|
|
47586
|
+
],
|
|
47587
|
+
"description": "Current phase identity, or null before any phase is entered."
|
|
47588
|
+
},
|
|
47589
|
+
"declaredPhaseCount": {
|
|
47590
|
+
"type": "integer",
|
|
47591
|
+
"minimum": 0,
|
|
47592
|
+
"description": "Number of phases declared by the workflow."
|
|
47593
|
+
},
|
|
47594
|
+
"liveAgentCount": {
|
|
47595
|
+
"type": "integer",
|
|
47596
|
+
"minimum": 0,
|
|
47597
|
+
"description": "Number of direct workflow agents currently live."
|
|
47598
|
+
},
|
|
47599
|
+
"totalSpawnedAgentCount": {
|
|
47600
|
+
"type": "integer",
|
|
47601
|
+
"minimum": 0,
|
|
47602
|
+
"description": "Total direct workflow agents spawned across all attempts."
|
|
47603
|
+
},
|
|
47604
|
+
"consumed": {
|
|
47605
|
+
"$ref": "#/definitions/WorkflowRunConsumed",
|
|
47606
|
+
"description": "Durable resource consumption."
|
|
47607
|
+
},
|
|
47608
|
+
"declaredLimits": {
|
|
47609
|
+
"$ref": "#/definitions/WorkflowDeclaredLimits",
|
|
47610
|
+
"description": "Resource ceilings declared by the workflow."
|
|
47611
|
+
},
|
|
47612
|
+
"approved": {
|
|
47613
|
+
"anyOf": [
|
|
47614
|
+
{
|
|
47615
|
+
"$ref": "#/definitions/WorkflowDeclaredLimits",
|
|
47616
|
+
"description": "Declared or approved workflow resource ceilings."
|
|
47617
|
+
},
|
|
47618
|
+
{
|
|
47619
|
+
"type": "null"
|
|
47620
|
+
}
|
|
47621
|
+
],
|
|
47622
|
+
"description": "Approved effective resource ceilings, or null until approved."
|
|
47623
|
+
},
|
|
47624
|
+
"observedAt": {
|
|
47625
|
+
"type": "integer",
|
|
47626
|
+
"description": "Epoch milliseconds when this live-overlay snapshot was observed."
|
|
47627
|
+
},
|
|
47628
|
+
"activeSegmentStartedAt": {
|
|
47629
|
+
"type": [
|
|
47630
|
+
"integer",
|
|
47631
|
+
"null"
|
|
47632
|
+
],
|
|
47633
|
+
"description": "Epoch milliseconds when the current active segment started, or null while inactive."
|
|
47634
|
+
},
|
|
47635
|
+
"terminal": {
|
|
47636
|
+
"anyOf": [
|
|
47637
|
+
{
|
|
47638
|
+
"$ref": "#/definitions/WorkflowRunTerminal",
|
|
47639
|
+
"description": "Prompt-safe terminal workflow outcome."
|
|
47640
|
+
},
|
|
47641
|
+
{
|
|
47642
|
+
"type": "null"
|
|
47643
|
+
}
|
|
47644
|
+
],
|
|
47645
|
+
"description": "Terminal run outcome, or null while nonterminal."
|
|
47646
|
+
},
|
|
47647
|
+
"canResume": {
|
|
47648
|
+
"type": "boolean",
|
|
47649
|
+
"description": "Whether the durable run state currently passes runtime resume eligibility checks."
|
|
47650
|
+
},
|
|
47651
|
+
"phases": {
|
|
47652
|
+
"type": "array",
|
|
47653
|
+
"items": {
|
|
47654
|
+
"$ref": "#/definitions/WorkflowPhaseObservation",
|
|
47655
|
+
"description": "Durable lifecycle and timing for one workflow phase."
|
|
47656
|
+
},
|
|
47657
|
+
"description": "Lifecycle and timing observations for each workflow phase."
|
|
47658
|
+
},
|
|
47659
|
+
"agents": {
|
|
47660
|
+
"type": "array",
|
|
47661
|
+
"items": {
|
|
47662
|
+
"$ref": "#/definitions/WorkflowAgentSummary",
|
|
47663
|
+
"description": "Prompt-safe durable identity and live status for a direct workflow agent."
|
|
47664
|
+
},
|
|
47665
|
+
"description": "Durable identities and live statuses for direct workflow agents."
|
|
47666
|
+
},
|
|
47667
|
+
"progress": {
|
|
47668
|
+
"$ref": "#/definitions/WorkflowProgressPage",
|
|
47669
|
+
"description": "Bidirectional page of durable workflow progress."
|
|
47670
|
+
}
|
|
47671
|
+
},
|
|
47672
|
+
"required": [
|
|
47673
|
+
"runId",
|
|
47674
|
+
"workflowName",
|
|
47675
|
+
"description",
|
|
47676
|
+
"status",
|
|
47677
|
+
"revision",
|
|
47678
|
+
"createdAt",
|
|
47679
|
+
"startedAt",
|
|
47680
|
+
"updatedAt",
|
|
47681
|
+
"completedAt",
|
|
47682
|
+
"currentPhase",
|
|
47683
|
+
"declaredPhaseCount",
|
|
47684
|
+
"liveAgentCount",
|
|
47685
|
+
"totalSpawnedAgentCount",
|
|
47686
|
+
"consumed",
|
|
47687
|
+
"declaredLimits",
|
|
47688
|
+
"approved",
|
|
47689
|
+
"observedAt",
|
|
47690
|
+
"activeSegmentStartedAt",
|
|
47691
|
+
"terminal",
|
|
47692
|
+
"canResume",
|
|
47693
|
+
"phases",
|
|
47694
|
+
"agents",
|
|
47695
|
+
"progress"
|
|
47696
|
+
],
|
|
47697
|
+
"additionalProperties": false,
|
|
47698
|
+
"description": "Full workflow run observability detail.",
|
|
47699
|
+
"title": "WorkflowRunDetail",
|
|
47700
|
+
"stability": "experimental"
|
|
47701
|
+
},
|
|
47702
|
+
"WorkflowRunFailure": {
|
|
47703
|
+
"anyOf": [
|
|
47704
|
+
{
|
|
47705
|
+
"type": "object",
|
|
47706
|
+
"properties": {
|
|
47707
|
+
"kind": {
|
|
47708
|
+
"$ref": "#/definitions/WorkflowRunFailureKind",
|
|
47709
|
+
"description": "Resource ceiling that stopped the run."
|
|
47710
|
+
},
|
|
47711
|
+
"value": {
|
|
47712
|
+
"type": "number",
|
|
47713
|
+
"exclusiveMinimum": 0,
|
|
47714
|
+
"description": "Approved effective ceiling that was reached."
|
|
47715
|
+
},
|
|
47716
|
+
"suggestedValue": {
|
|
47717
|
+
"type": "number",
|
|
47718
|
+
"description": "Suggested larger ceiling when the runtime can derive one safely."
|
|
47719
|
+
},
|
|
47720
|
+
"runId": {
|
|
47721
|
+
"type": "string",
|
|
47722
|
+
"description": "Workflow run identifier."
|
|
47723
|
+
},
|
|
47724
|
+
"type": {
|
|
47725
|
+
"type": "string",
|
|
47726
|
+
"const": "workflow_limit_reached",
|
|
47727
|
+
"description": "Workflow failure variant discriminator."
|
|
47728
|
+
}
|
|
47729
|
+
},
|
|
47730
|
+
"required": [
|
|
47731
|
+
"type",
|
|
47732
|
+
"kind",
|
|
47733
|
+
"value",
|
|
47734
|
+
"runId"
|
|
47735
|
+
],
|
|
47736
|
+
"additionalProperties": false
|
|
47737
|
+
},
|
|
47738
|
+
{
|
|
47739
|
+
"type": "object",
|
|
47740
|
+
"properties": {
|
|
47741
|
+
"runId": {
|
|
47742
|
+
"type": "string",
|
|
47743
|
+
"description": "Workflow run identifier whose changed limits were declined."
|
|
47744
|
+
},
|
|
47745
|
+
"reason": {
|
|
47746
|
+
"type": "string",
|
|
47747
|
+
"description": "Human-readable reason the resume did not proceed."
|
|
47748
|
+
},
|
|
47749
|
+
"type": {
|
|
47750
|
+
"type": "string",
|
|
47751
|
+
"const": "workflow_resume_declined",
|
|
47752
|
+
"description": "Workflow failure variant discriminator."
|
|
47753
|
+
}
|
|
47754
|
+
},
|
|
47755
|
+
"required": [
|
|
47756
|
+
"type",
|
|
47757
|
+
"runId",
|
|
47758
|
+
"reason"
|
|
47759
|
+
],
|
|
47760
|
+
"additionalProperties": false
|
|
47761
|
+
},
|
|
47762
|
+
{
|
|
47763
|
+
"type": "object",
|
|
47764
|
+
"properties": {
|
|
47765
|
+
"code": {
|
|
47766
|
+
"type": "string",
|
|
47767
|
+
"description": "Stable failure code."
|
|
47768
|
+
},
|
|
47769
|
+
"operation": {
|
|
47770
|
+
"$ref": "#/definitions/WorkflowDurableOperation",
|
|
47771
|
+
"description": "Execution-critical durable operation that failed."
|
|
47772
|
+
},
|
|
47773
|
+
"runId": {
|
|
47774
|
+
"type": "string",
|
|
47775
|
+
"description": "Workflow run identifier."
|
|
47776
|
+
},
|
|
47777
|
+
"type": {
|
|
47778
|
+
"type": "string",
|
|
47779
|
+
"const": "workflow_durable_failure",
|
|
47780
|
+
"description": "Workflow failure variant discriminator."
|
|
47781
|
+
}
|
|
47782
|
+
},
|
|
47783
|
+
"required": [
|
|
47784
|
+
"type",
|
|
47785
|
+
"code",
|
|
47786
|
+
"operation",
|
|
47787
|
+
"runId"
|
|
47788
|
+
],
|
|
47789
|
+
"additionalProperties": false
|
|
47790
|
+
},
|
|
47791
|
+
{
|
|
47792
|
+
"type": "object",
|
|
47793
|
+
"properties": {
|
|
47794
|
+
"runId": {
|
|
47795
|
+
"type": "string",
|
|
47796
|
+
"description": "Workflow run identifier."
|
|
47797
|
+
},
|
|
47798
|
+
"drainedNanoAiu": {
|
|
47799
|
+
"type": "integer",
|
|
47800
|
+
"description": "Confirmed usage in nano-AIU, representing the floor of what the run spent."
|
|
47801
|
+
},
|
|
47802
|
+
"type": {
|
|
47803
|
+
"type": "string",
|
|
47804
|
+
"const": "workflow_accounting_incomplete",
|
|
47805
|
+
"description": "Workflow failure variant discriminator."
|
|
47806
|
+
}
|
|
47807
|
+
},
|
|
47808
|
+
"required": [
|
|
47809
|
+
"type",
|
|
47810
|
+
"runId",
|
|
47811
|
+
"drainedNanoAiu"
|
|
47812
|
+
],
|
|
47813
|
+
"additionalProperties": false,
|
|
47814
|
+
"description": "The run stopped because its usage accounting could not be completed."
|
|
47815
|
+
},
|
|
47816
|
+
{
|
|
47817
|
+
"type": "object",
|
|
47818
|
+
"properties": {
|
|
47819
|
+
"runId": {
|
|
47820
|
+
"type": "string",
|
|
47821
|
+
"description": "Workflow run identifier."
|
|
47822
|
+
},
|
|
47823
|
+
"type": {
|
|
47824
|
+
"type": "string",
|
|
47825
|
+
"const": "workflow_provider_disconnected",
|
|
47826
|
+
"description": "Workflow failure variant discriminator."
|
|
47827
|
+
}
|
|
47828
|
+
},
|
|
47829
|
+
"required": [
|
|
47830
|
+
"type",
|
|
47831
|
+
"runId"
|
|
47832
|
+
],
|
|
47833
|
+
"additionalProperties": false,
|
|
47834
|
+
"description": "The extension that owns the workflow disconnected while the run was executing, so the host halted it. The run's journaled subagent results are preserved so a resume can reuse them."
|
|
47835
|
+
}
|
|
47836
|
+
],
|
|
47837
|
+
"description": "Machine-readable workflow run failure.",
|
|
47838
|
+
"title": "WorkflowRunFailure"
|
|
47839
|
+
},
|
|
47840
|
+
"WorkflowRunFailureKind": {
|
|
47841
|
+
"type": "string",
|
|
47842
|
+
"enum": [
|
|
47843
|
+
"maxTotalSubagents",
|
|
47844
|
+
"timeoutSeconds",
|
|
47845
|
+
"maxAiCredits"
|
|
47846
|
+
],
|
|
47847
|
+
"description": "Cumulative resource ceiling that stopped a workflow run.",
|
|
47848
|
+
"title": "WorkflowRunFailureKind",
|
|
47849
|
+
"x-enumDescriptions": {
|
|
47850
|
+
"maxTotalSubagents": "The run admitted the approved maximum total number of subagents.",
|
|
47851
|
+
"timeoutSeconds": "The run reached the approved accumulated active-execution time in seconds.",
|
|
47852
|
+
"maxAiCredits": "The run's settled subagent model usage exceeded the approved AI-credit ceiling, or no headroom remained for another subagent."
|
|
47853
|
+
}
|
|
47854
|
+
},
|
|
47855
|
+
"WorkflowRunLimits": {
|
|
47856
|
+
"type": "object",
|
|
47857
|
+
"properties": {
|
|
47858
|
+
"maxConcurrentSubagents": {
|
|
47859
|
+
"type": [
|
|
47860
|
+
"integer",
|
|
47861
|
+
"null"
|
|
47862
|
+
],
|
|
47863
|
+
"minimum": 0,
|
|
47864
|
+
"exclusiveMinimum": 0,
|
|
47865
|
+
"description": "Maximum number of workflow subagents that may run concurrently."
|
|
47866
|
+
},
|
|
47867
|
+
"maxTotalSubagents": {
|
|
47868
|
+
"type": [
|
|
47869
|
+
"integer",
|
|
47870
|
+
"null"
|
|
47871
|
+
],
|
|
47872
|
+
"minimum": 0,
|
|
47873
|
+
"exclusiveMinimum": 0,
|
|
47874
|
+
"description": "Maximum total number of workflow subagents that may be admitted."
|
|
47875
|
+
},
|
|
47876
|
+
"timeoutSeconds": {
|
|
47877
|
+
"type": [
|
|
47878
|
+
"number",
|
|
47879
|
+
"null"
|
|
47880
|
+
],
|
|
47881
|
+
"exclusiveMinimum": 0,
|
|
47882
|
+
"maximum": 2147483.647,
|
|
47883
|
+
"description": "Maximum accumulated active-execution time in seconds. Active execution includes the entire extension body, subprocess waits, queued-agent waits, and sleeps; time between resumed attempts is not counted."
|
|
47884
|
+
},
|
|
47885
|
+
"maxAiCredits": {
|
|
47886
|
+
"type": [
|
|
47887
|
+
"number",
|
|
47888
|
+
"null"
|
|
47889
|
+
],
|
|
47890
|
+
"exclusiveMinimum": 0,
|
|
47891
|
+
"description": "Maximum AI credits consumed by workflow subagents and their descendants. The post-paid ceiling is soft: parallel turns can settle beyond it before the run stops."
|
|
47892
|
+
}
|
|
47893
|
+
},
|
|
47894
|
+
"additionalProperties": false,
|
|
47895
|
+
"description": "Wire-only per-invocation workflow resource ceiling overrides.",
|
|
47896
|
+
"title": "WorkflowRunLimits",
|
|
47897
|
+
"stability": "experimental"
|
|
47898
|
+
},
|
|
47899
|
+
"WorkflowRunOptions": {
|
|
47900
|
+
"type": "object",
|
|
47901
|
+
"properties": {
|
|
47902
|
+
"limits": {
|
|
47903
|
+
"$ref": "#/definitions/WorkflowRunLimits",
|
|
47904
|
+
"description": "Per-invocation resource ceiling overrides."
|
|
47905
|
+
},
|
|
47906
|
+
"notifyOnComplete": {
|
|
47907
|
+
"type": "boolean",
|
|
47908
|
+
"description": "Whether to notify the originating session when the workflow completes."
|
|
47909
|
+
},
|
|
47910
|
+
"logPhaseNames": {
|
|
47911
|
+
"type": "boolean",
|
|
47912
|
+
"description": "Whether to emit workflow phase names to the session transcript."
|
|
47913
|
+
},
|
|
47914
|
+
"resumeFromRunId": {
|
|
47915
|
+
"type": "string",
|
|
47916
|
+
"description": "Run identifier whose journal and progress should seed this resumed run."
|
|
47917
|
+
}
|
|
47918
|
+
},
|
|
47919
|
+
"additionalProperties": false,
|
|
47920
|
+
"description": "Options controlling workflow invocation.",
|
|
47921
|
+
"title": "WorkflowRunOptions",
|
|
47922
|
+
"stability": "experimental"
|
|
47923
|
+
},
|
|
47924
|
+
"WorkflowRunRequest": {
|
|
47925
|
+
"type": "object",
|
|
47926
|
+
"properties": {
|
|
47927
|
+
"name": {
|
|
47928
|
+
"type": "string",
|
|
47929
|
+
"description": "Registered workflow name."
|
|
47930
|
+
},
|
|
47931
|
+
"args": {
|
|
47932
|
+
"description": "Workflow input value.",
|
|
47933
|
+
"x-opaque-json": true
|
|
47934
|
+
},
|
|
47935
|
+
"options": {
|
|
47936
|
+
"$ref": "#/definitions/WorkflowRunOptions",
|
|
47937
|
+
"description": "Workflow invocation options."
|
|
47938
|
+
}
|
|
47939
|
+
},
|
|
47940
|
+
"required": [
|
|
47941
|
+
"name",
|
|
47942
|
+
"args"
|
|
47943
|
+
],
|
|
47944
|
+
"additionalProperties": false,
|
|
47945
|
+
"description": "Parameters for invoking a registered workflow.",
|
|
47946
|
+
"title": "WorkflowRunRequest",
|
|
47947
|
+
"stability": "experimental"
|
|
47948
|
+
},
|
|
47949
|
+
"WorkflowRunResult": {
|
|
47950
|
+
"type": "object",
|
|
47951
|
+
"properties": {
|
|
47952
|
+
"runId": {
|
|
47953
|
+
"type": "string",
|
|
47954
|
+
"description": "Workflow run identifier."
|
|
47955
|
+
},
|
|
47956
|
+
"attempt": {
|
|
47957
|
+
"type": "integer",
|
|
47958
|
+
"minimum": 1,
|
|
47959
|
+
"maximum": 4294967295,
|
|
47960
|
+
"description": "One-based execution attempt represented by this envelope. Absent before the first attempt starts or when returned by an older runtime."
|
|
47961
|
+
},
|
|
47962
|
+
"status": {
|
|
47963
|
+
"$ref": "#/definitions/WorkflowRunStatus",
|
|
47964
|
+
"description": "Current or terminal workflow run status."
|
|
47965
|
+
},
|
|
47966
|
+
"result": {
|
|
47967
|
+
"description": "Completed workflow result.",
|
|
47968
|
+
"x-opaque-json": true
|
|
47969
|
+
},
|
|
47970
|
+
"error": {
|
|
47971
|
+
"type": "string",
|
|
47972
|
+
"description": "Error message for an errored run."
|
|
47973
|
+
},
|
|
47974
|
+
"failure": {
|
|
47975
|
+
"$ref": "#/definitions/WorkflowRunFailure",
|
|
47976
|
+
"description": "Machine-readable failure details for a halted or errored run."
|
|
47977
|
+
},
|
|
47978
|
+
"reason": {
|
|
47979
|
+
"type": "string",
|
|
47980
|
+
"description": "Reason for a halted or cancelled run."
|
|
47981
|
+
},
|
|
47982
|
+
"snapshot": {
|
|
47983
|
+
"description": "Partial journal and progress snapshot for a halted, cancelled, or errored run.",
|
|
47984
|
+
"x-opaque-json": true
|
|
47985
|
+
},
|
|
47986
|
+
"pauseInfo": {
|
|
47987
|
+
"$ref": "#/definitions/WorkflowPauseInfo",
|
|
47988
|
+
"description": "Structured pause initiator metadata for a paused attempt."
|
|
47989
|
+
}
|
|
47990
|
+
},
|
|
47991
|
+
"required": [
|
|
47992
|
+
"runId",
|
|
47993
|
+
"status"
|
|
47994
|
+
],
|
|
47995
|
+
"additionalProperties": false,
|
|
47996
|
+
"description": "Complete current or terminal workflow run envelope.",
|
|
47997
|
+
"title": "WorkflowRunResult"
|
|
47998
|
+
},
|
|
47999
|
+
"WorkflowRunStatus": {
|
|
48000
|
+
"type": "string",
|
|
48001
|
+
"enum": [
|
|
48002
|
+
"pending",
|
|
48003
|
+
"running",
|
|
48004
|
+
"completed",
|
|
48005
|
+
"halted",
|
|
48006
|
+
"paused",
|
|
48007
|
+
"cancelled",
|
|
48008
|
+
"error"
|
|
48009
|
+
],
|
|
48010
|
+
"description": "Current or terminal state of a workflow run.",
|
|
48011
|
+
"title": "WorkflowRunStatus",
|
|
48012
|
+
"x-enumDescriptions": {
|
|
48013
|
+
"pending": "The run was minted and is awaiting approval.",
|
|
48014
|
+
"running": "The run is executing.",
|
|
48015
|
+
"completed": "The run completed successfully.",
|
|
48016
|
+
"halted": "The run was interrupted while resource budget remained.",
|
|
48017
|
+
"paused": "The current attempt stopped intentionally and the run may be resumed.",
|
|
48018
|
+
"cancelled": "The run was cancelled before completion.",
|
|
48019
|
+
"error": "The workflow body failed or reached a cumulative resource ceiling."
|
|
48020
|
+
}
|
|
48021
|
+
},
|
|
48022
|
+
"WorkflowRunSummary": {
|
|
48023
|
+
"type": "object",
|
|
48024
|
+
"properties": {
|
|
48025
|
+
"runId": {
|
|
48026
|
+
"type": "string",
|
|
48027
|
+
"description": "Workflow run identifier."
|
|
48028
|
+
},
|
|
48029
|
+
"workflowName": {
|
|
48030
|
+
"type": "string",
|
|
48031
|
+
"description": "Registered workflow name."
|
|
48032
|
+
},
|
|
48033
|
+
"description": {
|
|
48034
|
+
"type": "string",
|
|
48035
|
+
"description": "Human-readable workflow description."
|
|
48036
|
+
},
|
|
48037
|
+
"status": {
|
|
48038
|
+
"$ref": "#/definitions/WorkflowRunStatus",
|
|
48039
|
+
"description": "Current workflow run status."
|
|
48040
|
+
},
|
|
48041
|
+
"revision": {
|
|
48042
|
+
"type": "integer",
|
|
48043
|
+
"description": "Monotonic durable run revision."
|
|
48044
|
+
},
|
|
48045
|
+
"createdAt": {
|
|
48046
|
+
"type": "integer",
|
|
48047
|
+
"description": "Epoch milliseconds when the run was created."
|
|
48048
|
+
},
|
|
48049
|
+
"startedAt": {
|
|
48050
|
+
"type": [
|
|
48051
|
+
"integer",
|
|
48052
|
+
"null"
|
|
48053
|
+
],
|
|
48054
|
+
"description": "Epoch milliseconds when execution first started, or null before start."
|
|
48055
|
+
},
|
|
48056
|
+
"updatedAt": {
|
|
48057
|
+
"type": "integer",
|
|
48058
|
+
"description": "Epoch milliseconds when the durable run was last updated."
|
|
48059
|
+
},
|
|
48060
|
+
"completedAt": {
|
|
48061
|
+
"type": [
|
|
48062
|
+
"integer",
|
|
48063
|
+
"null"
|
|
48064
|
+
],
|
|
48065
|
+
"description": "Epoch milliseconds when the run completed, or null while nonterminal."
|
|
48066
|
+
},
|
|
48067
|
+
"currentPhase": {
|
|
48068
|
+
"anyOf": [
|
|
48069
|
+
{
|
|
48070
|
+
"$ref": "#/definitions/WorkflowCurrentPhase",
|
|
48071
|
+
"description": "Current workflow phase identity."
|
|
48072
|
+
},
|
|
48073
|
+
{
|
|
48074
|
+
"type": "null"
|
|
48075
|
+
}
|
|
48076
|
+
],
|
|
48077
|
+
"description": "Current phase identity, or null before any phase is entered."
|
|
48078
|
+
},
|
|
48079
|
+
"declaredPhaseCount": {
|
|
48080
|
+
"type": "integer",
|
|
48081
|
+
"minimum": 0,
|
|
48082
|
+
"description": "Number of phases declared by the workflow."
|
|
48083
|
+
},
|
|
48084
|
+
"liveAgentCount": {
|
|
48085
|
+
"type": "integer",
|
|
48086
|
+
"minimum": 0,
|
|
48087
|
+
"description": "Number of direct workflow agents currently live."
|
|
48088
|
+
},
|
|
48089
|
+
"totalSpawnedAgentCount": {
|
|
48090
|
+
"type": "integer",
|
|
48091
|
+
"minimum": 0,
|
|
48092
|
+
"description": "Total direct workflow agents spawned across all attempts."
|
|
48093
|
+
},
|
|
48094
|
+
"consumed": {
|
|
48095
|
+
"$ref": "#/definitions/WorkflowRunConsumed",
|
|
48096
|
+
"description": "Durable resource consumption."
|
|
48097
|
+
},
|
|
48098
|
+
"declaredLimits": {
|
|
48099
|
+
"$ref": "#/definitions/WorkflowDeclaredLimits",
|
|
48100
|
+
"description": "Resource ceilings declared by the workflow."
|
|
48101
|
+
},
|
|
48102
|
+
"approved": {
|
|
48103
|
+
"anyOf": [
|
|
48104
|
+
{
|
|
48105
|
+
"$ref": "#/definitions/WorkflowDeclaredLimits",
|
|
48106
|
+
"description": "Declared or approved workflow resource ceilings."
|
|
48107
|
+
},
|
|
48108
|
+
{
|
|
48109
|
+
"type": "null"
|
|
48110
|
+
}
|
|
48111
|
+
],
|
|
48112
|
+
"description": "Approved effective resource ceilings, or null until approved."
|
|
48113
|
+
},
|
|
48114
|
+
"observedAt": {
|
|
48115
|
+
"type": "integer",
|
|
48116
|
+
"description": "Epoch milliseconds when this live-overlay snapshot was observed."
|
|
48117
|
+
},
|
|
48118
|
+
"activeSegmentStartedAt": {
|
|
48119
|
+
"type": [
|
|
48120
|
+
"integer",
|
|
48121
|
+
"null"
|
|
48122
|
+
],
|
|
48123
|
+
"description": "Epoch milliseconds when the current active segment started, or null while inactive."
|
|
48124
|
+
},
|
|
48125
|
+
"terminal": {
|
|
48126
|
+
"anyOf": [
|
|
48127
|
+
{
|
|
48128
|
+
"$ref": "#/definitions/WorkflowRunTerminal",
|
|
48129
|
+
"description": "Prompt-safe terminal workflow outcome."
|
|
48130
|
+
},
|
|
48131
|
+
{
|
|
48132
|
+
"type": "null"
|
|
48133
|
+
}
|
|
48134
|
+
],
|
|
48135
|
+
"description": "Terminal run outcome, or null while nonterminal."
|
|
48136
|
+
},
|
|
48137
|
+
"canResume": {
|
|
48138
|
+
"type": "boolean",
|
|
48139
|
+
"description": "Whether the durable run state currently passes runtime resume eligibility checks."
|
|
48140
|
+
}
|
|
48141
|
+
},
|
|
48142
|
+
"required": [
|
|
48143
|
+
"runId",
|
|
48144
|
+
"workflowName",
|
|
48145
|
+
"description",
|
|
48146
|
+
"status",
|
|
48147
|
+
"revision",
|
|
48148
|
+
"createdAt",
|
|
48149
|
+
"startedAt",
|
|
48150
|
+
"updatedAt",
|
|
48151
|
+
"completedAt",
|
|
48152
|
+
"currentPhase",
|
|
48153
|
+
"declaredPhaseCount",
|
|
48154
|
+
"liveAgentCount",
|
|
48155
|
+
"totalSpawnedAgentCount",
|
|
48156
|
+
"consumed",
|
|
48157
|
+
"declaredLimits",
|
|
48158
|
+
"approved",
|
|
48159
|
+
"observedAt",
|
|
48160
|
+
"activeSegmentStartedAt",
|
|
48161
|
+
"terminal",
|
|
48162
|
+
"canResume"
|
|
48163
|
+
],
|
|
48164
|
+
"additionalProperties": false,
|
|
48165
|
+
"description": "Durable workflow run summary with read-time live overlays.",
|
|
48166
|
+
"title": "WorkflowRunSummary",
|
|
48167
|
+
"stability": "experimental"
|
|
48168
|
+
},
|
|
48169
|
+
"WorkflowRunTerminal": {
|
|
48170
|
+
"type": "object",
|
|
48171
|
+
"properties": {
|
|
48172
|
+
"reason": {
|
|
48173
|
+
"type": "string",
|
|
48174
|
+
"description": "Human-readable terminal reason."
|
|
48175
|
+
},
|
|
48176
|
+
"failure": {
|
|
48177
|
+
"$ref": "#/definitions/WorkflowRunFailure",
|
|
48178
|
+
"description": "Machine-readable terminal failure."
|
|
48179
|
+
},
|
|
48180
|
+
"error": {
|
|
48181
|
+
"type": "string",
|
|
48182
|
+
"description": "Human-readable terminal error."
|
|
48183
|
+
},
|
|
48184
|
+
"resultPreview": {
|
|
48185
|
+
"type": "string",
|
|
48186
|
+
"description": "Prompt-safe preview of the completed result."
|
|
48187
|
+
},
|
|
48188
|
+
"pauseInfo": {
|
|
48189
|
+
"anyOf": [
|
|
48190
|
+
{
|
|
48191
|
+
"$ref": "#/definitions/WorkflowPauseInfo",
|
|
48192
|
+
"description": "Durable metadata describing who initiated a workflow pause."
|
|
48193
|
+
},
|
|
48194
|
+
{
|
|
48195
|
+
"type": "null"
|
|
48196
|
+
}
|
|
48197
|
+
],
|
|
48198
|
+
"description": "Pause initiator metadata, or null when the run did not pause."
|
|
48199
|
+
}
|
|
48200
|
+
},
|
|
48201
|
+
"required": [
|
|
48202
|
+
"pauseInfo"
|
|
48203
|
+
],
|
|
48204
|
+
"additionalProperties": false,
|
|
48205
|
+
"description": "Prompt-safe terminal workflow outcome.",
|
|
48206
|
+
"title": "WorkflowRunTerminal",
|
|
48207
|
+
"stability": "experimental"
|
|
48208
|
+
},
|
|
48209
|
+
"WorkflowToolResumeRequest": {
|
|
48210
|
+
"type": "object",
|
|
48211
|
+
"properties": {
|
|
48212
|
+
"runId": {
|
|
48213
|
+
"type": "string",
|
|
48214
|
+
"description": "Workflow run identifier."
|
|
48215
|
+
},
|
|
48216
|
+
"limits": {
|
|
48217
|
+
"$ref": "#/definitions/WorkflowRunLimits",
|
|
48218
|
+
"description": "Optional per-invocation resource ceiling overrides."
|
|
48219
|
+
},
|
|
48220
|
+
"toolCallId": {
|
|
48221
|
+
"type": "string",
|
|
48222
|
+
"description": "Opaque identifier of the originating tool call."
|
|
48223
|
+
}
|
|
48224
|
+
},
|
|
48225
|
+
"required": [
|
|
48226
|
+
"runId"
|
|
48227
|
+
],
|
|
48228
|
+
"additionalProperties": false,
|
|
48229
|
+
"description": "Internal parameters for resuming a workflow run from a tool.",
|
|
48230
|
+
"title": "WorkflowToolResumeRequest",
|
|
48231
|
+
"visibility": "internal",
|
|
48232
|
+
"stability": "experimental"
|
|
48233
|
+
},
|
|
48234
|
+
"WorkflowToolRunOptions": {
|
|
48235
|
+
"type": "object",
|
|
48236
|
+
"properties": {
|
|
48237
|
+
"limits": {
|
|
48238
|
+
"$ref": "#/definitions/WorkflowRunLimits",
|
|
48239
|
+
"description": "Per-invocation resource ceiling overrides."
|
|
48240
|
+
},
|
|
48241
|
+
"resumeFromRunId": {
|
|
48242
|
+
"type": "string",
|
|
48243
|
+
"description": "Run identifier whose journal and progress should seed this resumed run."
|
|
48244
|
+
}
|
|
48245
|
+
},
|
|
48246
|
+
"additionalProperties": false,
|
|
48247
|
+
"description": "Options for an internal tool-originated workflow invocation.",
|
|
48248
|
+
"title": "WorkflowToolRunOptions",
|
|
48249
|
+
"visibility": "internal",
|
|
48250
|
+
"stability": "experimental"
|
|
48251
|
+
},
|
|
48252
|
+
"WorkflowToolRunRequest": {
|
|
48253
|
+
"type": "object",
|
|
48254
|
+
"properties": {
|
|
48255
|
+
"name": {
|
|
48256
|
+
"type": "string",
|
|
48257
|
+
"description": "Registered workflow name."
|
|
48258
|
+
},
|
|
48259
|
+
"args": {
|
|
48260
|
+
"description": "Workflow input value.",
|
|
48261
|
+
"x-opaque-json": true
|
|
48262
|
+
},
|
|
48263
|
+
"options": {
|
|
48264
|
+
"$ref": "#/definitions/WorkflowToolRunOptions",
|
|
48265
|
+
"description": "Tool-originated workflow invocation options."
|
|
48266
|
+
},
|
|
48267
|
+
"toolCallId": {
|
|
48268
|
+
"type": "string",
|
|
48269
|
+
"description": "Opaque identifier of the originating tool call."
|
|
48270
|
+
}
|
|
48271
|
+
},
|
|
48272
|
+
"required": [
|
|
48273
|
+
"name",
|
|
48274
|
+
"args"
|
|
48275
|
+
],
|
|
48276
|
+
"additionalProperties": false,
|
|
48277
|
+
"description": "Internal parameters for invoking a registered workflow from a tool.",
|
|
48278
|
+
"title": "WorkflowToolRunRequest",
|
|
48279
|
+
"visibility": "internal",
|
|
48280
|
+
"stability": "experimental"
|
|
48281
|
+
},
|
|
44169
48282
|
"WorkspaceDiffFileChange": {
|
|
44170
48283
|
"type": "object",
|
|
44171
48284
|
"properties": {
|