@claudexor/schema 3.19.0 → 3.22.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 (139) hide show
  1. package/dist/agent-capabilities.d.ts +1 -1
  2. package/dist/agent-capabilities.d.ts.map +1 -1
  3. package/dist/agent-capabilities.js +1 -0
  4. package/dist/agent-capabilities.js.map +1 -1
  5. package/dist/continuation-admission.d.ts +41 -0
  6. package/dist/continuation-admission.d.ts.map +1 -0
  7. package/dist/continuation-admission.js +136 -0
  8. package/dist/continuation-admission.js.map +1 -0
  9. package/dist/control-gc.d.ts +9 -0
  10. package/dist/control-gc.d.ts.map +1 -1
  11. package/dist/control-gc.js +12 -0
  12. package/dist/control-gc.js.map +1 -1
  13. package/dist/control-operation-responses.d.ts +415 -9
  14. package/dist/control-operation-responses.d.ts.map +1 -1
  15. package/dist/control-operation-responses.js +2 -0
  16. package/dist/control-operation-responses.js.map +1 -1
  17. package/dist/control-run-detail.d.ts +891 -25
  18. package/dist/control-run-detail.d.ts.map +1 -1
  19. package/dist/control-run-failure.d.ts +36 -6
  20. package/dist/control-run-failure.d.ts.map +1 -1
  21. package/dist/control-run-failure.js +1 -0
  22. package/dist/control-run-failure.js.map +1 -1
  23. package/dist/control-thread-requests.d.ts +101 -0
  24. package/dist/control-thread-requests.d.ts.map +1 -0
  25. package/dist/control-thread-requests.js +52 -0
  26. package/dist/control-thread-requests.js.map +1 -0
  27. package/dist/control.d.ts +377 -106
  28. package/dist/control.d.ts.map +1 -1
  29. package/dist/control.js +26 -45
  30. package/dist/control.js.map +1 -1
  31. package/dist/credential-profile-snapshot.d.ts +172 -14
  32. package/dist/credential-profile-snapshot.d.ts.map +1 -1
  33. package/dist/credential-profile.d.ts +4 -1
  34. package/dist/credential-profile.d.ts.map +1 -1
  35. package/dist/credential-profile.js +3 -2
  36. package/dist/credential-profile.js.map +1 -1
  37. package/dist/decision.d.ts +12 -0
  38. package/dist/decision.d.ts.map +1 -1
  39. package/dist/effort.d.ts +33 -12
  40. package/dist/effort.d.ts.map +1 -1
  41. package/dist/effort.js +43 -13
  42. package/dist/effort.js.map +1 -1
  43. package/dist/events.d.ts +7 -4
  44. package/dist/events.d.ts.map +1 -1
  45. package/dist/events.js +11 -0
  46. package/dist/events.js.map +1 -1
  47. package/dist/harness-input.d.ts +20 -2
  48. package/dist/harness-input.d.ts.map +1 -1
  49. package/dist/harness-input.js +17 -6
  50. package/dist/harness-input.js.map +1 -1
  51. package/dist/harness.d.ts +57 -20
  52. package/dist/harness.d.ts.map +1 -1
  53. package/dist/harness.js +5 -5
  54. package/dist/index.d.ts +4 -0
  55. package/dist/index.d.ts.map +1 -1
  56. package/dist/index.js +4 -0
  57. package/dist/index.js.map +1 -1
  58. package/dist/mcp-run-result.d.ts +253 -14
  59. package/dist/mcp-run-result.d.ts.map +1 -1
  60. package/dist/mcp-run-result.js +38 -0
  61. package/dist/mcp-run-result.js.map +1 -1
  62. package/dist/quota.d.ts +507 -12
  63. package/dist/quota.d.ts.map +1 -1
  64. package/dist/quota.js +111 -15
  65. package/dist/quota.js.map +1 -1
  66. package/dist/raw.d.ts +1 -1
  67. package/dist/raw.d.ts.map +1 -1
  68. package/dist/raw.js +0 -1
  69. package/dist/raw.js.map +1 -1
  70. package/dist/run-continuation.d.ts +166 -0
  71. package/dist/run-continuation.d.ts.map +1 -0
  72. package/dist/run-continuation.js +65 -0
  73. package/dist/run-continuation.js.map +1 -0
  74. package/dist/run-continuity.d.ts +215 -0
  75. package/dist/run-continuity.d.ts.map +1 -0
  76. package/dist/run-continuity.js +170 -0
  77. package/dist/run-continuity.js.map +1 -0
  78. package/dist/run-facts.d.ts +7 -0
  79. package/dist/run-facts.d.ts.map +1 -1
  80. package/dist/setup-login.d.ts +35 -0
  81. package/dist/setup-login.d.ts.map +1 -1
  82. package/dist/setup-login.js +10 -0
  83. package/dist/setup-login.js.map +1 -1
  84. package/dist/status-projection.d.ts +8 -1
  85. package/dist/status-projection.d.ts.map +1 -1
  86. package/dist/status-projection.js +22 -1
  87. package/dist/status-projection.js.map +1 -1
  88. package/dist/telemetry.d.ts +109 -7
  89. package/dist/telemetry.d.ts.map +1 -1
  90. package/dist/telemetry.js +3 -3
  91. package/dist/telemetry.js.map +1 -1
  92. package/dist/thread.d.ts +4 -0
  93. package/dist/thread.d.ts.map +1 -1
  94. package/dist/thread.js +10 -1
  95. package/dist/thread.js.map +1 -1
  96. package/dist/work-report.d.ts +18 -4
  97. package/dist/work-report.d.ts.map +1 -1
  98. package/dist/work-report.js +26 -5
  99. package/dist/work-report.js.map +1 -1
  100. package/generated/AgentCapabilityCatalog.schema.json +1 -1
  101. package/generated/ControlCredentialProfilesQueryResponse.schema.json +29 -7
  102. package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +29 -7
  103. package/generated/ControlGcReceipt.schema.json +14 -0
  104. package/generated/ControlGcRequest.schema.json +4 -0
  105. package/generated/ControlHarnessListResponse.schema.json +1 -1
  106. package/generated/ControlHarnessSettingsPatch.schema.json +1 -1
  107. package/generated/ControlQuotaResponse.schema.json +28 -6
  108. package/generated/ControlRetainedEnvelope.schema.json +63 -0
  109. package/generated/ControlRunAgainDraft.schema.json +16 -0
  110. package/generated/ControlRunDetail.schema.json +503 -54
  111. package/generated/ControlRunListResponse.schema.json +503 -54
  112. package/generated/ControlRunStartRequest.schema.json +16 -0
  113. package/generated/ControlRunSummary.schema.json +503 -54
  114. package/generated/ControlSettingsSnapshot.schema.json +1 -1
  115. package/generated/ControlSettingsUpdateRequest.schema.json +1 -1
  116. package/generated/ControlThread.schema.json +16 -1
  117. package/generated/ControlThreadCreateRequest.schema.json +6 -0
  118. package/generated/ControlThreadDetail.schema.json +30 -2
  119. package/generated/ControlThreadListResponse.schema.json +16 -1
  120. package/generated/ControlThreadTurnRequest.schema.json +4 -0
  121. package/generated/ControlThreadUpdateRequest.schema.json +15 -1
  122. package/generated/DecisionRecord.schema.json +14 -1
  123. package/generated/EnvelopeCustody.schema.json +195 -0
  124. package/generated/GlobalConfig.schema.json +1 -1
  125. package/generated/HarnessEvent.schema.json +114 -56
  126. package/generated/HarnessManifest.schema.json +1 -1
  127. package/generated/HarnessStatusDto.schema.json +1 -1
  128. package/generated/McpRunHandleResult.schema.json +214 -54
  129. package/generated/McpRunToolResult.schema.json +119 -54
  130. package/generated/RunContinuityReceipt.schema.json +182 -0
  131. package/generated/RunEvent.schema.json +3 -1
  132. package/generated/RunFacts.schema.json +14 -1
  133. package/generated/RunFailure.schema.json +105 -53
  134. package/generated/RunResumable.schema.json +153 -0
  135. package/generated/RunTelemetry.schema.json +118 -54
  136. package/generated/SessionCapsule.schema.json +78 -0
  137. package/generated/TaskContract.schema.json +1 -1
  138. package/generated/Thread.schema.json +16 -1
  139. package/package.json +2 -2
