@claudexor/schema 3.0.4 → 3.1.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.
- package/dist/agent-capabilities.d.ts +45 -8
- package/dist/agent-capabilities.d.ts.map +1 -1
- package/dist/agent-capabilities.js +14 -0
- package/dist/agent-capabilities.js.map +1 -1
- package/dist/apply-eligibility.d.ts +384 -18
- package/dist/apply-eligibility.d.ts.map +1 -1
- package/dist/apply-eligibility.js +20 -1
- package/dist/apply-eligibility.js.map +1 -1
- package/dist/budget.d.ts +84 -9
- package/dist/budget.d.ts.map +1 -1
- package/dist/budget.js +46 -0
- package/dist/budget.js.map +1 -1
- package/dist/config.d.ts +97 -65
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +12 -1
- package/dist/config.js.map +1 -1
- package/dist/control-operation-responses.d.ts +311 -89
- package/dist/control-operation-responses.d.ts.map +1 -1
- package/dist/control-operation-responses.js +33 -3
- package/dist/control-operation-responses.js.map +1 -1
- package/dist/control-run-detail.d.ts +613 -163
- package/dist/control-run-detail.d.ts.map +1 -1
- package/dist/control-run-detail.js +28 -2
- package/dist/control-run-detail.js.map +1 -1
- package/dist/control-run-retry.d.ts +1 -1
- package/dist/control-run-scope.d.ts +1 -1
- package/dist/control-thread-apply.d.ts +10 -0
- package/dist/control-thread-apply.d.ts.map +1 -1
- package/dist/control.d.ts +791 -232
- package/dist/control.d.ts.map +1 -1
- package/dist/control.js +76 -2
- package/dist/control.js.map +1 -1
- package/dist/decision.d.ts +205 -9
- package/dist/decision.d.ts.map +1 -1
- package/dist/decision.js +69 -1
- package/dist/decision.js.map +1 -1
- package/dist/deep-scan.d.ts +27 -0
- package/dist/deep-scan.d.ts.map +1 -0
- package/dist/deep-scan.js +27 -0
- package/dist/deep-scan.js.map +1 -0
- package/dist/delivery.d.ts +13 -0
- package/dist/delivery.d.ts.map +1 -1
- package/dist/delivery.js +15 -0
- package/dist/delivery.js.map +1 -1
- package/dist/effort.d.ts +132 -0
- package/dist/effort.d.ts.map +1 -0
- package/dist/effort.js +167 -0
- package/dist/effort.js.map +1 -0
- package/dist/events.d.ts +59 -4
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +91 -0
- package/dist/events.js.map +1 -1
- package/dist/gate.d.ts +2 -2
- package/dist/harness.d.ts +209 -28
- package/dist/harness.d.ts.map +1 -1
- package/dist/harness.js +107 -14
- package/dist/harness.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/operation.d.ts +193 -10
- package/dist/operation.d.ts.map +1 -1
- package/dist/operation.js +45 -0
- package/dist/operation.js.map +1 -1
- package/dist/output-schema-dialect.d.ts +22 -0
- package/dist/output-schema-dialect.d.ts.map +1 -0
- package/dist/output-schema-dialect.js +37 -0
- package/dist/output-schema-dialect.js.map +1 -0
- package/dist/output-schema.d.ts +26 -2
- package/dist/output-schema.d.ts.map +1 -1
- package/dist/output-schema.js +313 -16
- package/dist/output-schema.js.map +1 -1
- package/dist/plan.d.ts +2 -2
- package/dist/problem.d.ts +3 -3
- package/dist/project.d.ts +47 -12
- package/dist/project.d.ts.map +1 -1
- package/dist/project.js +32 -0
- package/dist/project.js.map +1 -1
- package/dist/readiness.d.ts +62 -7
- package/dist/readiness.d.ts.map +1 -1
- package/dist/recovery.d.ts +14 -14
- package/dist/review.d.ts +7 -7
- package/dist/route.d.ts +2 -2
- package/dist/setup.d.ts +288 -94
- package/dist/setup.d.ts.map +1 -1
- package/dist/setup.js +90 -6
- package/dist/setup.js.map +1 -1
- package/dist/status-projection.d.ts +79 -4
- package/dist/status-projection.d.ts.map +1 -1
- package/dist/status-projection.js +161 -4
- package/dist/status-projection.js.map +1 -1
- package/dist/task.d.ts +70 -53
- package/dist/task.d.ts.map +1 -1
- package/dist/task.js +18 -8
- package/dist/task.js.map +1 -1
- package/dist/telemetry.d.ts +795 -32
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +177 -4
- package/dist/telemetry.js.map +1 -1
- package/dist/tool-ref.d.ts +14 -0
- package/dist/tool-ref.d.ts.map +1 -1
- package/dist/tool-ref.js +15 -0
- package/dist/tool-ref.js.map +1 -1
- package/dist/work-report.d.ts +131 -0
- package/dist/work-report.d.ts.map +1 -0
- package/dist/work-report.js +124 -0
- package/dist/work-report.js.map +1 -0
- package/dist/workspace.d.ts +2 -2
- package/generated/AgentCapabilityCatalog.schema.json +39 -8
- package/generated/ControlApplyCheckResponse.schema.json +5 -0
- package/generated/ControlDeliveryResponse.schema.json +14 -0
- package/generated/ControlHarnessListResponse.schema.json +64 -9
- package/generated/ControlHarnessSettingsPatch.schema.json +4 -8
- package/generated/ControlOperationCatalog.schema.json +74 -0
- package/generated/ControlOperationDescriptor.schema.json +74 -0
- package/generated/ControlOperationParameter.schema.json +75 -0
- package/generated/ControlProjectRemoveReceipt.schema.json +58 -0
- package/generated/ControlRunAgainDraft.schema.json +14 -7
- package/generated/ControlRunDetail.schema.json +406 -16
- package/generated/ControlRunListResponse.schema.json +232 -10
- package/generated/ControlRunStartRequest.schema.json +14 -7
- package/generated/ControlRunSummary.schema.json +218 -9
- package/generated/ControlSettingsSnapshot.schema.json +4 -8
- package/generated/ControlSettingsUpdateRequest.schema.json +4 -8
- package/generated/ControlSetupJobCreateRequest.schema.json +2 -1
- package/generated/ControlSetupJobEvent.schema.json +28 -0
- package/generated/ControlSetupJobSnapshot.schema.json +28 -0
- package/generated/ControlThreadApplyResponse.schema.json +14 -0
- package/generated/ControlThreadDetail.schema.json +94 -1
- package/generated/ControlThreadTurnRequest.schema.json +14 -7
- package/generated/DecisionRecord.schema.json +178 -2
- package/generated/GlobalConfig.schema.json +4 -8
- package/generated/HarnessEvent.schema.json +79 -1
- package/generated/HarnessManifest.schema.json +64 -9
- package/generated/HarnessStatusDto.schema.json +64 -9
- package/generated/McpRunHandleResult.schema.json +286 -1
- package/generated/McpRunToolResult.schema.json +171 -1
- package/generated/ProjectConfig.schema.json +26 -0
- package/generated/RoutePoolDegradedPayload.schema.json +79 -0
- package/generated/RunEvent.schema.json +8 -1
- package/generated/RunFailure.schema.json +23 -1
- package/generated/RunTelemetry.schema.json +376 -1
- package/generated/StructuredOutputConformance.schema.json +83 -0
- package/generated/TaskContract.schema.json +13 -1
- package/package.json +2 -2
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
/**
|
|
3
|
+
* D-16: the model-authored WorkReport — the typed self-assessment an attempt
|
|
4
|
+
* emits alongside its deliverable so the finalizer can tell "I finished" from
|
|
5
|
+
* "I need input / I ran out of room" WITHOUT prose matching. It rides the
|
|
6
|
+
* existing structured-output seam inside a compiled envelope (see
|
|
7
|
+
* `buildWorkReportEnvelope` in output-schema.ts) and is validated by the
|
|
8
|
+
* attempt finalizer, never by a Zod refinement on the wire type: the wire
|
|
9
|
+
* shape is deliberately permissive (a malformed report is a typed
|
|
10
|
+
* `work_report_contract` failure the finalizer raises, not a parse throw that
|
|
11
|
+
* loses the whole answer).
|
|
12
|
+
*/
|
|
13
|
+
/** What state the model says its own work reached. Cross-field rules
|
|
14
|
+
* (completed ⇒ no required_inputs; needs_input ⇒ ≥1) are enforced by the
|
|
15
|
+
* finalizer, not here — the wire type stays permissive for transport. */
|
|
16
|
+
export const WorkReportState = z
|
|
17
|
+
.enum(["completed", "needs_input", "incomplete"])
|
|
18
|
+
.describe("Model-authored work state: completed (the task is done), needs_input (blocked on a listed input), or incomplete (partial, more work remains).");
|
|
19
|
+
/** The category of a blocking input the model needs to proceed. */
|
|
20
|
+
export const RequiredInputKind = z
|
|
21
|
+
.enum(["file", "context", "credential", "permission", "decision", "external_dependency"])
|
|
22
|
+
.describe("Category of a missing input a needs_input/incomplete report lists: a file, additional context, a credential, a permission, a human decision, or an external dependency.");
|
|
23
|
+
/** One blocking input the model reports it needs. `locator` points at the
|
|
24
|
+
* concrete missing thing (a path, a URL, an env var name) when it can name it. */
|
|
25
|
+
export const RequiredInput = z
|
|
26
|
+
.object({
|
|
27
|
+
kind: RequiredInputKind,
|
|
28
|
+
locator: z
|
|
29
|
+
.string()
|
|
30
|
+
.max(512)
|
|
31
|
+
.nullable()
|
|
32
|
+
.default(null)
|
|
33
|
+
.describe("Concrete pointer to the missing thing (path/url/name); null when unnameable."),
|
|
34
|
+
description: z
|
|
35
|
+
.string()
|
|
36
|
+
.max(1024)
|
|
37
|
+
.describe("Human-readable description of what is needed and why."),
|
|
38
|
+
})
|
|
39
|
+
.describe("One blocking input a needs_input/incomplete WorkReport lists.");
|
|
40
|
+
/** The model-authored work self-assessment (D-16). */
|
|
41
|
+
export const WorkReport = z
|
|
42
|
+
.object({
|
|
43
|
+
state: WorkReportState,
|
|
44
|
+
required_inputs: z
|
|
45
|
+
.array(RequiredInput)
|
|
46
|
+
.max(16)
|
|
47
|
+
.default([])
|
|
48
|
+
.describe("Blocking inputs the model needs to proceed; empty for a completed report, ≥1 for needs_input (finalizer-enforced)."),
|
|
49
|
+
})
|
|
50
|
+
.describe("Model-authored WorkReport (D-16): a typed self-assessment of whether the attempt completed, needs input, or is incomplete, riding the structured-output envelope and validated by the attempt finalizer.");
|
|
51
|
+
/**
|
|
52
|
+
* How the engine OBTAINED (or failed to obtain) a WorkReport for an attempt —
|
|
53
|
+
* the provenance of the work_state axis:
|
|
54
|
+
* - `constrained`: a native schema-constrained transport carried it (codex
|
|
55
|
+
* --output-schema, claude StructuredOutput tool).
|
|
56
|
+
* - `validated`: a whole-answer validated-JSON transport carried it (cursor).
|
|
57
|
+
* - `absent`: the route could not carry one (transport unsupported or a lane
|
|
58
|
+
* gated the structured transport off) — a DISCLOSED absence, not a failure.
|
|
59
|
+
*/
|
|
60
|
+
export const WorkReportSource = z
|
|
61
|
+
.enum(["constrained", "validated", "absent"])
|
|
62
|
+
.describe("Provenance of a WorkReport: constrained (native schema transport), validated (whole-answer JSON), or absent (no transport could carry one — a disclosed absence, not a failure).");
|
|
63
|
+
/**
|
|
64
|
+
* The D-16 work_state axis attached to attempt/run outcomes, ORTHOGONAL to the
|
|
65
|
+
* process lifecycle (INV-116). `state` folds the WorkReport state with an
|
|
66
|
+
* `unverified` value for the disclosed-absence case (transport unsupported /
|
|
67
|
+
* lane gated). A `needs_input`/`incomplete` work_state VETOES applyability and
|
|
68
|
+
* forces a non-zero CLI exit even when the process lifecycle succeeded, but it
|
|
69
|
+
* NEVER flips the lifecycle itself.
|
|
70
|
+
*/
|
|
71
|
+
export const WorkState = z
|
|
72
|
+
.object({
|
|
73
|
+
state: z
|
|
74
|
+
.enum(["completed", "needs_input", "incomplete", "unverified"])
|
|
75
|
+
.describe("Folded work state: the WorkReport state, or unverified when no report was obtainable (transport unsupported / lane gated)."),
|
|
76
|
+
source: WorkReportSource,
|
|
77
|
+
required_inputs: z
|
|
78
|
+
.array(RequiredInput)
|
|
79
|
+
.max(16)
|
|
80
|
+
.optional()
|
|
81
|
+
.describe("Carried through from a needs_input/incomplete WorkReport for honest disclosure."),
|
|
82
|
+
})
|
|
83
|
+
.describe("D-16 work_state axis: the model-attested work outcome, orthogonal to process lifecycle (INV-116); a needs_input/incomplete state vetoes applyability and exit 0 without flipping the lifecycle.");
|
|
84
|
+
/**
|
|
85
|
+
* Strict transport form of the WorkReport, hand-authored to match the Zod shape
|
|
86
|
+
* (every key required, additionalProperties:false, optional locator expressed
|
|
87
|
+
* as string|null — the vendor strict-mode recipe). This is the WorkReport half
|
|
88
|
+
* of the compiled envelope that rides `HarnessRunSpec.output_schema`. A unit
|
|
89
|
+
* test pins it against a fresh strictify of the generated WorkReport schema so
|
|
90
|
+
* drift is caught.
|
|
91
|
+
*/
|
|
92
|
+
export const WORK_REPORT_TRANSPORT_SCHEMA = {
|
|
93
|
+
type: "object",
|
|
94
|
+
properties: {
|
|
95
|
+
state: { type: "string", enum: ["completed", "needs_input", "incomplete"] },
|
|
96
|
+
required_inputs: {
|
|
97
|
+
type: "array",
|
|
98
|
+
maxItems: 16,
|
|
99
|
+
items: {
|
|
100
|
+
type: "object",
|
|
101
|
+
properties: {
|
|
102
|
+
kind: {
|
|
103
|
+
type: "string",
|
|
104
|
+
enum: [
|
|
105
|
+
"file",
|
|
106
|
+
"context",
|
|
107
|
+
"credential",
|
|
108
|
+
"permission",
|
|
109
|
+
"decision",
|
|
110
|
+
"external_dependency",
|
|
111
|
+
],
|
|
112
|
+
},
|
|
113
|
+
locator: { type: ["string", "null"], maxLength: 512 },
|
|
114
|
+
description: { type: "string", maxLength: 1024 },
|
|
115
|
+
},
|
|
116
|
+
required: ["kind", "locator", "description"],
|
|
117
|
+
additionalProperties: false,
|
|
118
|
+
},
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
required: ["state", "required_inputs"],
|
|
122
|
+
additionalProperties: false,
|
|
123
|
+
};
|
|
124
|
+
//# sourceMappingURL=work-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"work-report.js","sourceRoot":"","sources":["../src/work-report.ts"],"names":[],"mappings":"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"}
|
package/dist/workspace.d.ts
CHANGED
|
@@ -26,8 +26,8 @@ export declare const WorkspaceEnvelope: z.ZodObject<{
|
|
|
26
26
|
worktree_path: string;
|
|
27
27
|
base_sha: string | null;
|
|
28
28
|
base_ref: string;
|
|
29
|
-
task_id: string;
|
|
30
29
|
attempt_id: string;
|
|
30
|
+
task_id: string;
|
|
31
31
|
dirty_policy: "refuse" | "snapshot";
|
|
32
32
|
repo_root: string;
|
|
33
33
|
branch_name: string;
|
|
@@ -39,8 +39,8 @@ export declare const WorkspaceEnvelope: z.ZodObject<{
|
|
|
39
39
|
id: string;
|
|
40
40
|
worktree_path: string;
|
|
41
41
|
base_ref: string;
|
|
42
|
-
task_id: string;
|
|
43
42
|
attempt_id: string;
|
|
43
|
+
task_id: string;
|
|
44
44
|
repo_root: string;
|
|
45
45
|
branch_name: string;
|
|
46
46
|
home_dir: string;
|
|
@@ -191,14 +191,10 @@
|
|
|
191
191
|
"type": "array",
|
|
192
192
|
"items": {
|
|
193
193
|
"type": "string",
|
|
194
|
-
"
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
"xhigh",
|
|
199
|
-
"max"
|
|
200
|
-
],
|
|
201
|
-
"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."
|
|
194
|
+
"minLength": 1,
|
|
195
|
+
"maxLength": 32,
|
|
196
|
+
"pattern": "^[a-z0-9]+(?:[_-][a-z0-9]+)*$",
|
|
197
|
+
"description": "Cross-harness reasoning-effort level as a lowercase slug (open vocabulary, mirroring the vendor contract); adapters advertise the levels they accept per model, ordered weakest to strongest by the vendor itself, and a shared normalizer passes advertised levels through, clamps inside the vendor order, and refuses levels the advertised ladder has never seen."
|
|
202
198
|
},
|
|
203
199
|
"description": "Reasoning-effort ladder the adapter declares (normalized by the engine)."
|
|
204
200
|
},
|
|
@@ -278,6 +274,40 @@
|
|
|
278
274
|
},
|
|
279
275
|
"description": "Accepted POST /runs request keys (derived from the ControlRunStartRequest schema; the CLI/MCP/ACP surfaces project subsets of these)."
|
|
280
276
|
},
|
|
277
|
+
"outputSchemaDialects": {
|
|
278
|
+
"type": "array",
|
|
279
|
+
"items": {
|
|
280
|
+
"type": "object",
|
|
281
|
+
"properties": {
|
|
282
|
+
"dialect": {
|
|
283
|
+
"type": "string",
|
|
284
|
+
"enum": [
|
|
285
|
+
"draft-07",
|
|
286
|
+
"draft-2020-12"
|
|
287
|
+
],
|
|
288
|
+
"description": "Stable dialect id used in structured-output receipts."
|
|
289
|
+
},
|
|
290
|
+
"uri": {
|
|
291
|
+
"type": "string",
|
|
292
|
+
"format": "uri",
|
|
293
|
+
"description": "Canonical $schema URI accepted for this dialect."
|
|
294
|
+
},
|
|
295
|
+
"defaultWhenOmitted": {
|
|
296
|
+
"type": "boolean",
|
|
297
|
+
"description": "True when this dialect is selected for schemas without a $schema declaration."
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
"required": [
|
|
301
|
+
"dialect",
|
|
302
|
+
"uri",
|
|
303
|
+
"defaultWhenOmitted"
|
|
304
|
+
],
|
|
305
|
+
"additionalProperties": false,
|
|
306
|
+
"description": "One JSON Schema dialect accepted by the structured-output validator."
|
|
307
|
+
},
|
|
308
|
+
"minItems": 1,
|
|
309
|
+
"description": "Supported structured-output JSON Schema dialects and canonical $schema URIs."
|
|
310
|
+
},
|
|
281
311
|
"mutability": {
|
|
282
312
|
"type": "object",
|
|
283
313
|
"properties": {
|
|
@@ -416,6 +446,7 @@
|
|
|
416
446
|
"availableHarnesses",
|
|
417
447
|
"modes",
|
|
418
448
|
"runControlKeys",
|
|
449
|
+
"outputSchemaDialects",
|
|
419
450
|
"mutability",
|
|
420
451
|
"cliCommands",
|
|
421
452
|
"mcpTools",
|
|
@@ -34,6 +34,20 @@
|
|
|
34
34
|
"refused": {
|
|
35
35
|
"type": "boolean"
|
|
36
36
|
},
|
|
37
|
+
"alreadyApplied": {
|
|
38
|
+
"type": "boolean",
|
|
39
|
+
"default": false,
|
|
40
|
+
"description": "True when delivery was an idempotent already-applied no-op (no files changed)."
|
|
41
|
+
},
|
|
42
|
+
"deliveryStatus": {
|
|
43
|
+
"type": "string",
|
|
44
|
+
"enum": [
|
|
45
|
+
"applied",
|
|
46
|
+
"already_applied",
|
|
47
|
+
"refused"
|
|
48
|
+
],
|
|
49
|
+
"description": "Coarse typed delivery disposition (applied / already_applied / refused)."
|
|
50
|
+
},
|
|
37
51
|
"finalVerify": {
|
|
38
52
|
"type": "object",
|
|
39
53
|
"properties": {
|
|
@@ -349,21 +349,76 @@
|
|
|
349
349
|
"default": false,
|
|
350
350
|
"description": "The harness can constrain its final message to a caller-supplied JSON Schema (native structured-output flag)."
|
|
351
351
|
},
|
|
352
|
+
"work_report_transport": {
|
|
353
|
+
"type": "string",
|
|
354
|
+
"enum": [
|
|
355
|
+
"constrained",
|
|
356
|
+
"validated",
|
|
357
|
+
"unsupported"
|
|
358
|
+
],
|
|
359
|
+
"default": "unsupported",
|
|
360
|
+
"description": "How the harness carries the D-16 WorkReport envelope: constrained (native schema transport), validated (whole-answer JSON), or unsupported (work_state stays unverified)."
|
|
361
|
+
},
|
|
362
|
+
"structured_output_channel": {
|
|
363
|
+
"type": "string",
|
|
364
|
+
"enum": [
|
|
365
|
+
"side_tool",
|
|
366
|
+
"final_message"
|
|
367
|
+
],
|
|
368
|
+
"default": "final_message",
|
|
369
|
+
"description": "Where a schema-constrained answer surfaces: side_tool (rides a tool; final message stays markdown) or final_message (constrains the final message itself)."
|
|
370
|
+
},
|
|
352
371
|
"effort_levels": {
|
|
353
372
|
"type": "array",
|
|
354
373
|
"items": {
|
|
355
374
|
"type": "string",
|
|
356
|
-
"
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
"xhigh",
|
|
361
|
-
"max"
|
|
362
|
-
],
|
|
363
|
-
"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."
|
|
375
|
+
"minLength": 1,
|
|
376
|
+
"maxLength": 32,
|
|
377
|
+
"pattern": "^[a-z0-9]+(?:[_-][a-z0-9]+)*$",
|
|
378
|
+
"description": "Cross-harness reasoning-effort level as a lowercase slug (open vocabulary, mirroring the vendor contract); adapters advertise the levels they accept per model, ordered weakest to strongest by the vendor itself, and a shared normalizer passes advertised levels through, clamps inside the vendor order, and refuses levels the advertised ladder has never seen."
|
|
364
379
|
},
|
|
365
380
|
"default": [],
|
|
366
|
-
"description": "Ordered (weakest to strongest) reasoning-effort levels this harness
|
|
381
|
+
"description": "Ordered (weakest to strongest) reasoning-effort levels this harness accepts across all its models; empty means effort is not a tunable surface."
|
|
382
|
+
},
|
|
383
|
+
"model_effort_levels": {
|
|
384
|
+
"type": "object",
|
|
385
|
+
"additionalProperties": {
|
|
386
|
+
"type": "object",
|
|
387
|
+
"properties": {
|
|
388
|
+
"levels": {
|
|
389
|
+
"type": "array",
|
|
390
|
+
"items": {
|
|
391
|
+
"$ref": "#/definitions/ControlHarnessListResponse/properties/harnesses/items/properties/manifest/anyOf/0/properties/capabilities/properties/effort_levels/items"
|
|
392
|
+
},
|
|
393
|
+
"default": [],
|
|
394
|
+
"description": "Ordered (weakest to strongest) reasoning-effort levels this model advertises, in the vendor's own order."
|
|
395
|
+
},
|
|
396
|
+
"default": {
|
|
397
|
+
"anyOf": [
|
|
398
|
+
{
|
|
399
|
+
"$ref": "#/definitions/ControlHarnessListResponse/properties/harnesses/items/properties/manifest/anyOf/0/properties/capabilities/properties/effort_levels/items"
|
|
400
|
+
},
|
|
401
|
+
{
|
|
402
|
+
"type": "null"
|
|
403
|
+
}
|
|
404
|
+
],
|
|
405
|
+
"description": "The effort level the vendor uses for this model when none is requested.",
|
|
406
|
+
"default": null
|
|
407
|
+
}
|
|
408
|
+
},
|
|
409
|
+
"additionalProperties": false,
|
|
410
|
+
"description": "Reasoning-effort vocabulary a single model advertises."
|
|
411
|
+
},
|
|
412
|
+
"default": {},
|
|
413
|
+
"description": "Per-model advertised reasoning-effort vocabulary keyed by model id; a model absent here falls back to the harness-wide effort_levels union."
|
|
414
|
+
},
|
|
415
|
+
"effort_levels_verified_against": {
|
|
416
|
+
"type": [
|
|
417
|
+
"string",
|
|
418
|
+
"null"
|
|
419
|
+
],
|
|
420
|
+
"default": null,
|
|
421
|
+
"description": "Vendor CLI version the effort ladders were last verified against; null = never verified / not applicable."
|
|
367
422
|
},
|
|
368
423
|
"known_models": {
|
|
369
424
|
"type": "array",
|
|
@@ -30,14 +30,10 @@
|
|
|
30
30
|
"anyOf": [
|
|
31
31
|
{
|
|
32
32
|
"type": "string",
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"xhigh",
|
|
38
|
-
"max"
|
|
39
|
-
],
|
|
40
|
-
"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."
|
|
33
|
+
"minLength": 1,
|
|
34
|
+
"maxLength": 32,
|
|
35
|
+
"pattern": "^[a-z0-9]+(?:[_-][a-z0-9]+)*$",
|
|
36
|
+
"description": "Cross-harness reasoning-effort level as a lowercase slug (open vocabulary, mirroring the vendor contract); adapters advertise the levels they accept per model, ordered weakest to strongest by the vendor itself, and a shared normalizer passes advertised levels through, clamps inside the vendor order, and refuses levels the advertised ladder has never seen."
|
|
41
37
|
},
|
|
42
38
|
{
|
|
43
39
|
"type": "null"
|
|
@@ -55,6 +55,80 @@
|
|
|
55
55
|
}
|
|
56
56
|
]
|
|
57
57
|
},
|
|
58
|
+
"parameters": {
|
|
59
|
+
"type": "array",
|
|
60
|
+
"items": {
|
|
61
|
+
"type": "object",
|
|
62
|
+
"properties": {
|
|
63
|
+
"name": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"minLength": 1,
|
|
66
|
+
"description": "Wire name of the parameter: the query key or the (case-insensitive) header field name."
|
|
67
|
+
},
|
|
68
|
+
"location": {
|
|
69
|
+
"type": "string",
|
|
70
|
+
"enum": [
|
|
71
|
+
"query",
|
|
72
|
+
"header"
|
|
73
|
+
],
|
|
74
|
+
"description": "Where the parameter travels: the URL query string or a request header."
|
|
75
|
+
},
|
|
76
|
+
"required": {
|
|
77
|
+
"type": "boolean",
|
|
78
|
+
"description": "Whether the operation requires the parameter to be present."
|
|
79
|
+
},
|
|
80
|
+
"repeatable": {
|
|
81
|
+
"type": "boolean",
|
|
82
|
+
"default": false,
|
|
83
|
+
"description": "Whether the parameter may appear more than once (e.g. a repeated query filter)."
|
|
84
|
+
},
|
|
85
|
+
"enum": {
|
|
86
|
+
"anyOf": [
|
|
87
|
+
{
|
|
88
|
+
"type": "array",
|
|
89
|
+
"items": {
|
|
90
|
+
"type": "string",
|
|
91
|
+
"minLength": 1
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"type": "null"
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
"default": null,
|
|
99
|
+
"description": "Closed set of accepted values when the grammar is a fixed enum; null otherwise."
|
|
100
|
+
},
|
|
101
|
+
"schemaRef": {
|
|
102
|
+
"anyOf": [
|
|
103
|
+
{
|
|
104
|
+
"type": "string",
|
|
105
|
+
"minLength": 1
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"type": "null"
|
|
109
|
+
}
|
|
110
|
+
],
|
|
111
|
+
"default": null,
|
|
112
|
+
"description": "Generated schema name (optionally a `Name#/properties/field` pointer) that types this parameter's value when it is not a simple enum; null otherwise."
|
|
113
|
+
},
|
|
114
|
+
"description": {
|
|
115
|
+
"type": "string",
|
|
116
|
+
"minLength": 1,
|
|
117
|
+
"description": "One-line human semantics of the parameter."
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
"required": [
|
|
121
|
+
"name",
|
|
122
|
+
"location",
|
|
123
|
+
"required",
|
|
124
|
+
"description"
|
|
125
|
+
],
|
|
126
|
+
"additionalProperties": false,
|
|
127
|
+
"description": "A query or header request parameter an operation reads (never the JSON body)."
|
|
128
|
+
},
|
|
129
|
+
"default": [],
|
|
130
|
+
"description": "Query/header request parameters (body shape is `requestSchema`)."
|
|
131
|
+
},
|
|
58
132
|
"responseSchema": {
|
|
59
133
|
"anyOf": [
|
|
60
134
|
{
|
|
@@ -46,6 +46,80 @@
|
|
|
46
46
|
}
|
|
47
47
|
]
|
|
48
48
|
},
|
|
49
|
+
"parameters": {
|
|
50
|
+
"type": "array",
|
|
51
|
+
"items": {
|
|
52
|
+
"type": "object",
|
|
53
|
+
"properties": {
|
|
54
|
+
"name": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"minLength": 1,
|
|
57
|
+
"description": "Wire name of the parameter: the query key or the (case-insensitive) header field name."
|
|
58
|
+
},
|
|
59
|
+
"location": {
|
|
60
|
+
"type": "string",
|
|
61
|
+
"enum": [
|
|
62
|
+
"query",
|
|
63
|
+
"header"
|
|
64
|
+
],
|
|
65
|
+
"description": "Where the parameter travels: the URL query string or a request header."
|
|
66
|
+
},
|
|
67
|
+
"required": {
|
|
68
|
+
"type": "boolean",
|
|
69
|
+
"description": "Whether the operation requires the parameter to be present."
|
|
70
|
+
},
|
|
71
|
+
"repeatable": {
|
|
72
|
+
"type": "boolean",
|
|
73
|
+
"default": false,
|
|
74
|
+
"description": "Whether the parameter may appear more than once (e.g. a repeated query filter)."
|
|
75
|
+
},
|
|
76
|
+
"enum": {
|
|
77
|
+
"anyOf": [
|
|
78
|
+
{
|
|
79
|
+
"type": "array",
|
|
80
|
+
"items": {
|
|
81
|
+
"type": "string",
|
|
82
|
+
"minLength": 1
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"type": "null"
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"default": null,
|
|
90
|
+
"description": "Closed set of accepted values when the grammar is a fixed enum; null otherwise."
|
|
91
|
+
},
|
|
92
|
+
"schemaRef": {
|
|
93
|
+
"anyOf": [
|
|
94
|
+
{
|
|
95
|
+
"type": "string",
|
|
96
|
+
"minLength": 1
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"type": "null"
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
"default": null,
|
|
103
|
+
"description": "Generated schema name (optionally a `Name#/properties/field` pointer) that types this parameter's value when it is not a simple enum; null otherwise."
|
|
104
|
+
},
|
|
105
|
+
"description": {
|
|
106
|
+
"type": "string",
|
|
107
|
+
"minLength": 1,
|
|
108
|
+
"description": "One-line human semantics of the parameter."
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"required": [
|
|
112
|
+
"name",
|
|
113
|
+
"location",
|
|
114
|
+
"required",
|
|
115
|
+
"description"
|
|
116
|
+
],
|
|
117
|
+
"additionalProperties": false,
|
|
118
|
+
"description": "A query or header request parameter an operation reads (never the JSON body)."
|
|
119
|
+
},
|
|
120
|
+
"default": [],
|
|
121
|
+
"description": "Query/header request parameters (body shape is `requestSchema`)."
|
|
122
|
+
},
|
|
49
123
|
"responseSchema": {
|
|
50
124
|
"anyOf": [
|
|
51
125
|
{
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/ControlOperationParameter",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"ControlOperationParameter": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"name": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"minLength": 1,
|
|
10
|
+
"description": "Wire name of the parameter: the query key or the (case-insensitive) header field name."
|
|
11
|
+
},
|
|
12
|
+
"location": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"enum": [
|
|
15
|
+
"query",
|
|
16
|
+
"header"
|
|
17
|
+
],
|
|
18
|
+
"description": "Where the parameter travels: the URL query string or a request header."
|
|
19
|
+
},
|
|
20
|
+
"required": {
|
|
21
|
+
"type": "boolean",
|
|
22
|
+
"description": "Whether the operation requires the parameter to be present."
|
|
23
|
+
},
|
|
24
|
+
"repeatable": {
|
|
25
|
+
"type": "boolean",
|
|
26
|
+
"default": false,
|
|
27
|
+
"description": "Whether the parameter may appear more than once (e.g. a repeated query filter)."
|
|
28
|
+
},
|
|
29
|
+
"enum": {
|
|
30
|
+
"anyOf": [
|
|
31
|
+
{
|
|
32
|
+
"type": "array",
|
|
33
|
+
"items": {
|
|
34
|
+
"type": "string",
|
|
35
|
+
"minLength": 1
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"type": "null"
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"default": null,
|
|
43
|
+
"description": "Closed set of accepted values when the grammar is a fixed enum; null otherwise."
|
|
44
|
+
},
|
|
45
|
+
"schemaRef": {
|
|
46
|
+
"anyOf": [
|
|
47
|
+
{
|
|
48
|
+
"type": "string",
|
|
49
|
+
"minLength": 1
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"type": "null"
|
|
53
|
+
}
|
|
54
|
+
],
|
|
55
|
+
"default": null,
|
|
56
|
+
"description": "Generated schema name (optionally a `Name#/properties/field` pointer) that types this parameter's value when it is not a simple enum; null otherwise."
|
|
57
|
+
},
|
|
58
|
+
"description": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"minLength": 1,
|
|
61
|
+
"description": "One-line human semantics of the parameter."
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
"required": [
|
|
65
|
+
"name",
|
|
66
|
+
"location",
|
|
67
|
+
"required",
|
|
68
|
+
"description"
|
|
69
|
+
],
|
|
70
|
+
"additionalProperties": false,
|
|
71
|
+
"description": "A query or header request parameter an operation reads (never the JSON body)."
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
75
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$ref": "#/definitions/ControlProjectRemoveReceipt",
|
|
3
|
+
"definitions": {
|
|
4
|
+
"ControlProjectRemoveReceipt": {
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"projectId": {
|
|
8
|
+
"type": "string",
|
|
9
|
+
"minLength": 1,
|
|
10
|
+
"description": "The retired project's stable id."
|
|
11
|
+
},
|
|
12
|
+
"root": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"minLength": 1,
|
|
15
|
+
"description": "The project's canonical root at removal time."
|
|
16
|
+
},
|
|
17
|
+
"registryRemoved": {
|
|
18
|
+
"type": "boolean",
|
|
19
|
+
"const": true,
|
|
20
|
+
"description": "The durable global-registry entry (and its indexes) were removed."
|
|
21
|
+
},
|
|
22
|
+
"journalPartitionArchived": {
|
|
23
|
+
"type": "boolean",
|
|
24
|
+
"description": "Whether the project's journal partition directory was archived (renamed out of the active journal tree). False only when the partition never materialized on disk."
|
|
25
|
+
},
|
|
26
|
+
"archivedPartitionPath": {
|
|
27
|
+
"type": [
|
|
28
|
+
"string",
|
|
29
|
+
"null"
|
|
30
|
+
],
|
|
31
|
+
"description": "Absolute path the partition journal was archived to, or null when there was no partition directory to archive."
|
|
32
|
+
},
|
|
33
|
+
"artifactsRetained": {
|
|
34
|
+
"type": "boolean",
|
|
35
|
+
"const": true,
|
|
36
|
+
"description": "Run artifact trees are left in place for normal GC/retention — remove never deletes run bytes or the user's project directory."
|
|
37
|
+
},
|
|
38
|
+
"activeRunCheck": {
|
|
39
|
+
"type": "string",
|
|
40
|
+
"const": "snapshot",
|
|
41
|
+
"description": "How the live/queued-run fence was evaluated. Always 'snapshot': the active-run set is read once (an async daemon IPC job-list read) BEFORE the synchronous removal, so a run that starts in the narrow window between the snapshot and the removal is NOT fenced. Honest disclosure of a TOCTOU race the current architecture cannot close inside the sync section; see docs/ARCHITECTURE.md."
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"required": [
|
|
45
|
+
"projectId",
|
|
46
|
+
"root",
|
|
47
|
+
"registryRemoved",
|
|
48
|
+
"journalPartitionArchived",
|
|
49
|
+
"archivedPartitionPath",
|
|
50
|
+
"artifactsRetained",
|
|
51
|
+
"activeRunCheck"
|
|
52
|
+
],
|
|
53
|
+
"additionalProperties": false,
|
|
54
|
+
"description": "DELETE /v2/projects/:id receipt: registry entry removed, journal partition archived, artifacts left to GC."
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
58
|
+
}
|