@claudexor/schema 3.6.0 → 3.8.1

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 (125) hide show
  1. package/dist/agent-capabilities.d.ts +48 -16
  2. package/dist/agent-capabilities.d.ts.map +1 -1
  3. package/dist/agent-capabilities.js +4 -0
  4. package/dist/agent-capabilities.js.map +1 -1
  5. package/dist/config.d.ts +30 -28
  6. package/dist/config.d.ts.map +1 -1
  7. package/dist/config.js +7 -6
  8. package/dist/config.js.map +1 -1
  9. package/dist/control-harness-list.d.ts +215 -19
  10. package/dist/control-harness-list.d.ts.map +1 -1
  11. package/dist/control-operation-responses.d.ts +16 -13
  12. package/dist/control-operation-responses.d.ts.map +1 -1
  13. package/dist/control-run-detail.d.ts +33 -46
  14. package/dist/control-run-detail.d.ts.map +1 -1
  15. package/dist/control-run-detail.js +10 -19
  16. package/dist/control-run-detail.js.map +1 -1
  17. package/dist/control-run-execution.d.ts +16 -0
  18. package/dist/control-run-execution.d.ts.map +1 -0
  19. package/dist/control-run-execution.js +19 -0
  20. package/dist/control-run-execution.js.map +1 -0
  21. package/dist/control-run-failure.d.ts +4 -4
  22. package/dist/control-run-failure.d.ts.map +1 -1
  23. package/dist/control-run-failure.js +6 -4
  24. package/dist/control-run-failure.js.map +1 -1
  25. package/dist/control-run-retry.d.ts +21 -0
  26. package/dist/control-run-retry.d.ts.map +1 -1
  27. package/dist/control-run-retry.js +6 -0
  28. package/dist/control-run-retry.js.map +1 -1
  29. package/dist/control-trust.d.ts +13 -13
  30. package/dist/control.d.ts +365 -36
  31. package/dist/control.d.ts.map +1 -1
  32. package/dist/control.js +12 -18
  33. package/dist/control.js.map +1 -1
  34. package/dist/credential-profile-snapshot.d.ts +486 -52
  35. package/dist/credential-profile-snapshot.d.ts.map +1 -1
  36. package/dist/credential-profile.d.ts +113 -42
  37. package/dist/credential-profile.d.ts.map +1 -1
  38. package/dist/credential-profile.js +58 -30
  39. package/dist/credential-profile.js.map +1 -1
  40. package/dist/harness-confinement.d.ts +37 -30
  41. package/dist/harness-confinement.d.ts.map +1 -1
  42. package/dist/harness-confinement.js +18 -26
  43. package/dist/harness-confinement.js.map +1 -1
  44. package/dist/harness.d.ts +265 -102
  45. package/dist/harness.d.ts.map +1 -1
  46. package/dist/harness.js +3 -38
  47. package/dist/harness.js.map +1 -1
  48. package/dist/mcp-run-result.d.ts +10 -10
  49. package/dist/platform-auth.d.ts +196 -0
  50. package/dist/platform-auth.d.ts.map +1 -0
  51. package/dist/platform-auth.js +142 -0
  52. package/dist/platform-auth.js.map +1 -0
  53. package/dist/primitives.d.ts +6 -1
  54. package/dist/primitives.d.ts.map +1 -1
  55. package/dist/primitives.js +8 -2
  56. package/dist/primitives.js.map +1 -1
  57. package/dist/quota.d.ts +9 -9
  58. package/dist/quota.d.ts.map +1 -1
  59. package/dist/quota.js +3 -0
  60. package/dist/quota.js.map +1 -1
  61. package/dist/readiness.d.ts +192 -15
  62. package/dist/readiness.d.ts.map +1 -1
  63. package/dist/readiness.js +12 -0
  64. package/dist/readiness.js.map +1 -1
  65. package/dist/run-strategy.d.ts +51 -3
  66. package/dist/run-strategy.d.ts.map +1 -1
  67. package/dist/run-strategy.js +58 -2
  68. package/dist/run-strategy.js.map +1 -1
  69. package/dist/setup-login.d.ts +5 -5
  70. package/dist/setup.d.ts +102 -95
  71. package/dist/setup.d.ts.map +1 -1
  72. package/dist/setup.js +29 -5
  73. package/dist/setup.js.map +1 -1
  74. package/dist/task.d.ts +641 -19
  75. package/dist/task.d.ts.map +1 -1
  76. package/dist/task.js +40 -5
  77. package/dist/task.js.map +1 -1
  78. package/dist/telemetry.d.ts +2 -2
  79. package/dist/telemetry.js +3 -3
  80. package/dist/telemetry.js.map +1 -1
  81. package/dist/thread.d.ts +1 -1
  82. package/dist/thread.js +2 -2
  83. package/dist/thread.js.map +1 -1
  84. package/generated/AgentCapabilityCatalog.schema.json +27 -2
  85. package/generated/ControlCredentialProfileCreateRequest.schema.json +1 -1
  86. package/generated/ControlCredentialProfileCreateResponse.schema.json +13 -4
  87. package/generated/ControlCredentialProfileDeleteResponse.schema.json +27 -3
  88. package/generated/ControlCredentialProfileUpdateResponse.schema.json +13 -4
  89. package/generated/ControlCredentialProfilesQueryResponse.schema.json +142 -8
  90. package/generated/ControlCredentialProfilesResponse.schema.json +13 -4
  91. package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +142 -8
  92. package/generated/ControlHarnessListResponse.schema.json +127 -3
  93. package/generated/ControlQuotaResponse.schema.json +2 -1
  94. package/generated/ControlRunAgainDraft.schema.json +20 -3
  95. package/generated/ControlRunDetail.schema.json +10 -8
  96. package/generated/ControlRunListResponse.schema.json +6 -4
  97. package/generated/ControlRunStartRequest.schema.json +5 -2
  98. package/generated/ControlRunSummary.schema.json +6 -4
  99. package/generated/ControlSetupJob.schema.json +5 -1
  100. package/generated/ControlSetupJobCreateRequest.schema.json +1 -1
  101. package/generated/ControlSetupJobEvent.schema.json +5 -1
  102. package/generated/ControlSetupJobListResponse.schema.json +5 -1
  103. package/generated/ControlSetupJobSnapshot.schema.json +5 -1
  104. package/generated/ControlThread.schema.json +3 -3
  105. package/generated/ControlThreadCreateRequest.schema.json +0 -1
  106. package/generated/ControlThreadDetail.schema.json +3 -3
  107. package/generated/ControlThreadListResponse.schema.json +3 -3
  108. package/generated/ControlThreadTurnRequest.schema.json +0 -1
  109. package/generated/ControlThreadUpdateRequest.schema.json +1 -2
  110. package/generated/ControlTrustListResponse.schema.json +0 -1
  111. package/generated/ControlTrustState.schema.json +0 -1
  112. package/generated/ControlTrustUpdateRequest.schema.json +0 -1
  113. package/generated/CredentialProfile.schema.json +3 -3
  114. package/generated/CredentialProfileStatus.schema.json +10 -1
  115. package/generated/GlobalConfig.schema.json +4 -4
  116. package/generated/HarnessManifest.schema.json +101 -3
  117. package/generated/HarnessStatusDto.schema.json +127 -3
  118. package/generated/McpRunHandleResult.schema.json +4 -2
  119. package/generated/McpRunToolResult.schema.json +4 -2
  120. package/generated/RunFailure.schema.json +4 -2
  121. package/generated/RunTelemetry.schema.json +5 -5
  122. package/generated/TaskContract.schema.json +8 -8
  123. package/generated/Thread.schema.json +3 -3
  124. package/generated/TrustConfig.schema.json +0 -2
  125. package/package.json +2 -2