@@ -0,0 +1,182 @@
1
+ {
2
+ "$ref": "#/definitions/RunContinuityReceipt",
3
+ "definitions": {
4
+ "RunContinuityReceipt": {
5
+ "type": "object",
6
+ "properties": {
7
+ "tryIndex": {
8
+ "type": "integer",
9
+ "minimum": 0,
10
+ "description": "Native try within the attempt; joins the receipt to its try."
11
+ },
12
+ "attemptId": {
13
+ "type": "string",
14
+ "minLength": 1,
15
+ "description": "Non-empty identifier string."
16
+ },
17
+ "carrier": {
18
+ "type": "string",
19
+ "enum": [
20
+ "native",
21
+ "native_moved",
22
+ "packet",
23
+ "fresh"
24
+ ],
25
+ "description": "Carrier of a continued try: native (the vendor's own session, same account), native_moved (the session file made visible in the next account's store, then resumed there), packet (a fresh session re-grounded by an evidence index), or fresh (nothing to carry — a replay of the original prompt)."
26
+ },
27
+ "cause": {
28
+ "type": "string",
29
+ "enum": [
30
+ "vendor_limit",
31
+ "pool_exhausted",
32
+ "pinned_limit",
33
+ "transport",
34
+ "context_exhausted",
35
+ "wall_clock",
36
+ "cancelled",
37
+ "host_restart",
38
+ "input_required",
39
+ "other"
40
+ ],
41
+ "description": "Typed reason the previous process stopped: a vendor limit (next account eligible), the whole pool spent, a pinned account's limit, a transport death (crash, timeout, watchdog), context exhaustion, the wall-clock deadline, a cancel, a daemon/host restart, a model that asked for input, or another typed cause."
42
+ },
43
+ "from": {
44
+ "type": "object",
45
+ "properties": {
46
+ "runId": {
47
+ "$ref": "#/definitions/RunContinuityReceipt/properties/attemptId"
48
+ },
49
+ "attemptId": {
50
+ "$ref": "#/definitions/RunContinuityReceipt/properties/attemptId"
51
+ },
52
+ "profileId": {
53
+ "anyOf": [
54
+ {
55
+ "$ref": "#/definitions/RunContinuityReceipt/properties/attemptId"
56
+ },
57
+ {
58
+ "type": "null"
59
+ }
60
+ ],
61
+ "description": "Non-empty identifier string."
62
+ }
63
+ },
64
+ "required": [
65
+ "runId",
66
+ "attemptId",
67
+ "profileId"
68
+ ],
69
+ "additionalProperties": false
70
+ },
71
+ "to": {
72
+ "type": "object",
73
+ "properties": {
74
+ "profileId": {
75
+ "anyOf": [
76
+ {
77
+ "$ref": "#/definitions/RunContinuityReceipt/properties/attemptId"
78
+ },
79
+ {
80
+ "type": "null"
81
+ }
82
+ ],
83
+ "description": "Non-empty identifier string."
84
+ }
85
+ },
86
+ "required": [
87
+ "profileId"
88
+ ],
89
+ "additionalProperties": false
90
+ },
91
+ "workspace": {
92
+ "type": "string",
93
+ "enum": [
94
+ "same_root",
95
+ "different_root"
96
+ ],
97
+ "description": "Whether the continued try runs in the predecessor's execution root."
98
+ },
99
+ "memory": {
100
+ "type": "string",
101
+ "enum": [
102
+ "full",
103
+ "partial",
104
+ "unknown"
105
+ ],
106
+ "description": "Its own fact: a native resume carries the whole history (full); a packet re-brief is partial; a native resume that lost history (e.g. a rejected compacted item) is partial/unknown."
107
+ },
108
+ "instructions": {
109
+ "type": "string",
110
+ "enum": [
111
+ "as_sent",
112
+ "vendor_snapshot"
113
+ ],
114
+ "description": "as_sent: the successor's instructions equal the predecessor's; vendor_snapshot: they differ, and the vendor may resend its recorded system prompt instead (claude records it on the first request)."
115
+ },
116
+ "reingestedTokens": {
117
+ "anyOf": [
118
+ {
119
+ "type": "integer",
120
+ "minimum": 0
121
+ },
122
+ {
123
+ "type": "null"
124
+ }
125
+ ],
126
+ "description": "Input + cache-creation tokens of the first resumed request, when known."
127
+ },
128
+ "observedModel": {
129
+ "type": [
130
+ "string",
131
+ "null"
132
+ ],
133
+ "description": "THIS try's attested model (never borrowed from another try)."
134
+ },
135
+ "modelMismatch": {
136
+ "type": [
137
+ "boolean",
138
+ "null"
139
+ ]
140
+ },
141
+ "identityCheck": {
142
+ "type": "string",
143
+ "enum": [
144
+ "matched_before_effects",
145
+ "mismatch_before_effects",
146
+ "mismatch_after_possible_effects",
147
+ "not_applicable"
148
+ ],
149
+ "description": "Whether the resumed vendor session was the one requested, judged at the earliest handshake (codex thread/resume before turn/start; claude system/init): matched, mismatch caught before the child could act, mismatch caught after it may have acted, or not applicable (no resume was requested, or a harness without the continuity capability answered with another session id, which is recorded as before)."
150
+ },
151
+ "inputDelivery": {
152
+ "type": "string",
153
+ "enum": [
154
+ "confirmed",
155
+ "uncertain",
156
+ "not_applicable"
157
+ ],
158
+ "description": "Whether the predecessor's last input (its turn prompt or an admitted steering message) is known to be in the vendor history: confirmed, uncertain (carried in the notice as a reference to reconcile, never replayed blindly), or not applicable."
159
+ }
160
+ },
161
+ "required": [
162
+ "tryIndex",
163
+ "attemptId",
164
+ "carrier",
165
+ "cause",
166
+ "from",
167
+ "to",
168
+ "workspace",
169
+ "memory",
170
+ "instructions",
171
+ "reingestedTokens",
172
+ "observedModel",
173
+ "modelMismatch",
174
+ "identityCheck",
175
+ "inputDelivery"
176
+ ],
177
+ "additionalProperties": false,
178
+ "description": "Receipt of one continued try: carrier, cause, accounts, memory, model attestation."
179
+ }
180
+ },
181
+ "$schema": "http://json-schema.org/draft-07/schema#"
182
+ }
@@ -101,7 +101,9 @@
101
101
  "run.completed",
