@claudexor/schema 5.0.1 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/account-routing-evidence.d.ts +256 -0
- package/dist/account-routing-evidence.d.ts.map +1 -1
- package/dist/account-routing-evidence.js +27 -2
- package/dist/account-routing-evidence.js.map +1 -1
- package/dist/agent-capabilities.d.ts +3 -0
- package/dist/agent-capabilities.d.ts.map +1 -1
- package/dist/agent-capabilities.js +6 -2
- package/dist/agent-capabilities.js.map +1 -1
- package/dist/attachment.d.ts +103 -6
- package/dist/attachment.d.ts.map +1 -1
- package/dist/attachment.js +32 -6
- package/dist/attachment.js.map +1 -1
- package/dist/browser-evidence.d.ts +85 -0
- package/dist/browser-evidence.d.ts.map +1 -0
- package/dist/browser-evidence.js +72 -0
- package/dist/browser-evidence.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -1
- package/dist/config.js.map +1 -1
- package/dist/control-gc.d.ts +30 -0
- package/dist/control-gc.d.ts.map +1 -1
- package/dist/control-gc.js +28 -1
- package/dist/control-gc.js.map +1 -1
- package/dist/control-operation-responses.d.ts +438 -36
- package/dist/control-operation-responses.d.ts.map +1 -1
- package/dist/control-operation-responses.js +11 -2
- package/dist/control-operation-responses.js.map +1 -1
- package/dist/control-process-scope.d.ts +34 -0
- package/dist/control-process-scope.d.ts.map +1 -1
- package/dist/control-process-scope.js +13 -0
- package/dist/control-process-scope.js.map +1 -1
- package/dist/control-run-detail.d.ts +785 -89
- package/dist/control-run-detail.d.ts.map +1 -1
- package/dist/control-run-event-part.d.ts +3 -3
- package/dist/control-run-failure.d.ts +29 -6
- package/dist/control-run-failure.d.ts.map +1 -1
- package/dist/control-run-failure.js +28 -3
- package/dist/control-run-failure.js.map +1 -1
- package/dist/control-trust.d.ts +8 -0
- package/dist/control-trust.d.ts.map +1 -1
- package/dist/control-trust.js +4 -0
- package/dist/control-trust.js.map +1 -1
- package/dist/control-web-evidence.d.ts +125 -0
- package/dist/control-web-evidence.d.ts.map +1 -0
- package/dist/control-web-evidence.js +109 -0
- package/dist/control-web-evidence.js.map +1 -0
- package/dist/control.d.ts +292 -98
- package/dist/control.d.ts.map +1 -1
- package/dist/control.js +43 -49
- package/dist/control.js.map +1 -1
- package/dist/credential-profile.d.ts +4 -3
- package/dist/credential-profile.d.ts.map +1 -1
- package/dist/credential-profile.js +4 -3
- package/dist/credential-profile.js.map +1 -1
- package/dist/decision.d.ts +9 -9
- package/dist/decision.d.ts.map +1 -1
- package/dist/decision.js +2 -0
- package/dist/decision.js.map +1 -1
- package/dist/deferred-message.d.ts +646 -0
- package/dist/deferred-message.d.ts.map +1 -1
- package/dist/deferred-message.js +16 -2
- package/dist/deferred-message.js.map +1 -1
- package/dist/events.d.ts +10 -10
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +6 -0
- package/dist/events.js.map +1 -1
- package/dist/harness-confinement.js +1 -1
- package/dist/harness-confinement.js.map +1 -1
- package/dist/harness-input.d.ts +12 -0
- package/dist/harness-input.d.ts.map +1 -1
- package/dist/harness-input.js +11 -1
- package/dist/harness-input.js.map +1 -1
- package/dist/harness-interaction.d.ts +20 -0
- package/dist/harness-interaction.d.ts.map +1 -1
- package/dist/harness-interaction.js +36 -0
- package/dist/harness-interaction.js.map +1 -1
- package/dist/harness.d.ts +95 -19
- package/dist/harness.d.ts.map +1 -1
- package/dist/harness.js +16 -15
- package/dist/harness.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp-run-result.d.ts +363 -50
- package/dist/mcp-run-result.d.ts.map +1 -1
- package/dist/mcp-run-wait.d.ts +133 -7
- package/dist/mcp-run-wait.d.ts.map +1 -1
- package/dist/operation.d.ts +1 -1
- package/dist/operation.d.ts.map +1 -1
- package/dist/operation.js +1 -1
- package/dist/operation.js.map +1 -1
- package/dist/process-scope.d.ts +154 -0
- package/dist/process-scope.d.ts.map +1 -1
- package/dist/process-scope.js +16 -1
- package/dist/process-scope.js.map +1 -1
- package/dist/quota.d.ts +14 -0
- package/dist/quota.d.ts.map +1 -1
- package/dist/quota.js +14 -0
- package/dist/quota.js.map +1 -1
- package/dist/rate-limit.d.ts +3 -0
- package/dist/rate-limit.d.ts.map +1 -1
- package/dist/rate-limit.js +4 -0
- package/dist/rate-limit.js.map +1 -1
- package/dist/raw.d.ts.map +1 -1
- package/dist/raw.js +11 -5
- package/dist/raw.js.map +1 -1
- package/dist/route-controls.d.ts +49 -0
- package/dist/route-controls.d.ts.map +1 -0
- package/dist/route-controls.js +53 -0
- package/dist/route-controls.js.map +1 -0
- package/dist/route-health.d.ts +23 -23
- package/dist/route-health.js +1 -1
- package/dist/route-health.js.map +1 -1
- package/dist/run-continuation.d.ts +6 -6
- package/dist/run-continuity.d.ts +7 -7
- package/dist/run-continuity.d.ts.map +1 -1
- package/dist/run-continuity.js +2 -1
- package/dist/run-continuity.js.map +1 -1
- package/dist/run-facts.d.ts +5 -5
- package/dist/run-facts.js +1 -1
- package/dist/run-facts.js.map +1 -1
- package/dist/status-projection.d.ts +3 -2
- package/dist/status-projection.d.ts.map +1 -1
- package/dist/status-projection.js +5 -2
- package/dist/status-projection.js.map +1 -1
- package/dist/task-group.d.ts +3 -0
- package/dist/task-group.d.ts.map +1 -1
- package/dist/task-group.js +11 -1
- package/dist/task-group.js.map +1 -1
- package/dist/task.d.ts +2 -2
- package/dist/task.d.ts.map +1 -1
- package/dist/task.js +4 -4
- package/dist/task.js.map +1 -1
- package/dist/telemetry.d.ts +602 -117
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +17 -88
- package/dist/telemetry.js.map +1 -1
- package/dist/thread-export.d.ts +847 -0
- package/dist/thread-export.d.ts.map +1 -0
- package/dist/thread-export.js +238 -0
- package/dist/thread-export.js.map +1 -0
- package/dist/thread-history.d.ts +248 -132
- package/dist/thread-history.d.ts.map +1 -1
- package/dist/thread.d.ts +72 -6
- package/dist/thread.d.ts.map +1 -1
- package/dist/thread.js +19 -3
- package/dist/thread.js.map +1 -1
- package/dist/tool-ref.d.ts +172 -21
- package/dist/tool-ref.d.ts.map +1 -1
- package/dist/tool-ref.js +114 -29
- package/dist/tool-ref.js.map +1 -1
- package/dist/web-evidence.d.ts +91 -0
- package/dist/web-evidence.d.ts.map +1 -0
- package/dist/web-evidence.js +77 -0
- package/dist/web-evidence.js.map +1 -0
- package/dist/workspace-preparation.d.ts +54 -0
- package/dist/workspace-preparation.d.ts.map +1 -0
- package/dist/workspace-preparation.js +59 -0
- package/dist/workspace-preparation.js.map +1 -0
- package/dist/workspace.js +1 -1
- package/dist/workspace.js.map +1 -1
- package/generated/AgentCapabilityCatalog.schema.json +20 -2
- package/generated/ControlAccountRoutingEvidenceResponse.schema.json +61 -1
- package/generated/ControlCredentialProfilesQueryResponse.schema.json +2 -2
- package/generated/ControlCredentialProfilesResourcesResponse.schema.json +2 -2
- package/generated/ControlCredentialProfilesSnapshotResponse.schema.json +2 -2
- package/generated/ControlGcLastResponse.schema.json +22 -0
- package/generated/ControlGcReceipt.schema.json +13 -1
- package/generated/ControlHarnessListResponse.schema.json +2 -2
- package/generated/ControlQueuedRunInfo.schema.json +1 -1
- package/generated/ControlResource.schema.json +5 -0
- package/generated/ControlResourceRelease.schema.json +44 -0
- package/generated/ControlResourceReleaseRequest.schema.json +27 -0
- package/generated/ControlRetainedEnvelope.schema.json +2 -1
- package/generated/ControlRouteHealth.schema.json +13 -1
- package/generated/ControlRunControlResponse.schema.json +41 -3
- package/generated/ControlRunDecisionRequest.schema.json +8 -2
- package/generated/ControlRunDecisionResponse.schema.json +4 -3
- package/generated/ControlRunDetail.schema.json +337 -10
- package/generated/ControlRunEventPart.schema.json +1 -0
- package/generated/ControlRunListResponse.schema.json +296 -7
- package/generated/ControlRunRetryResponse.schema.json +1 -1
- package/generated/ControlRunStartInfo.schema.json +1 -1
- package/generated/ControlRunStartResponse.schema.json +2 -2
- package/generated/ControlRunSummary.schema.json +296 -7
- package/generated/ControlThreadDetail.schema.json +1 -0
- package/generated/ControlThreadTurnResponse.schema.json +9 -0
- package/generated/ControlTrustListResponse.schema.json +8 -0
- package/generated/ControlTrustState.schema.json +8 -0
- package/generated/ControlUploadImport.schema.json +12 -2
- package/generated/ControlUploadImportRequest.schema.json +5 -0
- package/generated/DecisionRecord.schema.json +1 -0
- package/generated/DeferredMessageDetail.schema.json +43 -7
- package/generated/DeferredMessageProjection.schema.json +41 -3
- package/generated/DeferredMessageReadResult.schema.json +42 -4
- package/generated/DeferredMessageReceipt.schema.json +41 -3
- package/generated/EnvelopeCustody.schema.json +3 -2
- package/generated/GlobalConfig.schema.json +1 -1
- package/generated/HarnessEvent.schema.json +140 -4
- package/generated/HarnessManifest.schema.json +2 -2
- package/generated/HarnessStatusDto.schema.json +2 -2
- package/generated/McpAccountsToolResult.schema.json +62 -2
- package/generated/McpRunHandleResult.schema.json +90 -6
- package/generated/McpRunToolResult.schema.json +89 -6
- package/generated/McpRunWaitResult.schema.json +42 -3
- package/generated/McpThreadTurnResult.schema.json +9 -0
- package/generated/RawContextPacket.schema.json +6 -4
- package/generated/RawGitPatchEnvelope.schema.json +1 -1
- package/generated/RoutePoolDegradedPayload.schema.json +2 -1
- package/generated/RunContinuityReceipt.schema.json +2 -1
- package/generated/RunEvent.schema.json +1 -0
- package/generated/RunFacts.schema.json +1 -0
- package/generated/RunFailure.schema.json +46 -2
- package/generated/RunResumable.schema.json +2 -1
- package/generated/RunTelemetry.schema.json +288 -7
- package/generated/TaskContract.schema.json +3 -3
- package/generated/TaskGroupReceipt.schema.json +1 -1
- package/generated/Thread.schema.json +41 -0
- package/generated/ThreadExportManifest.schema.json +461 -0
- package/generated/ThreadExportReceipt.schema.json +94 -0
- package/generated/ThreadHistoryPage.schema.json +47 -2
- package/generated/ThreadRetireAbandonRequest.schema.json +21 -0
- package/generated/ThreadRetireRequest.schema.json +41 -0
- package/generated/ThreadRetirement.schema.json +175 -0
- package/generated/ThreadTurn.schema.json +1 -1
- package/generated/WorkspaceEnvelope.schema.json +1 -1
- package/generated/WorkspacePreparedPayload.schema.json +67 -0
- package/package.json +2 -2
package/dist/tool-ref.js
CHANGED
|
@@ -6,18 +6,28 @@ import { z } from "zod/v3";
|
|
|
6
6
|
export const ToolKind = z
|
|
7
7
|
.enum(["web", "file", "command", "mcp", "search", "other"])
|
|
8
8
|
.describe("Coarse tool classification used for typed governance; adapters map native tool names to a kind.");
|
|
9
|
+
/**
|
|
10
|
+
* #546: the vendor's own report that a background command ended, as far as a
|
|
11
|
+
* protocol source defines it. It is neither an exit code nor the success of the
|
|
12
|
+
* command's work, and a word outside this list is no report at all.
|
|
13
|
+
*/
|
|
14
|
+
export const ToolCommandCompletionStatus = z
|
|
15
|
+
.enum(["success", "error", "aborted"])
|
|
16
|
+
.describe("The vendor's word for how a background command ended (Cursor 2026.08.11 shell completions); never an exit code or proof that the command's work succeeded.");
|
|
9
17
|
/**
|
|
10
18
|
* #450: what a command-kind tool result established about the PROCESS it
|
|
11
19
|
* ran, separate from `status` (the tool call's own outcome). A background
|
|
12
20
|
* handoff or an elapsed timeout returns an ordinary tool result while the
|
|
13
21
|
* command's end is unobserved, so neither counts as a finished command.
|
|
22
|
+
* #546: a later `command_outcome_refined` status can replace these facts for
|
|
23
|
+
* the same call (`completion_reported`), keeping the handoff facts beside it.
|
|
14
24
|
* Absent on adapters and legacy events that do not report it.
|
|
15
25
|
*/
|
|
16
26
|
export const ToolCommandOutcome = z
|
|
17
27
|
.object({
|
|
18
28
|
state: z
|
|
19
|
-
.enum(["exited", "timed_out", "backgrounded", "unknown"])
|
|
20
|
-
.describe("exited: the tool observed the command end; timed_out: the tool's timeout elapsed before an observed end (the process may still run or may have been signalled); backgrounded: the command was handed to a background shell and was still running when the result returned; unknown: the native result established none of these."),
|
|
29
|
+
.enum(["exited", "timed_out", "backgrounded", "completion_reported", "unknown"])
|
|
30
|
+
.describe("exited: the tool observed the command end; timed_out: the tool's timeout elapsed before an observed end (the process may still run or may have been signalled); backgrounded: the command was handed to a background shell and was still running when the result returned; completion_reported: after such a handoff, a later vendor notification reported that the command ended, without an exit code; unknown: the native result established none of these."),
|
|
21
31
|
signal: z
|
|
22
32
|
.string()
|
|
23
33
|
.min(1)
|
|
@@ -39,8 +49,63 @@ export const ToolCommandOutcome = z
|
|
|
39
49
|
.optional()
|
|
40
50
|
.describe("Vendor handle of the background shell that kept the command."),
|
|
41
51
|
pid: z.number().int().positive().optional().describe("Vendor-reported process id."),
|
|
52
|
+
completion_status: ToolCommandCompletionStatus.optional().describe("What the vendor reported about a completion_reported command; never an exit code."),
|
|
42
53
|
})
|
|
43
54
|
.describe("Typed facts about the process a command-kind tool ran, separate from status.");
|
|
55
|
+
/**
|
|
56
|
+
* #546: `payload.code` of the `status` event that refines the command outcome
|
|
57
|
+
* of an earlier tool call (today: Cursor reports the end of a command it had
|
|
58
|
+
* handed to a background shell). Its `tool` names that call by `use_id` and
|
|
59
|
+
* carries the refined `command_outcome`, which replaces the call's handoff
|
|
60
|
+
* facts and keeps them beside the new state. It is only ever
|
|
61
|
+
* `completion_reported` with a defined status: it can never prove an exit,
|
|
62
|
+
* restates or changes no call `status`, carries no exit code, and is never a
|
|
63
|
+
* second result. A reader that does not know the code sees an ordinary status
|
|
64
|
+
* event.
|
|
65
|
+
*/
|
|
66
|
+
export const COMMAND_OUTCOME_REFINED = "command_outcome_refined";
|
|
67
|
+
/** The call and refined command facts of a `command_outcome_refined` status
|
|
68
|
+
* event or of its stored `harness.event` payload; null for anything else,
|
|
69
|
+
* including a row that claims an exit or an undefined report. */
|
|
70
|
+
export function commandOutcomeRefinement(event) {
|
|
71
|
+
const row = (event !== null && typeof event === "object" ? event : {});
|
|
72
|
+
if (row.type !== "status" || row.payload?.code !== COMMAND_OUTCOME_REFINED)
|
|
73
|
+
return null;
|
|
74
|
+
const useId = row.tool?.use_id;
|
|
75
|
+
const outcome = ToolCommandOutcome.safeParse(row.tool?.command_outcome);
|
|
76
|
+
return typeof useId === "string" &&
|
|
77
|
+
useId &&
|
|
78
|
+
outcome.success &&
|
|
79
|
+
outcome.data.state === "completion_reported" &&
|
|
80
|
+
outcome.data.completion_status
|
|
81
|
+
? { useId, outcome: outcome.data }
|
|
82
|
+
: null;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* #546: what an attempt keeps of the vendor's reports about commands it had
|
|
86
|
+
* handed to a background shell: the exact call and its refined facts. These are
|
|
87
|
+
* command facts, never tool errors, so no recovery, warning, terminal or ranking
|
|
88
|
+
* policy reads them: a deliberately stopped dev server reports `aborted` and may
|
|
89
|
+
* simply have finished correctly. `recent` is bounded by the writer and `total`
|
|
90
|
+
* keeps the true count.
|
|
91
|
+
*/
|
|
92
|
+
export const ReportedCommandOutcomes = z
|
|
93
|
+
.object({
|
|
94
|
+
total: z.number().int().nonnegative().describe("True count of reports in this attempt."),
|
|
95
|
+
recent: z
|
|
96
|
+
.array(z.object({
|
|
97
|
+
tool: z.string().describe("Native tool name of the reported call."),
|
|
98
|
+
target: z
|
|
99
|
+
.string()
|
|
100
|
+
.nullable()
|
|
101
|
+
.default(null)
|
|
102
|
+
.describe("Target of the call as issued, when known."),
|
|
103
|
+
tool_use_id: z.string().min(1).describe("The exact call the report refined."),
|
|
104
|
+
command_outcome: ToolCommandOutcome.describe("The call's refined facts: the vendor's word and the handoff, never an exit code."),
|
|
105
|
+
}))
|
|
106
|
+
.describe("The most recent reports, bounded by the writer."),
|
|
107
|
+
})
|
|
108
|
+
.describe("Vendor reports about handed-off commands, kept apart from tool errors.");
|
|
44
109
|
/**
|
|
45
110
|
* Typed tool reference attached to `tool_call` / `tool_result` events.
|
|
46
111
|
* `status` is REQUIRED on `tool_result` events (adapter conformance enforces it);
|
|
@@ -89,26 +154,38 @@ export const ToolRef = z
|
|
|
89
154
|
/**
|
|
90
155
|
* QA-042: adapter-stamped RETRIEVAL outcome for a web/browser tool result,
|
|
91
156
|
* distinct from `status` (the tool-call LIFECYCLE). `verified` = the vendor
|
|
92
|
-
* exposed a typed successful retrieval
|
|
93
|
-
* = the
|
|
94
|
-
* (codex `web_search`/`open_page` — a completed item can hide a
|
|
95
|
-
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
157
|
+
* exposed a typed successful retrieval, and `web_content` says what it
|
|
158
|
+
* returned; `dispatched` = the call completed but the vendor exposes NO typed
|
|
159
|
+
* fetch outcome (codex `web_search`/`open_page` — a completed item can hide a
|
|
160
|
+
* 502; a Browser page read that got an HTTP error), so the evidence is
|
|
161
|
+
* dispatch-only, not proof of content; `failed` = a typed retrieval failure.
|
|
162
|
+
* Absent on non-web tools, on a Browser call that read no web page (#118),
|
|
163
|
+
* and on adapters that do not stamp it. The engine reads THIS (never prose)
|
|
164
|
+
* to separate "web reached" from "web verified".
|
|
99
165
|
*/
|
|
100
166
|
web_retrieval: z
|
|
101
167
|
.enum(["verified", "dispatched", "failed"])
|
|
102
168
|
.optional()
|
|
103
169
|
.describe("Adapter-stamped web/browser retrieval outcome (verified/dispatched/failed), distinct from the tool-call status lifecycle."),
|
|
170
|
+
/**
|
|
171
|
+
* #118: what a `verified` retrieval returned. `page` = a fetched or loaded
|
|
172
|
+
* page (claude WebFetch; a Browser navigation or snapshot of an http(s) page
|
|
173
|
+
* with no HTTP error); `search_results` = the results of a web search
|
|
174
|
+
* (claude WebSearch), which is not a fetched page. Absent otherwise.
|
|
175
|
+
*/
|
|
176
|
+
web_content: z
|
|
177
|
+
.enum(["page", "search_results"])
|
|
178
|
+
.optional()
|
|
179
|
+
.describe("What a verified web retrieval returned: page (a fetched or loaded page) or search_results (a web search's results, not a fetched page)."),
|
|
104
180
|
})
|
|
105
181
|
.describe("Typed tool reference attached to tool_call/tool_result events.");
|
|
106
182
|
/**
|
|
107
183
|
* True when a result carries command facts that do not establish an observed
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
*
|
|
111
|
-
*
|
|
184
|
+
* exit: handed to a background shell, timed out, a completion reported
|
|
185
|
+
* without an exit code, or any other state. Such a result never proves the
|
|
186
|
+
* command finished successfully, so it is never a success or a recovery.
|
|
187
|
+
* Absent facts (other adapters, legacy events) keep their existing meaning;
|
|
188
|
+
* an unrecognized value counts as unconfirmed.
|
|
112
189
|
*/
|
|
113
190
|
export function commandOutcomeUnconfirmed(value) {
|
|
114
191
|
if (value === undefined || value === null)
|
|
@@ -123,8 +200,12 @@ function durationLabel(ms) {
|
|
|
123
200
|
}
|
|
124
201
|
/**
|
|
125
202
|
* The one English description of an unconfirmed command outcome (INV-134,
|
|
126
|
-
* INV-141), used by adapter
|
|
127
|
-
*
|
|
203
|
+
* INV-141), used by adapter text, ACP and the continuation packet; the macOS
|
|
204
|
+
* note mirrors it word for word. A handoff says only what was seen: the
|
|
205
|
+
* command went to a background shell and its completion was not observed,
|
|
206
|
+
* never that it is still running. A reported completion leads with the
|
|
207
|
+
* report, keeps the exit code unknown and keeps the handoff as history. Null
|
|
208
|
+
* when nothing needs disclosure: no facts, or an observed exit.
|
|
128
209
|
*/
|
|
129
210
|
export function commandOutcomeLabel(value) {
|
|
130
211
|
if (!commandOutcomeUnconfirmed(value))
|
|
@@ -134,19 +215,23 @@ export function commandOutcomeLabel(value) {
|
|
|
134
215
|
return "Command outcome not reported";
|
|
135
216
|
const { state, timeout_ms: ms, background_reason: reason, shell_id, pid } = parsed.data;
|
|
136
217
|
const handle = [shell_id && `shell ${shell_id}`, pid && `pid ${pid}`].filter(Boolean);
|
|
137
|
-
|
|
138
|
-
?
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
?
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
return [
|
|
218
|
+
if (state === "timed_out") {
|
|
219
|
+
const lead = ms === undefined ? "Timed out" : `Timed out after ${durationLabel(ms)}`;
|
|
220
|
+
return [lead, "exit status unknown", ...handle].join(" · ");
|
|
221
|
+
}
|
|
222
|
+
const after = reason === "timeout" && ms !== 0
|
|
223
|
+
? ms === undefined
|
|
224
|
+
? " after its timeout"
|
|
225
|
+
: ` after its ${durationLabel(ms)} timeout`
|
|
226
|
+
: "";
|
|
227
|
+
if (state === "backgrounded")
|
|
228
|
+
return [`Handed off to background${after}; completion not observed`, ...handle].join(" · ");
|
|
229
|
+
const vendor = parsed.data.completion_status;
|
|
230
|
+
const reported = vendor && vendor !== "success" ? ` (${vendor})` : "";
|
|
231
|
+
return [
|
|
232
|
+
`Completion reported${reported}; exit code unknown`,
|
|
233
|
+
`handed off to background${after}`,
|
|
234
|
+
...handle,
|
|
235
|
+
].join(" · ");
|
|
151
236
|
}
|
|
152
237
|
//# sourceMappingURL=tool-ref.js.map
|
package/dist/tool-ref.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-ref.js","sourceRoot":"","sources":["../src/tool-ref.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAE3B;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC;KACtB,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;KAC1D,QAAQ,CACP,iGAAiG,CAClG,CAAC;AAGJ
|
|
1
|
+
{"version":3,"file":"tool-ref.js","sourceRoot":"","sources":["../src/tool-ref.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { z } from "zod/v3";
|
|
2
|
+
export declare const WebEvidenceStatus: z.ZodEnum<["none", "attempted", "satisfied", "failed", "unverified"]>;
|
|
3
|
+
export type WebEvidenceStatus = z.infer<typeof WebEvidenceStatus>;
|
|
4
|
+
/**
|
|
5
|
+
* What web evidence covers (#118). Every engine version has observed the same
|
|
6
|
+
* two things, so the default is also true of records written before it: the
|
|
7
|
+
* harness's typed web tool calls and calls to the engine Browser MCP. Process
|
|
8
|
+
* network traffic is not measured: the vendor API connection always exists, and
|
|
9
|
+
* an allowed shell command or another tool can reach the network without a web
|
|
10
|
+
* tool call. `attempted: false` is therefore never a statement about network use.
|
|
11
|
+
*/
|
|
12
|
+
export declare const WebObservation: z.ZodObject<{
|
|
13
|
+
evidence: z.ZodLiteral<"tool_calls">;
|
|
14
|
+
network: z.ZodLiteral<"not_measured">;
|
|
15
|
+
}, "strip", z.ZodTypeAny, {
|
|
16
|
+
evidence: "tool_calls";
|
|
17
|
+
network: "not_measured";
|
|
18
|
+
}, {
|
|
19
|
+
evidence: "tool_calls";
|
|
20
|
+
network: "not_measured";
|
|
21
|
+
}>;
|
|
22
|
+
export type WebObservation = z.infer<typeof WebObservation>;
|
|
23
|
+
export declare const WebEvidenceRecord: z.ZodObject<{
|
|
24
|
+
required: z.ZodDefault<z.ZodBoolean>;
|
|
25
|
+
policy: z.ZodDefault<z.ZodEnum<["off", "auto", "cached", "live"]>>;
|
|
26
|
+
effective_mode: z.ZodDefault<z.ZodEnum<["off", "auto", "cached", "live"]>>;
|
|
27
|
+
attempted: z.ZodDefault<z.ZodBoolean>;
|
|
28
|
+
satisfied: z.ZodDefault<z.ZodBoolean>;
|
|
29
|
+
status: z.ZodDefault<z.ZodEnum<["none", "attempted", "satisfied", "failed", "unverified"]>>;
|
|
30
|
+
/**
|
|
31
|
+
* QA-042: retrieval STRENGTH of satisfied/attempted web activity, orthogonal
|
|
32
|
+
* to `status`. `verified` = at least one result was a typed successful
|
|
33
|
+
* retrieval, and `verified_content` says whether it was a page or search
|
|
34
|
+
* results; `dispatched` = a web call completed without one (codex
|
|
35
|
+
* `web_search`/`open_page`, a Browser page read that got an HTTP error);
|
|
36
|
+
* `none` = no search or page retrieval was observed. #118: a Browser call
|
|
37
|
+
* that read no web page (closing, clicking, tabs, about:blank) still makes
|
|
38
|
+
* `satisfied` true, as the required-web gate always counted it, but leaves
|
|
39
|
+
* the strength at `none`. A surface renders "Web verified" only for a
|
|
40
|
+
* verified page and "Web searched" for verified search results.
|
|
41
|
+
*/
|
|
42
|
+
verification: z.ZodDefault<z.ZodEnum<["verified", "dispatched", "none"]>>;
|
|
43
|
+
verified_content: z.ZodDefault<z.ZodNullable<z.ZodEnum<["page", "search_results"]>>>;
|
|
44
|
+
tool: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
45
|
+
target: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
46
|
+
error_summary: z.ZodDefault<z.ZodNullable<z.ZodString>>;
|
|
47
|
+
observation: z.ZodDefault<z.ZodObject<{
|
|
48
|
+
evidence: z.ZodLiteral<"tool_calls">;
|
|
49
|
+
network: z.ZodLiteral<"not_measured">;
|
|
50
|
+
}, "strip", z.ZodTypeAny, {
|
|
51
|
+
evidence: "tool_calls";
|
|
52
|
+
network: "not_measured";
|
|
53
|
+
}, {
|
|
54
|
+
evidence: "tool_calls";
|
|
55
|
+
network: "not_measured";
|
|
56
|
+
}>>;
|
|
57
|
+
}, "strip", z.ZodTypeAny, {
|
|
58
|
+
required: boolean;
|
|
59
|
+
policy: "auto" | "cached" | "live" | "off";
|
|
60
|
+
effective_mode: "auto" | "cached" | "live" | "off";
|
|
61
|
+
attempted: boolean;
|
|
62
|
+
satisfied: boolean;
|
|
63
|
+
status: "attempted" | "failed" | "none" | "satisfied" | "unverified";
|
|
64
|
+
verification: "dispatched" | "none" | "verified";
|
|
65
|
+
verified_content: "page" | "search_results" | null;
|
|
66
|
+
tool: string | null;
|
|
67
|
+
target: string | null;
|
|
68
|
+
error_summary: string | null;
|
|
69
|
+
observation: {
|
|
70
|
+
evidence: "tool_calls";
|
|
71
|
+
network: "not_measured";
|
|
72
|
+
};
|
|
73
|
+
}, {
|
|
74
|
+
required?: boolean | undefined;
|
|
75
|
+
policy?: "auto" | "cached" | "live" | "off" | undefined;
|
|
76
|
+
effective_mode?: "auto" | "cached" | "live" | "off" | undefined;
|
|
77
|
+
attempted?: boolean | undefined;
|
|
78
|
+
satisfied?: boolean | undefined;
|
|
79
|
+
status?: "attempted" | "failed" | "none" | "satisfied" | "unverified" | undefined;
|
|
80
|
+
verification?: "dispatched" | "none" | "verified" | undefined;
|
|
81
|
+
verified_content?: "page" | "search_results" | null | undefined;
|
|
82
|
+
tool?: string | null | undefined;
|
|
83
|
+
target?: string | null | undefined;
|
|
84
|
+
error_summary?: string | null | undefined;
|
|
85
|
+
observation?: {
|
|
86
|
+
evidence: "tool_calls";
|
|
87
|
+
network: "not_measured";
|
|
88
|
+
} | undefined;
|
|
89
|
+
}>;
|
|
90
|
+
export type WebEvidenceRecord = z.infer<typeof WebEvidenceRecord>;
|
|
91
|
+
//# sourceMappingURL=web-evidence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-evidence.d.ts","sourceRoot":"","sources":["../src/web-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAG3B,eAAO,MAAM,iBAAiB,uEAE0D,CAAC;AACzF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAElE;;;;;;;GAOG;AACH,eAAO,MAAM,cAAc;;;;;;;;;EAWqE,CAAC;AACjG,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAE5D,eAAO,MAAM,iBAAiB;;;;;;;IAoB1B;;;;;;;;;;;OAWG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiCJ,CAAC;AACJ,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { z } from "zod/v3";
|
|
2
|
+
import { ExternalContextPolicy } from "./primitives.js";
|
|
3
|
+
export const WebEvidenceStatus = z
|
|
4
|
+
.enum(["none", "attempted", "satisfied", "failed", "unverified"])
|
|
5
|
+
.describe("Observed web activity: none, attempted, satisfied, failed, or unverified.");
|
|
6
|
+
/**
|
|
7
|
+
* What web evidence covers (#118). Every engine version has observed the same
|
|
8
|
+
* two things, so the default is also true of records written before it: the
|
|
9
|
+
* harness's typed web tool calls and calls to the engine Browser MCP. Process
|
|
10
|
+
* network traffic is not measured: the vendor API connection always exists, and
|
|
11
|
+
* an allowed shell command or another tool can reach the network without a web
|
|
12
|
+
* tool call. `attempted: false` is therefore never a statement about network use.
|
|
13
|
+
*/
|
|
14
|
+
export const WebObservation = z
|
|
15
|
+
.object({
|
|
16
|
+
evidence: z
|
|
17
|
+
.literal("tool_calls")
|
|
18
|
+
.describe("Web evidence comes from typed web tool calls and engine Browser MCP calls."),
|
|
19
|
+
network: z
|
|
20
|
+
.literal("not_measured")
|
|
21
|
+
.describe("Process network traffic is not measured: vendor API traffic, shell commands and other tools can use the network without appearing here."),
|
|
22
|
+
})
|
|
23
|
+
.describe("Scope of the web evidence: observed tool calls only, never a network measurement.");
|
|
24
|
+
export const WebEvidenceRecord = z
|
|
25
|
+
.object({
|
|
26
|
+
required: z.boolean().default(false).describe("Explicit stored web requirement."),
|
|
27
|
+
policy: ExternalContextPolicy.default("auto").describe("Requested web policy for the run."),
|
|
28
|
+
effective_mode: ExternalContextPolicy.default("auto").describe("Policy given to the harness route, after disclosed upgrades (e.g. cached to live); not proof that a native session ran."),
|
|
29
|
+
attempted: z
|
|
30
|
+
.boolean()
|
|
31
|
+
.default(false)
|
|
32
|
+
.describe("Whether a web tool call or engine Browser call was observed; not a network measurement (see observation)."),
|
|
33
|
+
satisfied: z
|
|
34
|
+
.boolean()
|
|
35
|
+
.default(false)
|
|
36
|
+
.describe("Completed without a typed failure; verification records retrieval-proof strength."),
|
|
37
|
+
status: WebEvidenceStatus.default("none"),
|
|
38
|
+
/**
|
|
39
|
+
* QA-042: retrieval STRENGTH of satisfied/attempted web activity, orthogonal
|
|
40
|
+
* to `status`. `verified` = at least one result was a typed successful
|
|
41
|
+
* retrieval, and `verified_content` says whether it was a page or search
|
|
42
|
+
* results; `dispatched` = a web call completed without one (codex
|
|
43
|
+
* `web_search`/`open_page`, a Browser page read that got an HTTP error);
|
|
44
|
+
* `none` = no search or page retrieval was observed. #118: a Browser call
|
|
45
|
+
* that read no web page (closing, clicking, tabs, about:blank) still makes
|
|
46
|
+
* `satisfied` true, as the required-web gate always counted it, but leaves
|
|
47
|
+
* the strength at `none`. A surface renders "Web verified" only for a
|
|
48
|
+
* verified page and "Web searched" for verified search results.
|
|
49
|
+
*/
|
|
50
|
+
verification: z
|
|
51
|
+
.enum(["verified", "dispatched", "none"])
|
|
52
|
+
.default("none")
|
|
53
|
+
.describe("Retrieval-proof strength of observed web activity: verified (a typed successful retrieval; verified_content says of what), dispatched (a web call completed without a typed retrieval result), or none (no search or page retrieval observed, though a Browser action may have completed)."),
|
|
54
|
+
verified_content: z
|
|
55
|
+
.enum(["page", "search_results"])
|
|
56
|
+
.nullable()
|
|
57
|
+
.default(null)
|
|
58
|
+
.describe("What the verified retrieval returned: page (a fetched or loaded page; it outranks search results) or search_results (a web search's results, not a fetched page); null when nothing was verified or the record predates this field."),
|
|
59
|
+
tool: z
|
|
60
|
+
.string()
|
|
61
|
+
.nullable()
|
|
62
|
+
.default(null)
|
|
63
|
+
.describe("Web tool that produced the evidence, when any."),
|
|
64
|
+
target: z
|
|
65
|
+
.string()
|
|
66
|
+
.nullable()
|
|
67
|
+
.default(null)
|
|
68
|
+
.describe("Target (query/url) of the web activity as issued, when any."),
|
|
69
|
+
error_summary: z
|
|
70
|
+
.string()
|
|
71
|
+
.nullable()
|
|
72
|
+
.default(null)
|
|
73
|
+
.describe("Redacted error detail when web activity failed."),
|
|
74
|
+
observation: WebObservation.default({ evidence: "tool_calls", network: "not_measured" }),
|
|
75
|
+
})
|
|
76
|
+
.describe("Typed web-evidence record computed by the orchestrator; surfaces project it and never re-derive evidence from raw events.");
|
|
77
|
+
//# sourceMappingURL=web-evidence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-evidence.js","sourceRoot":"","sources":["../src/web-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,IAAI,CAAC,CAAC,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;KAChE,QAAQ,CAAC,2EAA2E,CAAC,CAAC;AAGzF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC;KAC5B,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC;SACR,OAAO,CAAC,YAAY,CAAC;SACrB,QAAQ,CAAC,4EAA4E,CAAC;IACzF,OAAO,EAAE,CAAC;SACP,OAAO,CAAC,cAAc,CAAC;SACvB,QAAQ,CACP,yIAAyI,CAC1I;CACJ,CAAC;KACD,QAAQ,CAAC,mFAAmF,CAAC,CAAC;AAGjG,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IACjF,MAAM,EAAE,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,mCAAmC,CAAC;IAC3F,cAAc,EAAE,qBAAqB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,QAAQ,CAC5D,yHAAyH,CAC1H;IACD,SAAS,EAAE,CAAC;SACT,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,2GAA2G,CAC5G;IACH,SAAS,EAAE,CAAC;SACT,OAAO,EAAE;SACT,OAAO,CAAC,KAAK,CAAC;SACd,QAAQ,CACP,mFAAmF,CACpF;IACH,MAAM,EAAE,iBAAiB,CAAC,OAAO,CAAC,MAAM,CAAC;IACzC;;;;;;;;;;;OAWG;IACH,YAAY,EAAE,CAAC;SACZ,IAAI,CAAC,CAAC,UAAU,EAAE,YAAY,EAAE,MAAM,CAAC,CAAC;SACxC,OAAO,CAAC,MAAM,CAAC;SACf,QAAQ,CACP,4RAA4R,CAC7R;IACH,gBAAgB,EAAE,CAAC;SAChB,IAAI,CAAC,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;SAChC,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CACP,qOAAqO,CACtO;IACH,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,gDAAgD,CAAC;IAC7D,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,6DAA6D,CAAC;IAC1E,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,iDAAiD,CAAC;IAC9D,WAAW,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;CACzF,CAAC;KACD,QAAQ,CACP,2HAA2H,CAC5H,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { z } from "zod/v3";
|
|
2
|
+
/**
|
|
3
|
+
* Typed payload of `workspace.prepared`: what an isolated directory copy held
|
|
4
|
+
* when it was created, read from its own selected-input baseline. A selected
|
|
5
|
+
* path that was not found may be a future output; it is reported, not refused.
|
|
6
|
+
*/
|
|
7
|
+
export declare const WorkspacePreparedPayload: z.ZodObject<{
|
|
8
|
+
attempt_id: z.ZodString;
|
|
9
|
+
source_root: z.ZodString;
|
|
10
|
+
scope_paths: z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">;
|
|
11
|
+
copied: z.ZodObject<{
|
|
12
|
+
files: z.ZodNumber;
|
|
13
|
+
directories: z.ZodNumber;
|
|
14
|
+
symlinks: z.ZodNumber;
|
|
15
|
+
}, "strict", z.ZodTypeAny, {
|
|
16
|
+
files: number;
|
|
17
|
+
directories: number;
|
|
18
|
+
symlinks: number;
|
|
19
|
+
}, {
|
|
20
|
+
files: number;
|
|
21
|
+
directories: number;
|
|
22
|
+
symlinks: number;
|
|
23
|
+
}>;
|
|
24
|
+
missing_paths: z.ZodArray<z.ZodEffects<z.ZodString, string, string>, "many">;
|
|
25
|
+
}, "strict", z.ZodTypeAny, {
|
|
26
|
+
attempt_id: string;
|
|
27
|
+
source_root: string;
|
|
28
|
+
scope_paths: string[];
|
|
29
|
+
copied: {
|
|
30
|
+
files: number;
|
|
31
|
+
directories: number;
|
|
32
|
+
symlinks: number;
|
|
33
|
+
};
|
|
34
|
+
missing_paths: string[];
|
|
35
|
+
}, {
|
|
36
|
+
attempt_id: string;
|
|
37
|
+
source_root: string;
|
|
38
|
+
scope_paths: string[];
|
|
39
|
+
copied: {
|
|
40
|
+
files: number;
|
|
41
|
+
directories: number;
|
|
42
|
+
symlinks: number;
|
|
43
|
+
};
|
|
44
|
+
missing_paths: string[];
|
|
45
|
+
}>;
|
|
46
|
+
export type WorkspacePreparedPayload = z.infer<typeof WorkspacePreparedPayload>;
|
|
47
|
+
/** THE text of a prepared copy (timeline, CLI, the executor's prompt) and
|
|
48
|
+
* whether it warrants attention: nothing was copied or a selected path was
|
|
49
|
+
* not found. A copied empty directory or symbolic link is present, not missing. */
|
|
50
|
+
export declare function workspacePreparationSummary(payload: WorkspacePreparedPayload): {
|
|
51
|
+
warning: boolean;
|
|
52
|
+
text: string;
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=workspace-preparation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-preparation.d.ts","sourceRoot":"","sources":["../src/workspace-preparation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAK3B;;;;GAIG;AACH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBwD,CAAC;AAC9F,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAahF;;mFAEmF;AACnF,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,wBAAwB,GAAG;IAC9E,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAqBA"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { z } from "zod/v3";
|
|
2
|
+
import { WorkspaceScopePath } from "./files-manifest.js";
|
|
3
|
+
const Count = z.number().int().nonnegative();
|
|
4
|
+
/**
|
|
5
|
+
* Typed payload of `workspace.prepared`: what an isolated directory copy held
|
|
6
|
+
* when it was created, read from its own selected-input baseline. A selected
|
|
7
|
+
* path that was not found may be a future output; it is reported, not refused.
|
|
8
|
+
*/
|
|
9
|
+
export const WorkspacePreparedPayload = z
|
|
10
|
+
.object({
|
|
11
|
+
attempt_id: z.string().min(1).describe("Attempt that first runs in the prepared copy."),
|
|
12
|
+
source_root: z.string().min(1).describe("Folder the selected paths were resolved against."),
|
|
13
|
+
scope_paths: z
|
|
14
|
+
.array(WorkspaceScopePath)
|
|
15
|
+
.describe("Selected input paths exactly as requested; empty when none were selected."),
|
|
16
|
+
copied: z
|
|
17
|
+
.object({ files: Count, directories: Count, symlinks: Count })
|
|
18
|
+
.strict()
|
|
19
|
+
.describe("Entries copied into the isolated copy; symbolic links are copied as links, not followed."),
|
|
20
|
+
missing_paths: z
|
|
21
|
+
.array(WorkspaceScopePath)
|
|
22
|
+
.describe("Selected paths that did not exist under source_root when the copy was prepared."),
|
|
23
|
+
})
|
|
24
|
+
.strict()
|
|
25
|
+
.describe("Validated payload of a workspace.prepared run event (isolated directory copy).");
|
|
26
|
+
/** Every path, JSON-quoted: the selection is the caller's own and no other
|
|
27
|
+
* record names absent ones, so nothing is clipped; quoting keeps a newline,
|
|
28
|
+
* quote or control character inside one path from breaking the line. */
|
|
29
|
+
function pathList(paths) {
|
|
30
|
+
return paths.map((path) => JSON.stringify(path)).join(", ");
|
|
31
|
+
}
|
|
32
|
+
function plural(count, noun) {
|
|
33
|
+
return count === 0 ? null : `${count} ${noun}${count === 1 ? "" : "s"}`;
|
|
34
|
+
}
|
|
35
|
+
/** THE text of a prepared copy (timeline, CLI, the executor's prompt) and
|
|
36
|
+
* whether it warrants attention: nothing was copied or a selected path was
|
|
37
|
+
* not found. A copied empty directory or symbolic link is present, not missing. */
|
|
38
|
+
export function workspacePreparationSummary(payload) {
|
|
39
|
+
const { copied, missing_paths: missing, scope_paths: scope } = payload;
|
|
40
|
+
const counts = [
|
|
41
|
+
plural(copied.files, "file"),
|
|
42
|
+
copied.directories === 0
|
|
43
|
+
? null
|
|
44
|
+
: `${copied.directories} ${copied.directories === 1 ? "directory" : "directories"}`,
|
|
45
|
+
plural(copied.symlinks, "symbolic link"),
|
|
46
|
+
].filter((part) => part !== null);
|
|
47
|
+
const from = scope.length === 0 ? "(no input paths were selected)" : `from ${pathList(scope)}`;
|
|
48
|
+
return {
|
|
49
|
+
warning: counts.length === 0 || missing.length > 0,
|
|
50
|
+
text: `Isolated copy prepared from ${payload.source_root}: ` +
|
|
51
|
+
`${counts.length === 0 ? "nothing" : counts.join(", ")} copied ${from}.` +
|
|
52
|
+
(missing.length > 0
|
|
53
|
+
? ` Not found there when the copy was prepared: ${pathList(missing)}` +
|
|
54
|
+
" (absent in the copy; may be created as new output)."
|
|
55
|
+
: "") +
|
|
56
|
+
(copied.symlinks > 0 ? " Symbolic links were copied as links, not followed." : ""),
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=workspace-preparation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-preparation.js","sourceRoot":"","sources":["../src/workspace-preparation.ts"],"names":[],"mappings":"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"}
|
package/dist/workspace.js
CHANGED
|
@@ -36,7 +36,7 @@ export const WorkspaceEnvelope = z
|
|
|
36
36
|
policy_profile: z
|
|
37
37
|
.string()
|
|
38
38
|
.default("workspace_write")
|
|
39
|
-
.describe("Access profile the envelope
|
|
39
|
+
.describe("Access profile recorded for the envelope."),
|
|
40
40
|
dirty_policy: DirtyPolicy.default("refuse"),
|
|
41
41
|
created_at: IsoTimestamp.describe("When the envelope was created."),
|
|
42
42
|
})
|
package/dist/workspace.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAExE;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC/B,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACrD,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAC9E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IACvF,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,mDAAmD,CAAC;IAChE,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,CAAC,mEAAmE,CAAC;IAChF,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mDAAmD,CAAC;IAChE,cAAc,EAAE,aAAa,CAAC,QAAQ,EAAE;IACxC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACnD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CAAC,4EAA4E,CAAC;IACzF,mBAAmB,EAAE,CAAC;SACnB,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAC9B,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CACP,wFAAwF,CACzF;IACH,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,OAAO,CAAC,iBAAiB,CAAC;SAC1B,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"workspace.js","sourceRoot":"","sources":["../src/workspace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAExE;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;IAC/B,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,+BAA+B,CAAC;IACrD,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,kCAAkC,CAAC;IAC3D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8CAA8C,CAAC;IAC9E,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,6CAA6C,CAAC;IACvF,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,OAAO,CAAC,IAAI,CAAC;SACb,QAAQ,CAAC,mDAAmD,CAAC;IAChE,aAAa,EAAE,CAAC;SACb,MAAM,EAAE;SACR,QAAQ,CAAC,mEAAmE,CAAC;IAChF,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,mDAAmD,CAAC;IAChE,cAAc,EAAE,aAAa,CAAC,QAAQ,EAAE;IACxC,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE;IACnD,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,QAAQ,CAAC,4EAA4E,CAAC;IACzF,mBAAmB,EAAE,CAAC;SACnB,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAC9B,OAAO,CAAC,EAAE,CAAC;SACX,QAAQ,CACP,wFAAwF,CACzF;IACH,cAAc,EAAE,CAAC;SACd,MAAM,EAAE;SACR,OAAO,CAAC,iBAAiB,CAAC;SAC1B,QAAQ,CAAC,2CAA2C,CAAC;IACxD,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC;IAC3C,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,gCAAgC,CAAC;CACpE,CAAC;KACD,QAAQ,CACP,+KAA+K,CAChL,CAAC"}
|
|
@@ -392,7 +392,7 @@
|
|
|
392
392
|
],
|
|
393
393
|
"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 for a run an operator starts at a surface, not for an execution.delegated run), inherit_native (defer to the harness's own native settings)."
|
|
394
394
|
},
|
|
395
|
-
"description": "Access profiles the adapter can
|
|
395
|
+
"description": "Access profiles the adapter can translate to its harness."
|
|
396
396
|
},
|
|
397
397
|
"readonlyMechanism": {
|
|
398
398
|
"type": "string",
|
|
@@ -402,7 +402,7 @@
|
|
|
402
402
|
"tool_allowlist",
|
|
403
403
|
"none"
|
|
404
404
|
],
|
|
405
|
-
"description": "HOW read-only
|
|
405
|
+
"description": "HOW a harness applies read-only (fs_sandbox | permission_deny | tool_allowlist | none) — none means read-only intent is advisory for this harness."
|
|
406
406
|
},
|
|
407
407
|
"writeMechanism": {
|
|
408
408
|
"type": "string",
|
|
@@ -556,6 +556,23 @@
|
|
|
556
556
|
},
|
|
557
557
|
"description": "Accepted POST /runs request keys (derived from the ControlRunStartRequest schema; the CLI/MCP/ACP surfaces project subsets of these)."
|
|
558
558
|
},
|
|
559
|
+
"runDecisionActions": {
|
|
560
|
+
"type": "array",
|
|
561
|
+
"items": {
|
|
562
|
+
"type": "string",
|
|
563
|
+
"enum": [
|
|
564
|
+
"accept_clean_patch",
|
|
565
|
+
"rerun_with_feedback",
|
|
566
|
+
"accept_risk",
|
|
567
|
+
"override_needs_human",
|
|
568
|
+
"revert_run",
|
|
569
|
+
"discard",
|
|
570
|
+
"taken"
|
|
571
|
+
],
|
|
572
|
+
"description": "Operator decision: apply an accepted result, rerun with feedback, accept risk, override needs-human, revert a recorded Git effect, acknowledge a captured terminal patch result, or discard remaining copied files without applying them."
|
|
573
|
+
},
|
|
574
|
+
"description": "Actions accepted by POST /runs/:id/decision; taken acknowledges a captured terminal patch result."
|
|
575
|
+
},
|
|
559
576
|
"outputSchemaDialects": {
|
|
560
577
|
"type": "array",
|
|
561
578
|
"items": {
|
|
@@ -740,6 +757,7 @@
|
|
|
740
757
|
"availableHarnesses",
|
|
741
758
|
"modes",
|
|
742
759
|
"runControlKeys",
|
|
760
|
+
"runDecisionActions",
|
|
743
761
|
"outputSchemaDialects",
|
|
744
762
|
"mutability",
|
|
745
763
|
"cliCommands",
|