@@ -137,6 +137,20 @@
137
137
  },
138
138
  "default": [],
139
139
  "description": "Relocation levers that can move this transport into a scoped environment."
140
+ },
141
+ "platforms": {
142
+ "type": "array",
143
+ "items": {
144
+ "type": "string",
145
+ "enum": [
146
+ "darwin",
147
+ "linux",
148
+ "win32"
149
+ ],
150
+ "description": "Host platform used to resolve credential and managed-login policy."
151
+ },
152
+ "minItems": 1,
153
+ "description": "Host platforms on which this physical credential transport applies; absent means every supported platform for backward compatibility."
140
154
  }
141
155
  },
142
156
  "required": [
@@ -148,6 +162,90 @@
148
162
  },
149
163
  "default": [],
150
164
  "description": "Declared credential transports per auth source."
165
+ },
166
+ "credential_profile_policies": {
167
+ "type": "array",
168
+ "items": {
169
+ "type": "object",
170
+ "properties": {
171
+ "source": {
172
+ "$ref": "#/definitions/ControlHarnessListResponse/properties/harnesses/items/properties/manifest/anyOf/0/properties/capability_profile/properties/auth/properties/supported_sources/items"
173
+ },
174
+ "platforms": {
175
+ "type": "array",
176
+ "items": {
177
+ "$ref": "#/definitions/ControlHarnessListResponse/properties/harnesses/items/properties/manifest/anyOf/0/properties/capability_profile/properties/auth/properties/credential_transports/items/properties/platforms/items"
178
+ },
179
+ "minItems": 1,
180
+ "description": "Nonempty host-platform set governed by this policy row."
181
+ },
182
+ "identity_scope": {
183
+ "type": "string",
184
+ "enum": [
185
+ "profile",
186
+ "os_user"
187
+ ],
188
+ "description": "Identity boundary selected by a credential profile: the named profile itself or the host OS user/login vault."
189
+ },
190
+ "max_enabled_profiles": {
191
+ "anyOf": [
192
+ {
193
+ "type": "integer",
194
+ "exclusiveMinimum": 0
195
+ },
196
+ {
197
+ "type": "null"
198
+ }
199
+ ],
200
+ "description": "Maximum enabled profile bindings on these platforms; null means unbounded."
201
+ },
202
+ "cleanup_owner": {
203
+ "type": "string",
204
+ "enum": [
205
+ "claudexor",
206
+ "vendor"
207
+ ],
208
+ "description": "Who owns cleanup of the credential when its Claudexor profile binding is removed."
209
+ }
210
+ },
211
+ "required": [
212
+ "source",
213
+ "platforms",
214
+ "identity_scope",
215
+ "max_enabled_profiles",
216
+ "cleanup_owner"
217
+ ],
218
+ "additionalProperties": false,
219
+ "description": "Platform-specific identity scope, enabled-profile cardinality, and credential cleanup ownership for one auth source."
220
+ },
221
+ "description": "Platform-specific profile identity/cardinality/cleanup policy; absent uses the backward-compatible profile-scoped, unbounded, Claudexor-owned defaults."
222
+ },
223
+ "managed_login": {
224
+ "anyOf": [
225
+ {
226
+ "type": "object",
227
+ "properties": {
228
+ "stdin": {
229
+ "type": "string",
230
+ "enum": [
231
+ "none",
232
+ "pipe",
233
+ "terminal"
234
+ ],
235
+ "description": "Input transport the vendor login command requires."
236
+ }
237
+ },
238
+ "required": [
239
+ "stdin"
240
+ ],
241
+ "additionalProperties": false,
242
+ "description": "Managed-login input requirement; command, argv, flow, and time window remain owned by the native-login registry."
243
+ },
244
+ {
245
+ "type": "null"
246
+ }
247
+ ],
248
+ "description": "Managed subscription-login input requirement; null means this harness defines no managed login, absent is a legacy manifest."
151
249
  }
