@claudexor/schema 1.0.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.
Files changed (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +16 -0
  3. package/dist/agent-capabilities.d.ts +366 -0
  4. package/dist/agent-capabilities.d.ts.map +1 -0
  5. package/dist/agent-capabilities.js +125 -0
  6. package/dist/agent-capabilities.js.map +1 -0
  7. package/dist/apply-eligibility.d.ts +76 -0
  8. package/dist/apply-eligibility.d.ts.map +1 -0
  9. package/dist/apply-eligibility.js +37 -0
  10. package/dist/apply-eligibility.js.map +1 -0
  11. package/dist/attachment.d.ts +69 -0
  12. package/dist/attachment.d.ts.map +1 -0
  13. package/dist/attachment.js +54 -0
  14. package/dist/attachment.js.map +1 -0
  15. package/dist/budget.d.ts +75 -0
  16. package/dist/budget.d.ts.map +1 -0
  17. package/dist/budget.js +54 -0
  18. package/dist/budget.js.map +1 -0
  19. package/dist/config.d.ts +743 -0
  20. package/dist/config.d.ts.map +1 -0
  21. package/dist/config.js +194 -0
  22. package/dist/config.js.map +1 -0
  23. package/dist/context.d.ts +222 -0
  24. package/dist/context.d.ts.map +1 -0
  25. package/dist/context.js +70 -0
  26. package/dist/context.js.map +1 -0
  27. package/dist/control-run-detail.d.ts +1686 -0
  28. package/dist/control-run-detail.d.ts.map +1 -0
  29. package/dist/control-run-detail.js +107 -0
  30. package/dist/control-run-detail.js.map +1 -0
  31. package/dist/control-trust.d.ts +79 -0
  32. package/dist/control-trust.d.ts.map +1 -0
  33. package/dist/control-trust.js +39 -0
  34. package/dist/control-trust.js.map +1 -0
  35. package/dist/control.d.ts +4226 -0
  36. package/dist/control.d.ts.map +1 -0
  37. package/dist/control.js +1022 -0
  38. package/dist/control.js.map +1 -0
  39. package/dist/decision.d.ts +208 -0
  40. package/dist/decision.d.ts.map +1 -0
  41. package/dist/decision.js +98 -0
  42. package/dist/decision.js.map +1 -0
  43. package/dist/events.d.ts +70 -0
  44. package/dist/events.d.ts.map +1 -0
  45. package/dist/events.js +105 -0
  46. package/dist/events.js.map +1 -0
  47. package/dist/gate.d.ts +37 -0
  48. package/dist/gate.d.ts.map +1 -0
  49. package/dist/gate.js +20 -0
  50. package/dist/gate.js.map +1 -0
  51. package/dist/harness.d.ts +1418 -0
  52. package/dist/harness.d.ts.map +1 -0
  53. package/dist/harness.js +552 -0
  54. package/dist/harness.js.map +1 -0
  55. package/dist/index.d.ts +32 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +32 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/orchestrate.d.ts +428 -0
  60. package/dist/orchestrate.d.ts.map +1 -0
  61. package/dist/orchestrate.js +246 -0
  62. package/dist/orchestrate.js.map +1 -0
  63. package/dist/primitives.d.ts +71 -0
  64. package/dist/primitives.d.ts.map +1 -0
  65. package/dist/primitives.js +114 -0
  66. package/dist/primitives.js.map +1 -0
  67. package/dist/review.d.ts +220 -0
  68. package/dist/review.d.ts.map +1 -0
  69. package/dist/review.js +91 -0
  70. package/dist/review.js.map +1 -0
  71. package/dist/route.d.ts +67 -0
  72. package/dist/route.d.ts.map +1 -0
  73. package/dist/route.js +33 -0
  74. package/dist/route.js.map +1 -0
  75. package/dist/spec.d.ts +561 -0
  76. package/dist/spec.d.ts.map +1 -0
  77. package/dist/spec.js +133 -0
  78. package/dist/spec.js.map +1 -0
  79. package/dist/surface-run-controls.d.ts +14 -0
  80. package/dist/surface-run-controls.d.ts.map +1 -0
  81. package/dist/surface-run-controls.js +142 -0
  82. package/dist/surface-run-controls.js.map +1 -0
  83. package/dist/task.d.ts +565 -0
  84. package/dist/task.d.ts.map +1 -0
  85. package/dist/task.js +186 -0
  86. package/dist/task.js.map +1 -0
  87. package/dist/telemetry.d.ts +660 -0
  88. package/dist/telemetry.d.ts.map +1 -0
  89. package/dist/telemetry.js +140 -0
  90. package/dist/telemetry.js.map +1 -0
  91. package/dist/thread.d.ts +348 -0
  92. package/dist/thread.d.ts.map +1 -0
  93. package/dist/thread.js +194 -0
  94. package/dist/thread.js.map +1 -0
  95. package/dist/workproduct.d.ts +31 -0
  96. package/dist/workproduct.d.ts.map +1 -0
  97. package/dist/workproduct.js +25 -0
  98. package/dist/workproduct.js.map +1 -0
  99. package/dist/workspace.d.ts +53 -0
  100. package/dist/workspace.d.ts.map +1 -0
  101. package/dist/workspace.js +30 -0
  102. package/dist/workspace.js.map +1 -0
  103. package/generated/AgentCapabilityCatalog.schema.json +389 -0
  104. package/generated/ApplyEligibility.schema.json +44 -0
  105. package/generated/BudgetLease.schema.json +95 -0
  106. package/generated/BudgetObservation.schema.json +76 -0
  107. package/generated/ConformanceReport.schema.json +107 -0
  108. package/generated/ContextPack.schema.json +186 -0
  109. package/generated/ControlApplyCheckRequest.schema.json +54 -0
  110. package/generated/ControlApplyRequest.schema.json +74 -0
  111. package/generated/ControlHarnessListResponse.schema.json +498 -0
  112. package/generated/ControlHarnessModelsResponse.schema.json +78 -0
  113. package/generated/ControlHarnessSettingsPatch.schema.json +130 -0
  114. package/generated/ControlInteractionAnswerRequest.schema.json +48 -0
  115. package/generated/ControlInteractionAnswerResponse.schema.json +35 -0
  116. package/generated/ControlPendingInteraction.schema.json +129 -0
  117. package/generated/ControlQueuedRunInfo.schema.json +44 -0
  118. package/generated/ControlRunControlRequest.schema.json +61 -0
  119. package/generated/ControlRunControlResponse.schema.json +40 -0
  120. package/generated/ControlRunDecisionRequest.schema.json +98 -0
  121. package/generated/ControlRunDecisionResponse.schema.json +40 -0
  122. package/generated/ControlRunDetail.schema.json +1925 -0
  123. package/generated/ControlRunStartInfo.schema.json +33 -0
  124. package/generated/ControlRunStartRequest.schema.json +429 -0
  125. package/generated/ControlRunSummary.schema.json +666 -0
  126. package/generated/ControlSecretListResponse.schema.json +57 -0
  127. package/generated/ControlSettingsSnapshot.schema.json +281 -0
  128. package/generated/ControlSettingsUpdateRequest.schema.json +212 -0
  129. package/generated/ControlSetupJob.schema.json +148 -0
  130. package/generated/ControlSetupJobConfirmRequest.schema.json +18 -0
  131. package/generated/ControlSetupJobCreateRequest.schema.json +38 -0
  132. package/generated/ControlSetupJobEvent.schema.json +58 -0
  133. package/generated/ControlSetupJobListResponse.schema.json +162 -0
  134. package/generated/ControlSpecFreezeRequest.schema.json +83 -0
  135. package/generated/ControlSpecQuestionsRequest.schema.json +80 -0
  136. package/generated/ControlThread.schema.json +129 -0
  137. package/generated/ControlThreadApplyRequest.schema.json +32 -0
  138. package/generated/ControlThreadApplyResponse.schema.json +47 -0
  139. package/generated/ControlThreadCreateRequest.schema.json +107 -0
  140. package/generated/ControlThreadDetail.schema.json +515 -0
  141. package/generated/ControlThreadListResponse.schema.json +141 -0
  142. package/generated/ControlThreadUpdateRequest.schema.json +46 -0
  143. package/generated/ControlTrustListResponse.schema.json +59 -0
  144. package/generated/ControlTrustState.schema.json +45 -0
  145. package/generated/ControlTrustUpdateRequest.schema.json +26 -0
  146. package/generated/DecisionRecord.schema.json +232 -0
  147. package/generated/GateResult.schema.json +81 -0
  148. package/generated/GlobalConfig.schema.json +313 -0
  149. package/generated/HarnessEvent.schema.json +360 -0
  150. package/generated/HarnessManifest.schema.json +350 -0
  151. package/generated/HarnessModel.schema.json +41 -0
  152. package/generated/HarnessStatusDto.schema.json +486 -0
  153. package/generated/McpRunToolResult.schema.json +91 -0
  154. package/generated/OrchestrateContract.schema.json +93 -0
  155. package/generated/OrchestratePlan.schema.json +244 -0
  156. package/generated/OrchestratePlanProgress.schema.json +103 -0
  157. package/generated/ProjectConfig.schema.json +95 -0
  158. package/generated/ReviewFinding.schema.json +226 -0
  159. package/generated/RouteFallbackPayload.schema.json +79 -0
  160. package/generated/RouteProof.schema.json +111 -0
  161. package/generated/RunControl.schema.json +51 -0
  162. package/generated/RunEvent.schema.json +103 -0
  163. package/generated/RunFailure.schema.json +98 -0
  164. package/generated/RunTelemetry.schema.json +433 -0
  165. package/generated/SecretMetadata.schema.json +34 -0
  166. package/generated/Session.schema.json +80 -0
  167. package/generated/SessionReboundLineage.schema.json +73 -0
  168. package/generated/SpecPack.schema.json +372 -0
  169. package/generated/TaskContract.schema.json +501 -0
  170. package/generated/Thread.schema.json +176 -0
  171. package/generated/ThreadTurn.schema.json +172 -0
  172. package/generated/TrustConfig.schema.json +44 -0
  173. package/generated/WorkProduct.schema.json +60 -0
  174. package/generated/WorkspaceEnvelope.schema.json +94 -0
  175. package/package.json +43 -0
@@ -0,0 +1,130 @@
1
+ {
2
+ "$ref": "#/definitions/ControlHarnessSettingsPatch",
3
+ "definitions": {
4
+ "ControlHarnessSettingsPatch": {
5
+ "type": "object",
6
+ "properties": {
7
+ "enabled": {
8
+ "type": "boolean",
9
+ "description": "Enable/disable the harness for routing."
10
+ },
11
+ "defaultModel": {
12
+ "anyOf": [
13
+ {
14
+ "type": "string",
15
+ "minLength": 1,
16
+ "pattern": "\\S",
17
+ "description": "User-supplied string that must contain visible content, not just whitespace."
18
+ },
19
+ {
20
+ "type": "null"
21
+ }
22
+ ],
23
+ "description": "New per-harness default model; null clears it."
24
+ },
25
+ "effort": {
26
+ "anyOf": [
27
+ {
28
+ "type": "string",
29
+ "enum": [
30
+ "low",
31
+ "medium",
32
+ "high",
33
+ "xhigh",
34
+ "max"
35
+ ],
36
+ "description": "Cross-harness reasoning-effort level, weakest to strongest; adapters declare the subset they support and a shared normalizer clamps requests onto the nearest supported level."
37
+ },
38
+ {
39
+ "type": "null"
40
+ }
41
+ ],
42
+ "description": "New default reasoning effort; null clears it."
43
+ },
44
+ "maxTurns": {
45
+ "anyOf": [
46
+ {
47
+ "type": "integer",
48
+ "exclusiveMinimum": 0
49
+ },
50
+ {
51
+ "type": "null"
52
+ }
53
+ ],
54
+ "description": "New max agent turns; null clears the limit."
55
+ },
56
+ "maxRounds": {
57
+ "anyOf": [
58
+ {
59
+ "type": "integer",
60
+ "exclusiveMinimum": 0
61
+ },
62
+ {
63
+ "type": "null"
64
+ }
65
+ ],
66
+ "description": "New max convergence rounds; null clears it."
67
+ },
68
+ "maxUsd": {
69
+ "anyOf": [
70
+ {
71
+ "type": "number",
72
+ "minimum": 0
73
+ },
74
+ {
75
+ "type": "null"
76
+ }
77
+ ],
78
+ "description": "New per-harness USD cap; null clears it."
79
+ },
80
+ "toolsAllow": {
81
+ "type": "array",
82
+ "items": {
83
+ "$ref": "#/definitions/ControlHarnessSettingsPatch/properties/defaultModel/anyOf/0"
84
+ },
85
+ "description": "New tool allowlist."
86
+ },
87
+ "toolsDeny": {
88
+ "type": "array",
89
+ "items": {
90
+ "$ref": "#/definitions/ControlHarnessSettingsPatch/properties/defaultModel/anyOf/0"
91
+ },
92
+ "description": "New tool denylist."
93
+ },
94
+ "fallbackModel": {
95
+ "anyOf": [
96
+ {
97
+ "$ref": "#/definitions/ControlHarnessSettingsPatch/properties/defaultModel/anyOf/0"
98
+ },
99
+ {
100
+ "type": "null"
101
+ }
102
+ ],
103
+ "description": "New fallback model; null clears it."
104
+ },
105
+ "web": {
106
+ "type": "string",
107
+ "enum": [
108
+ "off",
109
+ "auto",
110
+ "cached",
111
+ "live"
112
+ ],
113
+ "description": "New default web policy."
114
+ },
115
+ "authPreference": {
116
+ "type": "string",
117
+ "enum": [
118
+ "subscription",
119
+ "api_key",
120
+ "auto"
121
+ ],
122
+ "description": "New auth route preference."
123
+ }
124
+ },
125
+ "additionalProperties": false,
126
+ "description": "Partial per-harness settings patch; absent fields keep their stored value, and a typoed key 400s (strict)."
127
+ }
128
+ },
129
+ "$schema": "http://json-schema.org/draft-07/schema#"
130
+ }
@@ -0,0 +1,48 @@
1
+ {
2
+ "$ref": "#/definitions/ControlInteractionAnswerRequest",
3
+ "definitions": {
4
+ "ControlInteractionAnswerRequest": {
5
+ "type": "object",
6
+ "properties": {
7
+ "answers": {
8
+ "type": "array",
9
+ "items": {
10
+ "type": "object",
11
+ "properties": {
12
+ "questionId": {
13
+ "type": "string",
14
+ "minLength": 1,
15
+ "description": "Id of the question being answered."
16
+ },
17
+ "selectedLabels": {
18
+ "type": "array",
19
+ "items": {
20
+ "type": "string"
21
+ },
22
+ "default": [],
23
+ "description": "Labels of the selected options."
24
+ },
25
+ "freeText": {
26
+ "type": [
27
+ "string",
28
+ "null"
29
+ ],
30
+ "default": null,
31
+ "description": "Free-text answer; null when only options were selected."
32
+ }
33
+ },
34
+ "required": [
35
+ "questionId"
36
+ ],
37
+ "additionalProperties": false
38
+ },
39
+ "default": [],
40
+ "description": "Answers, one per question."
41
+ }
42
+ },
43
+ "additionalProperties": false,
44
+ "description": "Request body answering a pending interactive question."
45
+ }
46
+ },
47
+ "$schema": "http://json-schema.org/draft-07/schema#"
48
+ }
@@ -0,0 +1,35 @@
1
+ {
2
+ "$ref": "#/definitions/ControlInteractionAnswerResponse",
3
+ "definitions": {
4
+ "ControlInteractionAnswerResponse": {
5
+ "type": "object",
6
+ "properties": {
7
+ "accepted": {
8
+ "type": "boolean",
9
+ "description": "Whether the answer was accepted."
10
+ },
11
+ "status": {
12
+ "type": "string",
13
+ "enum": [
14
+ "delivered",
15
+ "not_found",
16
+ "already_resolved",
17
+ "rejected"
18
+ ],
19
+ "description": "Delivery outcome: delivered into the live session, interaction not found, already resolved, or rejected."
20
+ },
21
+ "message": {
22
+ "type": "string",
23
+ "description": "Human-readable detail."
24
+ }
25
+ },
26
+ "required": [
27
+ "accepted",
28
+ "status"
29
+ ],
30
+ "additionalProperties": false,
31
+ "description": "Response to an interaction answer."
32
+ }
33
+ },
34
+ "$schema": "http://json-schema.org/draft-07/schema#"
35
+ }
@@ -0,0 +1,129 @@
1
+ {
2
+ "$ref": "#/definitions/ControlPendingInteraction",
3
+ "definitions": {
4
+ "ControlPendingInteraction": {
5
+ "type": "object",
6
+ "properties": {
7
+ "interactionId": {
8
+ "type": "string",
9
+ "minLength": 1,
10
+ "description": "Interaction id used to answer."
11
+ },
12
+ "runId": {
13
+ "type": "string",
14
+ "minLength": 1,
15
+ "description": "Run the interaction belongs to."
16
+ },
17
+ "attemptId": {
18
+ "type": [
19
+ "string",
20
+ "null"
21
+ ],
22
+ "default": null,
23
+ "description": "Attempt the interaction was raised in, when known."
24
+ },
25
+ "harnessId": {
26
+ "type": [
27
+ "string",
28
+ "null"
29
+ ],
30
+ "default": null,
31
+ "description": "Harness that raised the interaction."
32
+ },
33
+ "sourceTool": {
34
+ "type": [
35
+ "string",
36
+ "null"
37
+ ],
38
+ "default": null,
39
+ "description": "Native tool that raised the request."
40
+ },
41
+ "questions": {
42
+ "type": "array",
43
+ "items": {
44
+ "type": "object",
45
+ "properties": {
46
+ "id": {
47
+ "type": "string",
48
+ "minLength": 1,
49
+ "description": "Question id."
50
+ },
51
+ "question": {
52
+ "type": "string",
53
+ "description": "The question text."
54
+ },
55
+ "header": {
56
+ "type": [
57
+ "string",
58
+ "null"
59
+ ],
60
+ "default": null,
61
+ "description": "Short chip/header text some harnesses attach to a question."
62
+ },
63
+ "options": {
64
+ "type": "array",
65
+ "items": {
66
+ "type": "object",
67
+ "properties": {
68
+ "label": {
69
+ "type": "string",
70
+ "description": "Option label shown to the user."
71
+ },
72
+ "description": {
73
+ "type": [
74
+ "string",
75
+ "null"
76
+ ],
77
+ "default": null,
78
+ "description": "Optional longer explanation of the option."
79
+ }
80
+ },
81
+ "required": [
82
+ "label"
83
+ ],
84
+ "additionalProperties": false,
85
+ "description": "One multiple-choice option of an interactive question."
86
+ },
87
+ "default": [],
88
+ "description": "Selectable options; empty for free-text-only questions."
89
+ },
90
+ "multi_select": {
91
+ "type": "boolean",
92
+ "default": false,
93
+ "description": "Whether multiple options may be selected."
94
+ }
95
+ },
96
+ "required": [
97
+ "id",
98
+ "question"
99
+ ],
100
+ "additionalProperties": false,
101
+ "description": "One question of an interactive user-input request."
102
+ },
103
+ "default": [],
104
+ "description": "Questions awaiting answers."
105
+ },
106
+ "requestedAt": {
107
+ "type": "string",
108
+ "description": "When the interaction was requested."
109
+ },
110
+ "timeoutAt": {
111
+ "type": [
112
+ "string",
113
+ "null"
114
+ ],
115
+ "default": null,
116
+ "description": "When the interaction times out into a benign decline; null = no timeout."
117
+ }
118
+ },
119
+ "required": [
120
+ "interactionId",
121
+ "runId",
122
+ "requestedAt"
123
+ ],
124
+ "additionalProperties": false,
125
+ "description": "A live interactive question awaiting the user's answer (snapshot projection)."
126
+ }
127
+ },
128
+ "$schema": "http://json-schema.org/draft-07/schema#"
129
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "$ref": "#/definitions/ControlQueuedRunInfo",
3
+ "definitions": {
4
+ "ControlQueuedRunInfo": {
5
+ "type": "object",
6
+ "properties": {
7
+ "jobId": {
8
+ "type": "string",
9
+ "description": "Daemon job id."
10
+ },
11
+ "state": {
12
+ "type": "string",
13
+ "enum": [
14
+ "queued",
15
+ "running",
16
+ "blocked",
17
+ "succeeded",
18
+ "no_op",
19
+ "ungated",
20
+ "review_not_run",
21
+ "failed",
22
+ "cancelled",
23
+ "interrupted",
24
+ "exhausted",
25
+ "not_converged",
26
+ "stuck_no_progress"
27
+ ],
28
+ "description": "Control-plane run state: queued/running while live; blocked awaiting a human; then a terminal outcome (succeeded, no_op, ungated, review_not_run, failed, cancelled, interrupted, exhausted, not_converged, stuck_no_progress)."
29
+ },
30
+ "error": {
31
+ "type": "string",
32
+ "description": "Error message, when the job failed."
33
+ }
34
+ },
35
+ "required": [
36
+ "jobId",
37
+ "state"
38
+ ],
39
+ "additionalProperties": false,
40
+ "description": "Compact state of a queued/running daemon job."
41
+ }
42
+ },
43
+ "$schema": "http://json-schema.org/draft-07/schema#"
44
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "$ref": "#/definitions/ControlRunControlRequest",
3
+ "definitions": {
4
+ "ControlRunControlRequest": {
5
+ "type": "object",
6
+ "properties": {
7
+ "control": {
8
+ "type": "object",
9
+ "properties": {
10
+ "kind": {
11
+ "type": "string",
12
+ "enum": [
13
+ "cancel"
14
+ ],
15
+ "description": "Control verb: cancel the run."
16
+ },
17
+ "target": {
18
+ "type": "object",
19
+ "properties": {
20
+ "attemptId": {
21
+ "type": "string",
22
+ "description": "Attempt to target; omitted = the whole run."
23
+ },
24
+ "harnessId": {
25
+ "type": "string",
26
+ "description": "Harness to target."
27
+ },
28
+ "sessionId": {
29
+ "type": "string",
30
+ "description": "Session to target."
31
+ },
32
+ "requestId": {
33
+ "type": "string",
34
+ "description": "Specific request to target."
35
+ }
36
+ },
37
+ "additionalProperties": false,
38
+ "description": "Optional narrowing of what a run control verb targets.",
39
+ "default": {}
40
+ },
41
+ "reason": {
42
+ "type": "string",
43
+ "description": "Human-readable reason for the control."
44
+ }
45
+ },
46
+ "required": [
47
+ "kind"
48
+ ],
49
+ "additionalProperties": false,
50
+ "description": "A control verb (cancel) aimed at a run or a narrower target inside it."
51
+ }
52
+ },
53
+ "required": [
54
+ "control"
55
+ ],
56
+ "additionalProperties": false,
57
+ "description": "Request body for POST /runs/:id/control."
58
+ }
59
+ },
60
+ "$schema": "http://json-schema.org/draft-07/schema#"
61
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "$ref": "#/definitions/ControlRunControlResponse",
3
+ "definitions": {
4
+ "ControlRunControlResponse": {
5
+ "type": "object",
6
+ "properties": {
7
+ "accepted": {
8
+ "type": "boolean",
9
+ "description": "Whether the control was accepted."
10
+ },
11
+ "status": {
12
+ "type": "string",
13
+ "enum": [
14
+ "applied",
15
+ "queued",
16
+ "rejected",
17
+ "unsupported"
18
+ ],
19
+ "default": "queued",
20
+ "description": "Outcome: applied immediately, queued, rejected, or unsupported for this run."
21
+ },
22
+ "runId": {
23
+ "type": "string",
24
+ "minLength": 1,
25
+ "description": "Run the control was applied to."
26
+ },
27
+ "message": {
28
+ "type": "string",
29
+ "description": "Human-readable detail."
30
+ }
31
+ },
32
+ "required": [
33
+ "accepted"
34
+ ],
35
+ "additionalProperties": false,
36
+ "description": "Response to a run control request."
37
+ }
38
+ },
39
+ "$schema": "http://json-schema.org/draft-07/schema#"
40
+ }
@@ -0,0 +1,98 @@
1
+ {
2
+ "$ref": "#/definitions/ControlRunDecisionRequest",
3
+ "definitions": {
4
+ "ControlRunDecisionRequest": {
5
+ "type": "object",
6
+ "properties": {
7
+ "action": {
8
+ "type": "string",
9
+ "enum": [
10
+ "accept_clean_patch",
11
+ "rerun_with_feedback",
12
+ "accept_risk",
13
+ "override_needs_human",
14
+ "revert_run"
15
+ ],
16
+ "description": "Operator decision on a blocked run: accept_clean_patch (apply it), rerun_with_feedback, accept_risk, override_needs_human, or revert_run (restore the pre-turn snapshot)."
17
+ },
18
+ "findingIds": {
19
+ "type": "array",
20
+ "items": {
21
+ "type": "string",
22
+ "minLength": 1,
23
+ "description": "Non-empty identifier string."
24
+ },
25
+ "default": [],
26
+ "description": "Findings the decision targets (override/accept_risk)."
27
+ },
28
+ "feedback": {
29
+ "type": "string",
30
+ "description": "Reviewer feedback to seed a rerun turn."
31
+ },
32
+ "acceptedRisks": {
33
+ "type": "array",
34
+ "items": {
35
+ "type": "string"
36
+ },
37
+ "default": [],
38
+ "description": "Risk reasons being explicitly accepted (recorded, never silent)."
39
+ },
40
+ "applyMode": {
41
+ "type": "string",
42
+ "enum": [
43
+ "artifact_only",
44
+ "apply",
45
+ "branch",
46
+ "commit",
47
+ "pr"
48
+ ],
49
+ "description": "Delivery mode for accept_clean_patch."
50
+ },
51
+ "target": {
52
+ "anyOf": [
53
+ {
54
+ "type": "object",
55
+ "properties": {
56
+ "kind": {
57
+ "type": "string",
58
+ "const": "original_project"
59
+ }
60
+ },
61
+ "required": [
62
+ "kind"
63
+ ],
64
+ "additionalProperties": false,
65
+ "description": "Apply to the project the run originally came from."
66
+ },
67
+ {
68
+ "type": "object",
69
+ "properties": {
70
+ "kind": {
71
+ "type": "string",
72
+ "const": "project"
73
+ },
74
+ "root": {
75
+ "type": "string",
76
+ "description": "Absolute path of the target project root."
77
+ }
78
+ },
79
+ "required": [
80
+ "kind",
81
+ "root"
82
+ ],
83
+ "additionalProperties": false,
84
+ "description": "Apply to an explicitly named project root."
85
+ }
86
+ ],
87
+ "description": "Delivery target for accept_clean_patch."
88
+ }
89
+ },
90
+ "required": [
91
+ "action"
92
+ ],
93
+ "additionalProperties": false,
94
+ "description": "Typed, auditable operator decision on a NEEDS_HUMAN-blocked run."
95
+ }
96
+ },
97
+ "$schema": "http://json-schema.org/draft-07/schema#"
98
+ }
@@ -0,0 +1,40 @@
1
+ {
2
+ "$ref": "#/definitions/ControlRunDecisionResponse",
3
+ "definitions": {
4
+ "ControlRunDecisionResponse": {
5
+ "type": "object",
6
+ "properties": {
7
+ "accepted": {
8
+ "type": "boolean",
9
+ "description": "Whether the decision was accepted."
10
+ },
11
+ "status": {
12
+ "type": "string",
13
+ "enum": [
14
+ "applied",
15
+ "requeued",
16
+ "rejected",
17
+ "unsupported"
18
+ ],
19
+ "description": "Outcome: applied, requeued (a new turn was enqueued), rejected, or unsupported."
20
+ },
21
+ "newRunId": {
22
+ "type": "string",
23
+ "minLength": 1,
24
+ "description": "New run id when the decision re-enqueues a turn (rerun_with_feedback)."
25
+ },
26
+ "message": {
27
+ "type": "string",
28
+ "description": "Human-readable detail."
29
+ }
30
+ },
31
+ "required": [
32
+ "accepted",
33
+ "status"
34
+ ],
35
+ "additionalProperties": false,
36
+ "description": "Response to an operator run decision."
37
+ }
38
+ },
39
+ "$schema": "http://json-schema.org/draft-07/schema#"
40
+ }