102
102
  "run.failed",
103
103
  "run.continuation",
104
- "run.continuation.denied"
104
+ "run.continuation.denied",
105
+ "run.continuity",
106
+ "workspace.retained"
105
107
  ],
106
108
  "description": "Type of an append-only run event, covering run lifecycle, contract/context creation, budget, routing fallbacks, harness activity, interactions, gates, review, arbitration, work products, and control verbs."
107
109
  },
@@ -116,7 +116,7 @@
116
116
  "incomplete",
117
117
  "unverified"
118
118
  ],
119
- "description": "Folded work state: the WorkReport state, or unverified when no report was obtainable (transport unsupported / lane gated)."
119
+ "description": "Folded work state: the WorkReport state, or unverified when no valid report was obtained (transport unsupported / lane gated, or an instructed footer missing or broken)."
120
120
  },
121
121
  "source": {
122
122
  "type": "string",
@@ -172,6 +172,19 @@
172
172
  },
173
173
  "maxItems": 16,
174
174
  "description": "Carried through from a needs_input/incomplete WorkReport for honest disclosure."
175
+ },
176
+ "unverified_reason": {
177
+ "type": "string",
178
+ "enum": [
179
+ "footer_missing",
180
+ "footer_not_json",
181
+ "footer_not_object",
182
+ "report_missing",
183
+ "report_malformed",
184
+ "report_contradictory",
185
+ "legacy_output_invalid"
186
+ ],
187
+ "description": "Present only with state unverified on a validated (instructed footer) source: the disclosed cause of the missing report."
175
188
  }