152
250
  },
153
251
  "additionalProperties": false,
@@ -183,11 +281,12 @@
183
281
  "enum": [
184
282
  "env_or_file_injection",
185
283
  "scoped_home_keychain_bridge",
284
+ "private_per_profile_keychain",
186
285
  "host_user_context",
187
286
  "process_sandbox",
188
287
  "container"
189
288
  ],
190
- "description": "Isolation containment level an adapter supports for run environments, from env/file injection through scoped-HOME keychain bridging to process sandboxes and containers."
289
+ "description": "Isolation containment level an adapter supports for run environments, from env/file injection through scoped-HOME keychain bridging or a private per-profile keychain to process sandboxes and containers."
191
290
  },
192
291
  "default": [
193
292
  "env_or_file_injection"
@@ -492,10 +591,9 @@
492
591
  "readonly",
493
592
  "workspace_write",
494
593
  "full",
495
- "external_sandbox_full",
496
594
  "inherit_native"
497
595
  ],
498
- "description": "Filesystem/command access profile for a run: readonly (no writes), workspace_write (writes inside the workspace only), full (unrestricted; requires the per-repo trust allow), external_sandbox_full (the harness stands its native sandbox down; the engine applies its own OS boundary only on delegated runs — requested directly this is unrestricted, and not behind the trust allow), inherit_native (defer to the harness's own native sandbox settings)."
596
+ "description": "Active filesystem/command access profile for a run: readonly (no writes), workspace_write (use the harness's native workspace-write policy), full (unrestricted; requires the per-repo trust allow), inherit_native (defer to the harness's own native settings)."
499
597
  },
500
598
  "default": [],
501
599
  "description": "Access profiles the adapter can enforce."
@@ -767,6 +865,32 @@
767
865
  ],
768
866
  "description": "Engine-owned Delegate capability for this harness and installed runtime; null on legacy status rows.",
769
867
  "default": null
868
+ },
869
+ "setupLogin": {
870
+ "anyOf": [
871
+ {
872
+ "type": "object",
873
+ "properties": {
874
+ "mode": {
875
+ "type": "string",
876
+ "enum": [
877
+ "in_app",
878
+ "external_terminal"
879
+ ],
880
+ "description": "in_app requests the daemon-hosted login flow; external_terminal requests the existing client PTY flow."
881
+ }
882
+ },
883
+ "required": [
884
+ "mode"
885
+ ],
886
+ "additionalProperties": false,
887
+ "description": "Effective setup-login flow for this harness on the current host."
888
+ },
889
+ {
890
+ "type": "null"
891
+ }
892
+ ],
893
+ "description": "Effective setup-login flow for this harness on the current host; current producers emit null or an object, while omission identifies a legacy row."
770
894
  }
771
895
  },
772
896
  "required": [
@@ -265,7 +265,8 @@
265
265
  "platform_unsupported",
266
266
  "refresh_failed",
267
267
  "no_source",
268
- "auth_revoked"
268
+ "auth_revoked",
269
+ "credential_profile_ambiguous"
269
270
  ],
270
271
  "description": "Why a registered subject has no quota snapshot, in the source's own vocabulary."
271
272
  },
@@ -119,7 +119,11 @@
119
119
  "delegated": {
120
120
  "type": "boolean",
121
121
  "default": false,
122
- "description": "Marks a run driven by an EXTERNAL orchestrator that owns the workspace, not by the operator at a surface. Such a run is confined to a scoped harness HOME even under isolation='live' (an in-place delegated attempt therefore cannot resume a native vendor session stored under the real HOME). Unrelated to the `delegate` belt flag and to `delegatedFromRunId` (belt-child provenance)."
122
+ "description": "Marks a run driven by an EXTERNAL orchestrator that owns the workspace, not by the operator at a surface. Such a run uses a scoped harness HOME even under isolation='live' (an in-place delegated attempt therefore cannot resume a native vendor session stored under the real HOME). Unrelated to the `delegate` belt flag and to `delegatedFromRunId` (belt-child provenance)."
123
+ },
124
+ "workspaceRoot": {
125
+ "type": "string",
126
+ "description": "Absolute existing execution workspace for a project-scoped delegated agent live run. The stable project identity remains scope.root."
123
127
  }
124
128
  },
125
129
  "additionalProperties": false,
@@ -306,7 +310,6 @@
306
310
  "readonly",
307
311
  "workspace_write",
308
312
  "full",
309
- "external_sandbox_full",
310
313
  "inherit_native"
311
314
  ],
312
315
  "description": "Requested access profile; effective access is derived by the engine and never client-supplied."
@@ -522,6 +525,19 @@
522
525
  "additionalProperties": false,
523
526
  "description": "Request body for POST /runs: prompt, mode, scope, routing, strategy flags, budget, policies, and thread linkage."
524
527
  },
528
+ "accessChoice": {
529
+ "type": "object",
530
+ "properties": {
531
+ "required": {
532
+ "type": "boolean"
533
+ }
534
+ },
535
+ "required": [
536
+ "required"
537
+ ],
538
+ "additionalProperties": false,
539
+ "description": "Whether Run Again requires an explicit active access choice."
540
+ },
525
541
  "differences": {
526
542
  "type": "array",
527
543
  "items": {
@@ -552,7 +568,8 @@
552
568
  },
553
569
  "required": [
554
570
  "sourceRunId",
555
- "request"
571
+ "request",
572
+ "accessChoice"
556
573
  ],
557
574
  "additionalProperties": false,
558
575
  "description": "Editable Run Again draft copied from a prior run with explicit omissions."
@@ -164,9 +164,11 @@
164
164
  "credential_pool_exhausted",
165
165
  "delegated_home_unavailable",
166
166
  "delegated_confinement_unavailable",
167
- "delegated_evidence_incomplete"
167
+ "delegated_evidence_incomplete",
168
+ "access_profile_incompatible",
169
+ "retired_access_profile"
168
170
  ],
169
- "description": "Machine-readable failure sub-code within a RunFailure category (budget-denial reasons, Delegate child-drain timeout, a spent subscription quota window whose reopen time is RunFailure.resetsAt, an exhausted credential rotation pool whose EARLIEST known member reset is RunFailure.resetsAt, and the delegated-run confinement refusals: missing scoped home, no OS-enforced boundary on this host, incomplete applied evidence)."
171
+ "description": "Machine-readable failure sub-code within a RunFailure category, including historical delegated-run failures and active access-profile refusals."
170
172
  },