176
189
  },
177
190
  "required": [
@@ -5,66 +5,117 @@
5
5
  "type": "object",
6
6
  "properties": {
7
7
  "requestRefusal": {
8
- "type": "object",
9
- "properties": {
10
- "scope": {
11
- "type": "string",
12
- "const": "turn_text",
13
- "description": "All text input items in one native turn; separate instructions are excluded."
14
- },
15
- "unit": {
16
- "type": "string",
17
- "const": "unicode_scalars"
18
- },
19
- "limit": {
20
- "anyOf": [
21
- {
22
- "type": "integer",
23
- "exclusiveMinimum": 0,
24
- "minimum": -9007199254740991,
25
- "maximum": 9007199254740991
8
+ "anyOf": [
9
+ {
10
+ "type": "object",
11
+ "properties": {
12
+ "scope": {
13
+ "type": "string",
14
+ "const": "turn_text",
15
+ "description": "All text input items in one native turn; separate instructions are excluded."
16
+ },
17
+ "unit": {
18
+ "type": "string",
19
+ "const": "unicode_scalars"
20
+ },
21
+ "limit": {
22
+ "anyOf": [
23
+ {
24
+ "type": "integer",
25
+ "exclusiveMinimum": 0,
26
+ "minimum": -9007199254740991,
27
+ "maximum": 9007199254740991
28
+ },
29
+ {
30
+ "type": "null"
31
+ }
32
+ ]
26
33
  },
27
- {
28
- "type": "null"
34
+ "source": {
35
+ "type": "string",
36
+ "minLength": 1
37
+ },
38
+ "kind": {
39
+ "type": "string",
40
+ "const": "input_too_large"
41
+ },
42
+ "actual": {
43
+ "anyOf": [
44
+ {
45
+ "type": "integer",
46
+ "minimum": -9007199254740991,
47
+ "maximum": 9007199254740991
48
+ },
49
+ {
50
+ "type": "null"
51
+ }
52
+ ]
53
+ },
54
+ "native_code": {
55
+ "type": "string",
56
+ "minLength": 1
29
57
  }
30
- ]
31
- },
32
- "source": {
33
- "type": "string",
34
- "minLength": 1
35
- },
36
- "kind": {
37
- "type": "string",
38
- "const": "input_too_large"
58
+ },
59
+ "required": [
60
+ "scope",
61
+ "unit",
62
+ "limit",
63
+ "source",
64
+ "kind",
65
+ "actual",
66
+ "native_code"
67
+ ],
68
+ "additionalProperties": false
39
69
  },
40
- "actual": {
41
- "anyOf": [
42
- {
43
- "type": "integer",
44
- "minimum": -9007199254740991,
45
- "maximum": 9007199254740991
70
+ {
71
+ "type": "object",
72
+ "properties": {
73
+ "kind": {
74
+ "type": "string",
75
+ "const": "vendor_cli_too_old"
76
+ },
77
+ "native_code": {
78
+ "type": "string",
79
+ "const": "claude_code_version_too_old"
80
+ },
81
+ "source": {
82
+ "type": "string",
83
+ "const": "claude_stdout"
84
+ },
85
+ "binary_path": {
86
+ "anyOf": [
87
+ {
88
+ "type": "string",
89
+ "minLength": 1
90
+ },
91
+ {
92
+ "type": "null"
93
+ }
94
+ ]
46
95
  },
47
- {
48
- "type": "null"
96
+ "installed_version": {
97
+ "anyOf": [
98
+ {
99
+ "type": "string",
100
+ "minLength": 1
101
+ },
102
+ {
103
+ "type": "null"
104
+ }
105
+ ]
49
106
  }
50
- ]
51
- },
52
- "native_code": {
53
- "type": "string",
54
- "minLength": 1
107
+ },
108
+ "required": [
109
+ "kind",
110
+ "native_code",
111
+ "source",
112
+ "binary_path",
113
+ "installed_version"
114
+ ],
115
+ "additionalProperties": false
55
116
  }
56
- },
57
- "required": [
58
- "scope",
59
- "unit",
60
- "limit",
61
- "source",
62
- "kind",
63
- "actual",
64
- "native_code"
65
117
  ],
66
- "additionalProperties": false,
67
- "description": "Vendor-typed physical input refusal; the same input cannot be repaired by changing this harness's account or model."
118
+ "description": "Vendor-attested request refusal that another account cannot repair; input and executable causes carry their own evidence."
68
119
  },
69
120
  "phase": {
70
121
  "type": "string",
@@ -104,6 +155,7 @@
104
155
  "subscription_window_exhausted",
105
156
  "credential_pool_exhausted",
106
157
  "input_too_large",
158
+ "vendor_cli_too_old",
107
159
  "delegated_home_unavailable",
108
160
  "delegated_confinement_unavailable",
109
161
  "delegated_evidence_incomplete",
@@ -0,0 +1,153 @@
1
+ {
2
+ "$ref": "#/definitions/RunResumable",
3
+ "definitions": {
4
+ "RunResumable": {
5
+ "type": "object",
6
+ "properties": {
7
+ "cause": {
8
+ "type": "string",
9
+ "enum": [
10
+ "vendor_limit",
11
+ "pool_exhausted",
12
+ "pinned_limit",
13
+ "transport",
14
+ "context_exhausted",
15
+ "wall_clock",
16
+ "cancelled",
17
+ "host_restart",
18
+ "input_required",
19
+ "other"
20
+ ],
21
+ "description": "Typed reason the previous process stopped: a vendor limit (next account eligible), the whole pool spent, a pinned account's limit, a transport death (crash, timeout, watchdog), context exhaustion, the wall-clock deadline, a cancel, a daemon/host restart, a model that asked for input, or another typed cause."
22
+ },
23
+ "resetsAt": {
24
+ "type": [
25
+ "string",
26
+ "null"
27
+ ],
28
+ "description": "When the spent vendor window reopens, only from a vendor signal; never fabricated."
29
+ },
30
+ "limitWindow": {
31
+ "type": [
32
+ "string",
33
+ "null"
34
+ ],
35
+ "description": "The vendor's own name for the spent window (e.g. five_hour, seven_day_opus), when known."
36
+ },
37
+ "limitEvidence": {
38
+ "anyOf": [
39
+ {
40
+ "type": "string",
41
+ "enum": [
42
+ "window",
43
+ "unspecified"
44
+ ],
45
+ "description": "window: the vendor named the spent window (a reset instant or a constraint id); unspecified: a typed limit without a window — a bare backoff frame is transport, not a limit."
46
+ },
47
+ {
48
+ "type": "null"
49
+ }
50
+ ],
51
+ "description": "window: the vendor named the spent window (a reset instant or a constraint id); unspecified: a typed limit without a window — a bare backoff frame is transport, not a limit."
52
+ },
53
+ "carriers": {
54
+ "type": "array",
55
+ "items": {
56
+ "type": "string",
57
+ "enum": [
58
+ "native",
59
+ "native_moved",
60
+ "packet"
61
+ ],
62
+ "description": "A continuity representation still available for a stopped run."
63
+ },
64
+ "description": "Continuity representations still available (NOT quota readiness; readiness is described by the limit facts)."
65
+ },
66
+ "limitCode": {
67
+ "type": [
68
+ "string",
69
+ "null"
70
+ ],
71
+ "description": "The typed vendor limit code that ended the work, when any."
72
+ },
73
+ "session": {
74
+ "anyOf": [
75
+ {
76
+ "type": "object",
77
+ "properties": {
78
+ "harness": {
79
+ "type": "string",
80
+ "minLength": 1,
81
+ "description": "Non-empty identifier string."
82
+ },
83
+ "nativeSessionId": {
84
+ "type": "string",
85
+ "minLength": 1
86
+ },
87
+ "holderProfileId": {
88
+ "anyOf": [
89
+ {
90
+ "$ref": "#/definitions/RunResumable/properties/session/anyOf/0/properties/harness"
91
+ },
92
+ {
93
+ "type": "null"
94
+ }
95
+ ],
96
+ "description": "Non-empty identifier string."
97
+ }
98
+ },
99
+ "required": [
100
+ "harness",
101
+ "nativeSessionId",
102
+ "holderProfileId"
103
+ ],
104
+ "additionalProperties": false
105
+ },
106
+ {
107
+ "type": "null"
108
+ }
109
+ ],
110
+ "description": "The native session a continuation can resume, when one exists."
111
+ },
112
+ "workspace": {
113
+ "type": "object",
114
+ "properties": {
115
+ "kind": {
116
+ "type": "string",
117
+ "enum": [
118
+ "in_place",
119
+ "retained_envelope",
120
+ "none"
121
+ ]
122
+ },
123
+ "root": {
124
+ "type": [
125
+ "string",
126
+ "null"
127
+ ]
128
+ }
129
+ },
130
+ "required": [
131
+ "kind",
132
+ "root"
133
+ ],
134
+ "additionalProperties": false,
135
+ "description": "Where the stopped work's tree is: the live root, a retained envelope, or gone."
136
+ }
137
+ },
138
+ "required": [
139
+ "cause",
140
+ "resetsAt",
141
+ "limitWindow",
142
+ "limitEvidence",
143
+ "carriers",
144
+ "limitCode",
145
+ "session",
146
+ "workspace"
147
+ ],
148
+ "additionalProperties": false,
149
+ "description": "Terminal facts of a stopped run that can be continued: cause, limit evidence, available carriers, the native session and the workspace."
150
+ }
151
+ },
152
+ "$schema": "http://json-schema.org/draft-07/schema#"
153
+ }