171
173
  {
172
174
  "type": "null"
@@ -648,8 +650,8 @@
648
650
  "readonly",
649
651
  "workspace_write",
650
652
  "full",
651
- "external_sandbox_full",
652
- "inherit_native"
653
+ "inherit_native",
654
+ "external_sandbox_full"
653
655
  ],
654
656
  "description": "Access profile of the run: the effective profile when known, else the requested one (prefer requestedAccess/effectiveAccess)."
655
657
  },
@@ -3138,7 +3140,7 @@
3138
3140
  "properties": {
3139
3141
  "proven": {
3140
3142
  "type": "boolean",
3141
- "description": "Whether a boundary was actually enforced for this attempt: a named mechanism AND the path it was proven to deny. The only field a consumer should branch on."
3143
+ "description": "Whether a historical outer boundary was proven by a named mechanism, digest, and denied path; false for current native-access attempts."
3142
3144
  },
3143
3145
  "mechanism": {
3144
3146
  "type": [
@@ -3159,7 +3161,7 @@
3159
3161
  "string",
3160
3162
  "null"
3161
3163
  ],
3162
- "description": "Why this attempt ran with NO boundary; null when one was applied. Present exactly when proven is false for a run that asked for a boundary."
3164
+ "description": "Why no additional outer boundary was applied; current delegated attempts carry the schema-owned deliberate-absence reason."
3163
3165
  }
3164
3166
  },
3165
3167
  "required": [
@@ -3169,13 +3171,13 @@
3169
3171
  "unavailableReason"
3170
3172
  ],
3171
3173
  "additionalProperties": false,
3172
- "description": "Applied OS filesystem boundary for one attempt, or the stated reason there was none."
3174
+ "description": "Historical outer-boundary proof for one attempt, or the deliberate reason current native-access execution applied none."
3173
3175
  },
3174
3176
  {
3175
3177
  "type": "null"
3176
3178
  }
3177
3179
  ],
3178
- "description": "Applied OS boundary for this attempt; null when the run never asked for one (every non-delegated run).",
3180
+ "description": "Historical outer-boundary evidence or current deliberate-absence evidence; null when the attempt has neither.",
3179
3181
  "default": null
3180
3182
  }
3181
3183
  },
@@ -166,9 +166,11 @@
166
166
  "credential_pool_exhausted",
167
167
  "delegated_home_unavailable",
168
168
  "delegated_confinement_unavailable",
169
- "delegated_evidence_incomplete"
169
+ "delegated_evidence_incomplete",
170
+ "access_profile_incompatible",
171
+ "retired_access_profile"
170
172
  ],
171
- "description": "Machine-readable failure sub-code within a RunFailure category (budget-denial reasons, Delegate child-drain timeout, a spent subscription quota window whose reopen time is RunFailure.resetsAt, an exhausted credential rotation pool whose EARLIEST known member reset is RunFailure.resetsAt, and the delegated-run confinement refusals: missing scoped home, no OS-enforced boundary on this host, incomplete applied evidence)."
173
+ "description": "Machine-readable failure sub-code within a RunFailure category, including historical delegated-run failures and active access-profile refusals."
172
174
  },
173
175
  {
174
176
  "type": "null"
@@ -650,8 +652,8 @@
650
652
  "readonly",
651
653
  "workspace_write",
652
654
  "full",
653
- "external_sandbox_full",
654
- "inherit_native"
655
+ "inherit_native",
656
+ "external_sandbox_full"
655
657
  ],
656
658
  "description": "Access profile of the run: the effective profile when known, else the requested one (prefer requestedAccess/effectiveAccess)."
657
659
  },
@@ -111,7 +111,11 @@
111
111
  "delegated": {
112
112
  "type": "boolean",
113
113
  "default": false,
114
- "description": "Marks a run driven by an EXTERNAL orchestrator that owns the workspace, not by the operator at a surface. Such a run is confined to a scoped harness HOME even under isolation='live' (an in-place delegated attempt therefore cannot resume a native vendor session stored under the real HOME). Unrelated to the `delegate` belt flag and to `delegatedFromRunId` (belt-child provenance)."
114
+ "description": "Marks a run driven by an EXTERNAL orchestrator that owns the workspace, not by the operator at a surface. Such a run uses a scoped harness HOME even under isolation='live' (an in-place delegated attempt therefore cannot resume a native vendor session stored under the real HOME). Unrelated to the `delegate` belt flag and to `delegatedFromRunId` (belt-child provenance)."
115
+ },
116
+ "workspaceRoot": {
117
+ "type": "string",
118
+ "description": "Absolute existing execution workspace for a project-scoped delegated agent live run. The stable project identity remains scope.root."
115
119
  }
116
120
  },
117
121
  "additionalProperties": false,
@@ -298,7 +302,6 @@
298
302
  "readonly",
299
303
  "workspace_write",
300
304
  "full",
301
- "external_sandbox_full",
302
305
  "inherit_native"
303
306
  ],
304
307
  "description": "Requested access profile; effective access is derived by the engine and never client-supplied."
@@ -161,9 +161,11 @@
161
161
  "credential_pool_exhausted",
162
162
  "delegated_home_unavailable",
163
163
  "delegated_confinement_unavailable",
164
- "delegated_evidence_incomplete"
164
+ "delegated_evidence_incomplete",
165
+ "access_profile_incompatible",
166
+ "retired_access_profile"
165
167
  ],
166
- "description": "Machine-readable failure sub-code within a RunFailure category (budget-denial reasons, Delegate child-drain timeout, a spent subscription quota window whose reopen time is RunFailure.resetsAt, an exhausted credential rotation pool whose EARLIEST known member reset is RunFailure.resetsAt, and the delegated-run confinement refusals: missing scoped home, no OS-enforced boundary on this host, incomplete applied evidence)."
168
+ "description": "Machine-readable failure sub-code within a RunFailure category, including historical delegated-run failures and active access-profile refusals."
167
169
  },
168
170
  {
169
171
  "type": "null"
@@ -645,8 +647,8 @@
645
647
  "readonly",
646
648
  "workspace_write",
647
649
  "full",
648
- "external_sandbox_full",
649
- "inherit_native"
650
+ "inherit_native",
651
+ "external_sandbox_full"
650
652
  ],
651
653
  "description": "Access profile of the run: the effective profile when known, else the requested one (prefer requestedAccess/effectiveAccess)."
652
654
  },
@@ -811,7 +811,11 @@
811
811
  "enum": [
812
812
  "permit_timeout",
813
813
  "spawn_failed",
814
- "device_auth_unsupported"
814
+ "device_auth_unsupported",
815
+ "terminal_transport_unavailable",
816
+ "terminal_transport_unsupported",
817
+ "terminal_transport_probe_failed",
818
+ "terminal_transport_failed"
815
819
  ]
816
820
  },
817
821
  "finishedAt": {
@@ -26,7 +26,7 @@
26
26
  "profileId": {
27
27
  "type": "string",
28
28
  "minLength": 1,
29
- "description": "Registered config_dir_login profile to log in; absent = the default session."
29
+ "description": "Registered config_dir_login binding to log in under its exact scoped environment; absent = the default session."
30
30
  },
31
31
  "loginFlow": {
32
32
  "type": "string",
@@ -866,7 +866,11 @@
866
866
  "enum": [
867
867
  "permit_timeout",
868
868
  "spawn_failed",
869
- "device_auth_unsupported"
869
+ "device_auth_unsupported",
870
+ "terminal_transport_unavailable",
871
+ "terminal_transport_unsupported",
872
+ "terminal_transport_probe_failed",
873
+ "terminal_transport_failed"
870
874
  ]
871
875
  },
872
876
  "finishedAt": {
@@ -816,7 +816,11 @@
816
816
  "enum": [
817
817
  "permit_timeout",
818
818
  "spawn_failed",
819
- "device_auth_unsupported"
819
+ "device_auth_unsupported",
820
+ "terminal_transport_unavailable",
821
+ "terminal_transport_unsupported",
822
+ "terminal_transport_probe_failed",
823
+ "terminal_transport_failed"
820
824
  ]
821
825
  },
822
826
  "finishedAt": {
@@ -816,7 +816,11 @@
816
816
  "enum": [
817
817
  "permit_timeout",
818
818
  "spawn_failed",
819
- "device_auth_unsupported"
819
+ "device_auth_unsupported",
820
+ "terminal_transport_unavailable",
821
+ "terminal_transport_unsupported",
822
+ "terminal_transport_probe_failed",
823
+ "terminal_transport_failed"
820
824
  ]
821
825
  },
822
826
  "finishedAt": {
@@ -91,10 +91,10 @@
91
91
  "readonly",
92
92
  "workspace_write",
93
93
  "full",
94
- "external_sandbox_full",
95
- "inherit_native"
94
+ "inherit_native",
95
+ "external_sandbox_full"
96
96
  ],
97
- "description": "Filesystem/command access profile for a run: readonly (no writes), workspace_write (writes inside the workspace only), full (unrestricted; requires the per-repo trust allow), external_sandbox_full (the harness stands its native sandbox down; the engine applies its own OS boundary only on delegated runs — requested directly this is unrestricted, and not behind the trust allow), inherit_native (defer to the harness's own native sandbox settings)."
97
+ "description": "Access profile recorded by an immutable historical artifact. external_sandbox_full is retired and cannot be requested by active surfaces."
98
98
  },
99
99
  {
100
100
  "type": "null"
@@ -111,7 +111,6 @@
111
111
  "readonly",
112
112
  "workspace_write",
113
113
  "full",
114
- "external_sandbox_full",
115
114
  "inherit_native"
116
115
  ],
117
116
  "description": "Sticky write scope for the thread's write turns; omit = the repo trust default."
@@ -94,10 +94,10 @@
94
94
  "readonly",
95
95
  "workspace_write",
96
96
  "full",
97
- "external_sandbox_full",
98
- "inherit_native"
97
+ "inherit_native",
98
+ "external_sandbox_full"
99
99
  ],
100
- "description": "Filesystem/command access profile for a run: readonly (no writes), workspace_write (writes inside the workspace only), full (unrestricted; requires the per-repo trust allow), external_sandbox_full (the harness stands its native sandbox down; the engine applies its own OS boundary only on delegated runs — requested directly this is unrestricted, and not behind the trust allow), inherit_native (defer to the harness's own native sandbox settings)."
100
+ "description": "Access profile recorded by an immutable historical artifact. external_sandbox_full is retired and cannot be requested by active surfaces."
101
101
  },
102
102
  {
103
103
  "type": "null"
@@ -96,10 +96,10 @@
96
96
  "readonly",
97
97
  "workspace_write",
98
98
  "full",
99
- "external_sandbox_full",
100
- "inherit_native"
99
+ "inherit_native",
100
+ "external_sandbox_full"
101
101
  ],
102
- "description": "Filesystem/command access profile for a run: readonly (no writes), workspace_write (writes inside the workspace only), full (unrestricted; requires the per-repo trust allow), external_sandbox_full (the harness stands its native sandbox down; the engine applies its own OS boundary only on delegated runs — requested directly this is unrestricted, and not behind the trust allow), inherit_native (defer to the harness's own native sandbox settings)."
102
+ "description": "Access profile recorded by an immutable historical artifact. external_sandbox_full is retired and cannot be requested by active surfaces."
103
103
  },
104
104
  {
105
105
  "type": "null"
@@ -220,7 +220,6 @@
220
220
  "readonly",
221
221
  "workspace_write",
222
222
  "full",
223
- "external_sandbox_full",
224
223
  "inherit_native"
225
224
  ],
226
225
  "description": "Requested access profile; effective access is derived by the engine and never client-supplied."
@@ -56,10 +56,9 @@
56
56
  "readonly",
57
57
  "workspace_write",
58
58
  "full",
59
- "external_sandbox_full",
60
59
  "inherit_native"
61
60
  ],
62
- "description": "Filesystem/command access profile for a run: readonly (no writes), workspace_write (writes inside the workspace only), full (unrestricted; requires the per-repo trust allow), external_sandbox_full (the harness stands its native sandbox down; the engine applies its own OS boundary only on delegated runs — requested directly this is unrestricted, and not behind the trust allow), inherit_native (defer to the harness's own native sandbox settings)."
61
+ "description": "Active filesystem/command access profile for a run: readonly (no writes), workspace_write (use the harness's native workspace-write policy), full (unrestricted; requires the per-repo trust allow), inherit_native (defer to the harness's own native settings)."
63
62
  },
64
63
  {
65
64
  "type": "null"
@@ -30,7 +30,6 @@
30
30
  "readonly",
31
31
  "workspace_write",
32
32
  "full",
33
- "external_sandbox_full",
34
33
  "inherit_native"
35
34
  ],
36
35
  "description": "Default access profile for runs in the repo."
@@ -25,7 +25,6 @@
25
25
  "readonly",
26
26
  "workspace_write",
27
27
  "full",
28
- "external_sandbox_full",
29
28
  "inherit_native"
30
29
  ],
31
30
  "description": "Default access profile for runs in the repo."
@@ -66,7 +66,6 @@
66
66
  "readonly",
67
67
  "workspace_write",
68
68
  "full",
69
- "external_sandbox_full",
70
69
  "inherit_native"
71
70
  ],
72
71
  "description": "Effective access profile covered by grantTestCommand; defaults to the trust default."
@@ -26,7 +26,7 @@
26
26
  "oauth_token",
27
27
  "api_key"
28
28
  ],
29
- "description": "Credential transport a profile isolates: a scoped vendor config-dir login, a stored OAuth token, or a stored API key."
29
+ "description": "Binding kind for a profile: Claudexor-owned scoped vendor state, a managed OAuth secret, or a managed API-key secret; a vendor OS-user credential may remain outside that state."
30
30
  },
31
31
  "isolation_locator": {
32
32
  "type": [
@@ -34,7 +34,7 @@
34
34
  "null"
35
35
  ],
36
36
  "default": null,
37
- "description": "Canonical absolute config-dir path for config_dir_login profiles; null for secret-ref kinds."
37
+ "description": "Canonical absolute path to Claudexor-owned scoped vendor state for config_dir_login bindings; null for secret-ref kinds."
38
38
  },
39
39
  "secret_ref": {
40
40
  "type": [
@@ -71,7 +71,7 @@
71
71
  "credential_kind"
72
72
  ],
73
73
  "additionalProperties": false,
74
- "description": "Durable non-secret registry entry for one credential identity of one harness; secret material lives in the vendor dir or the secret store, never here."
74
+ "description": "Durable non-secret named binding for one harness; credential material may live in Claudexor-owned scoped state, a managed secret store, or a platform-declared vendor/OS-user store, never in this row."
75
75
  }
76
76
  },
77
77
  "$schema": "http://json-schema.org/draft-07/schema#"
@@ -35,7 +35,16 @@
35
35
  "vendor"
36
36
  ],
37
37
  "default": "local_store",
38
- "description": "How the verification verdict was reached: local_store = the profile's credential material is present locally (says nothing about the token being live); vendor = the vendor answered a request made with this profile's own credential."
38
+ "description": "How the verification verdict was reached: local_store = the binding's required local state or managed secret is present (says nothing about a token being live); vendor = the vendor answered under the exact binding environment and effective platform credential policy."
39
+ },
40
+ "stale": {
41
+ "type": "boolean",
42
+ "description": "True only for a bounded stale last-known-good observation; stale is never a fresh passed verification."
43
+ },
44
+ "stale_age_ms": {
45
+ "type": "integer",
46
+ "minimum": 0,
47
+ "description": "Age in milliseconds of the bounded stale observation, when stale is true."
39
48
  },
40
49
  "detail": {
41
50
  "type": "string",
@@ -296,7 +296,7 @@
296
296
  "oauth_token",
297
297
  "api_key"
298
298
  ],
299
- "description": "Credential transport a profile isolates: a scoped vendor config-dir login, a stored OAuth token, or a stored API key."
299
+ "description": "Binding kind for a profile: Claudexor-owned scoped vendor state, a managed OAuth secret, or a managed API-key secret; a vendor OS-user credential may remain outside that state."
300
300
  },
301
301
  "isolation_locator": {
302
302
  "type": [
@@ -304,7 +304,7 @@
304
304
  "null"
305
305
  ],
306
306
  "default": null,
307
- "description": "Canonical absolute config-dir path for config_dir_login profiles; null for secret-ref kinds."
307
+ "description": "Canonical absolute path to Claudexor-owned scoped vendor state for config_dir_login bindings; null for secret-ref kinds."
308
308
  },
309
309
  "secret_ref": {
310
310
  "type": [
@@ -341,10 +341,10 @@
341
341
  "credential_kind"
342
342
  ],
343
343
  "additionalProperties": false,
344
- "description": "Durable non-secret registry entry for one credential identity of one harness; secret material lives in the vendor dir or the secret store, never here."
344
+ "description": "Durable non-secret named binding for one harness; credential material may live in Claudexor-owned scoped state, a managed secret store, or a platform-declared vendor/OS-user store, never in this row."
345
345
  },
346
346
  "default": [],
347
- "description": "Durable non-secret credential-profile registry; secret material lives in the vendor dir or the secret store, never in config."
347
+ "description": "Durable non-secret named-binding registry; credential material may live in Claudexor-owned scoped state, a managed secret store, or a platform-declared vendor/OS-user store, never in config."
348
348
  },
349
349
  "harnesses": {
350
350
  "type": "object",