codex-chatgpt-control 0.5.1-alpha.2 → 0.5.1-alpha.4
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/CHANGELOG.md +42 -0
- package/README.md +43 -0
- package/contracts/v1/fixtures/backend-capabilities.json +40 -1
- package/contracts/v1/fixtures/backend-compatibility.json +21 -0
- package/contracts/v1/fixtures/backend-version.json +6 -1
- package/contracts/v1/fixtures/download-blocked-by-browser.json +22 -0
- package/contracts/v1/fixtures/download-receipt-failed.json +22 -0
- package/contracts/v1/fixtures/download-receipt-timeout.json +22 -0
- package/contracts/v1/fixtures/journal-rpc-indeterminate.json +32 -0
- package/contracts/v1/fixtures/journal-rpc-unsupported-platform.json +32 -0
- package/contracts/v1/fixtures/journal-runtime-unavailable.json +32 -0
- package/contracts/v1/fixtures/operation-action-prepared-event.json +42 -0
- package/contracts/v1/fixtures/operation-action.json +13 -0
- package/contracts/v1/fixtures/operation-artifact-receipt.json +14 -0
- package/contracts/v1/fixtures/operation-artifact-transfer-intent-event.json +24 -0
- package/contracts/v1/fixtures/operation-artifact-transfer-receipt-event.json +26 -0
- package/contracts/v1/fixtures/operation-artifact-transfer-state.json +178 -0
- package/contracts/v1/fixtures/operation-blocker.json +10 -0
- package/contracts/v1/fixtures/operation-collect-request.json +17 -0
- package/contracts/v1/fixtures/operation-collect-result.json +42 -0
- package/contracts/v1/fixtures/operation-control-receipt.json +13 -0
- package/contracts/v1/fixtures/operation-control-request.json +18 -0
- package/contracts/v1/fixtures/operation-control-result.json +31 -0
- package/contracts/v1/fixtures/operation-event.json +18 -0
- package/contracts/v1/fixtures/operation-handle.json +10 -0
- package/contracts/v1/fixtures/operation-inspect-request.json +13 -0
- package/contracts/v1/fixtures/operation-inspect-result.json +205 -0
- package/contracts/v1/fixtures/operation-ownership-baseline-event.json +34 -0
- package/contracts/v1/fixtures/operation-receipt.json +32 -0
- package/contracts/v1/fixtures/operation-recovery-decision.json +7 -0
- package/contracts/v1/fixtures/operation-recovery-observation.json +12 -0
- package/contracts/v1/fixtures/operation-request.json +33 -0
- package/contracts/v1/fixtures/operation-state.json +144 -0
- package/contracts/v1/fixtures/operation-submission-witness-event.json +20 -0
- package/contracts/v1/fixtures/operation-submission-witness.json +11 -0
- package/contracts/v1/fixtures/operation-submit-result.json +16 -0
- package/contracts/v1/fixtures/operation-target-established-event.json +21 -0
- package/contracts/v1/manifest.json +185 -1
- package/contracts/v1/parity-suite.json +106 -8
- package/contracts/v1/schemas/backend-compatibility.schema.json +65 -0
- package/contracts/v1/schemas/backend-request.schema.json +8 -2
- package/contracts/v1/schemas/capabilities.schema.json +81 -1
- package/contracts/v1/schemas/manifest.schema.json +57 -0
- package/contracts/v1/schemas/operation-action.schema.json +155 -0
- package/contracts/v1/schemas/operation-artifact-receipt.schema.json +89 -0
- package/contracts/v1/schemas/operation-blocker.schema.json +70 -0
- package/contracts/v1/schemas/operation-collect-request.schema.json +46 -0
- package/contracts/v1/schemas/operation-collect-result.schema.json +74 -0
- package/contracts/v1/schemas/operation-control-receipt.schema.json +108 -0
- package/contracts/v1/schemas/operation-control-request.schema.json +111 -0
- package/contracts/v1/schemas/operation-control-result.schema.json +112 -0
- package/contracts/v1/schemas/operation-event.schema.json +756 -0
- package/contracts/v1/schemas/operation-handle.schema.json +55 -0
- package/contracts/v1/schemas/operation-inspect-request.schema.json +42 -0
- package/contracts/v1/schemas/operation-inspect-result.schema.json +1662 -0
- package/contracts/v1/schemas/operation-receipt.schema.json +153 -0
- package/contracts/v1/schemas/operation-recovery.schema.json +314 -0
- package/contracts/v1/schemas/operation-request.schema.json +158 -0
- package/contracts/v1/schemas/operation-state.schema.json +691 -0
- package/contracts/v1/schemas/operation-submission-witness.schema.json +48 -0
- package/contracts/v1/schemas/operation-submit-result.schema.json +94 -0
- package/contracts/v1/surface-drift-policy.json +50 -0
- package/contracts/v1/vectors/operation-request-digest-v1.json +43 -0
- package/dist/codex-chatgpt-control-backend.mjs +45882 -9361
- package/dist/codex-chatgpt-control-journal.mjs +5547 -0
- package/dist/codex-chatgpt-control-live-smoke.bundle.mjs +51677 -0
- package/dist/codex-chatgpt-control-release-canary.bundle.mjs +52104 -0
- package/dist/codex-chatgpt-control.bundle.mjs +48392 -10260
- package/dist/src/backend/client.d.ts +103 -2
- package/dist/src/backend/client.js +1436 -97
- package/dist/src/backend/compatibility.d.ts +12 -0
- package/dist/src/backend/compatibility.js +208 -0
- package/dist/src/backend/protocol.d.ts +84 -1
- package/dist/src/backend/protocol.js +31 -5
- package/dist/src/backend/runtime-identity.d.ts +10 -0
- package/dist/src/backend/runtime-identity.js +141 -0
- package/dist/src/backend/session.d.ts +10 -2
- package/dist/src/backend/session.js +478 -7
- package/dist/src/backend/stdio-server.d.ts +4 -1
- package/dist/src/backend/stdio-server.js +240 -28
- package/dist/src/browser/active-composer-file-input.d.ts +9 -0
- package/dist/src/browser/active-composer-file-input.js +33 -0
- package/dist/src/browser/attach.d.ts +4 -1
- package/dist/src/browser/attach.js +136 -28
- package/dist/src/browser/chatgpt-url.d.ts +2 -0
- package/dist/src/browser/chatgpt-url.js +9 -0
- package/dist/src/browser/downloads.d.ts +17 -1
- package/dist/src/browser/downloads.js +150 -28
- package/dist/src/browser/page-state.js +6 -0
- package/dist/src/client.d.ts +43 -0
- package/dist/src/client.js +1279 -59
- package/dist/src/commands/artifacts.js +6 -4
- package/dist/src/commands/chat-popover.d.ts +37 -0
- package/dist/src/commands/chat-popover.js +537 -0
- package/dist/src/commands/configuration.d.ts +5 -0
- package/dist/src/commands/configuration.js +134 -21
- package/dist/src/commands/context.js +10 -3
- package/dist/src/commands/doctor.d.ts +1 -1
- package/dist/src/commands/doctor.js +27 -4
- package/dist/src/commands/experience.d.ts +5 -0
- package/dist/src/commands/experience.js +104 -21
- package/dist/src/commands/files.js +14 -33
- package/dist/src/commands/modes.js +85 -21
- package/dist/src/commands/power-discovery.d.ts +130 -0
- package/dist/src/commands/power-discovery.js +669 -0
- package/dist/src/commands/project-sources.js +325 -31
- package/dist/src/commands/sequence.js +59 -32
- package/dist/src/commands/session.js +19 -6
- package/dist/src/commands/work.js +31 -0
- package/dist/src/dom/composer-text.d.ts +6 -0
- package/dist/src/dom/composer-text.js +85 -0
- package/dist/src/errors.d.ts +9 -0
- package/dist/src/errors.js +22 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.js +9 -0
- package/dist/src/operations/artifact-output.d.ts +69 -0
- package/dist/src/operations/artifact-output.js +1748 -0
- package/dist/src/operations/artifact-stream.d.ts +19 -0
- package/dist/src/operations/artifact-stream.js +35 -0
- package/dist/src/operations/artifact-transfer.d.ts +149 -0
- package/dist/src/operations/artifact-transfer.js +1312 -0
- package/dist/src/operations/browser-adapter.d.ts +167 -0
- package/dist/src/operations/browser-adapter.js +2103 -0
- package/dist/src/operations/browser-observation.d.ts +110 -0
- package/dist/src/operations/browser-observation.js +1256 -0
- package/dist/src/operations/browser-target.d.ts +105 -0
- package/dist/src/operations/browser-target.js +531 -0
- package/dist/src/operations/canonical.d.ts +4 -0
- package/dist/src/operations/canonical.js +412 -0
- package/dist/src/operations/chatgpt-runtime.d.ts +72 -0
- package/dist/src/operations/chatgpt-runtime.js +1232 -0
- package/dist/src/operations/client.d.ts +138 -0
- package/dist/src/operations/client.js +1145 -0
- package/dist/src/operations/collector.d.ts +195 -0
- package/dist/src/operations/collector.js +1039 -0
- package/dist/src/operations/configuration-routing.d.ts +4 -0
- package/dist/src/operations/configuration-routing.js +14 -0
- package/dist/src/operations/control.d.ts +372 -0
- package/dist/src/operations/control.js +1498 -0
- package/dist/src/operations/file-identity.d.ts +33 -0
- package/dist/src/operations/file-identity.js +153 -0
- package/dist/src/operations/handle.d.ts +19 -0
- package/dist/src/operations/handle.js +727 -0
- package/dist/src/operations/index.d.ts +25 -0
- package/dist/src/operations/index.js +25 -0
- package/dist/src/operations/journal-authority.d.ts +12 -0
- package/dist/src/operations/journal-authority.js +1 -0
- package/dist/src/operations/journal-rpc-client.d.ts +12 -0
- package/dist/src/operations/journal-rpc-client.js +225 -0
- package/dist/src/operations/journal-rpc-protocol.d.ts +32 -0
- package/dist/src/operations/journal-rpc-protocol.js +214 -0
- package/dist/src/operations/journal-rpc-server.d.ts +15 -0
- package/dist/src/operations/journal-rpc-server.js +272 -0
- package/dist/src/operations/journal.d.ts +143 -0
- package/dist/src/operations/journal.js +1957 -0
- package/dist/src/operations/production-attachments.d.ts +118 -0
- package/dist/src/operations/production-attachments.js +1035 -0
- package/dist/src/operations/production-chatgpt-artifacts.d.ts +74 -0
- package/dist/src/operations/production-chatgpt-artifacts.js +1146 -0
- package/dist/src/operations/production-chatgpt-attachments.d.ts +80 -0
- package/dist/src/operations/production-chatgpt-attachments.js +1639 -0
- package/dist/src/operations/production-configuration.d.ts +42 -0
- package/dist/src/operations/production-configuration.js +1544 -0
- package/dist/src/operations/production-primitives.d.ts +53 -0
- package/dist/src/operations/production-primitives.js +856 -0
- package/dist/src/operations/production-work-steer.d.ts +203 -0
- package/dist/src/operations/production-work-steer.js +1218 -0
- package/dist/src/operations/recovery.d.ts +80 -0
- package/dist/src/operations/recovery.js +174 -0
- package/dist/src/operations/runtime-adapter.d.ts +126 -0
- package/dist/src/operations/runtime-adapter.js +802 -0
- package/dist/src/operations/send-once.d.ts +224 -0
- package/dist/src/operations/send-once.js +1081 -0
- package/dist/src/operations/service.d.ts +286 -0
- package/dist/src/operations/service.js +2831 -0
- package/dist/src/operations/staging.d.ts +136 -0
- package/dist/src/operations/staging.js +630 -0
- package/dist/src/operations/state-machine.d.ts +29 -0
- package/dist/src/operations/state-machine.js +2047 -0
- package/dist/src/operations/submission.d.ts +423 -0
- package/dist/src/operations/submission.js +1676 -0
- package/dist/src/operations/transactional-chat-power.d.ts +17 -0
- package/dist/src/operations/transactional-chat-power.js +212 -0
- package/dist/src/operations/turn-ownership.d.ts +202 -0
- package/dist/src/operations/turn-ownership.js +700 -0
- package/dist/src/operations/types.d.ts +454 -0
- package/dist/src/operations/types.js +20 -0
- package/dist/src/operations/wire-requests.d.ts +21 -0
- package/dist/src/operations/wire-requests.js +396 -0
- package/dist/src/operations/wire-results.d.ts +97 -0
- package/dist/src/operations/wire-results.js +818 -0
- package/dist/src/runner/responses.d.ts +3 -1
- package/dist/src/runner/responses.js +19 -1
- package/dist/src/runner/result.js +227 -55
- package/dist/src/runner/types.d.ts +12 -0
- package/dist/src/runtime/command-routing.d.ts +149 -0
- package/dist/src/runtime/command-routing.js +431 -0
- package/dist/src/runtime/coordinated-browser.d.ts +24 -0
- package/dist/src/runtime/coordinated-browser.js +315 -0
- package/dist/src/runtime/coordinated-page.d.ts +41 -0
- package/dist/src/runtime/coordinated-page.js +651 -0
- package/dist/src/runtime/operation-context.d.ts +142 -0
- package/dist/src/runtime/operation-context.js +410 -0
- package/dist/src/runtime/runtime-session.d.ts +95 -0
- package/dist/src/runtime/runtime-session.js +314 -0
- package/dist/src/runtime/tab-coordinator.d.ts +200 -0
- package/dist/src/runtime/tab-coordinator.js +1200 -0
- package/dist/src/runtime/value-boundaries.d.ts +18 -0
- package/dist/src/runtime/value-boundaries.js +49 -0
- package/dist/src/safety/blockers.js +8 -1
- package/dist/src/safety/untrusted-output.js +2 -1
- package/dist/src/scripts/backend-server.js +4 -1
- package/dist/src/scripts/capture-surface-profile.js +7 -2
- package/dist/src/scripts/journal-server.d.ts +2 -0
- package/dist/src/scripts/journal-server.js +37 -0
- package/dist/src/scripts/live-smoke/harness.js +79 -7
- package/dist/src/scripts/live-smoke/scenarios.d.ts +42 -1
- package/dist/src/scripts/live-smoke/scenarios.js +147 -30
- package/dist/src/scripts/live-smoke/transactional.d.ts +17 -0
- package/dist/src/scripts/live-smoke/transactional.js +254 -0
- package/dist/src/scripts/live-smoke/types.d.ts +3 -0
- package/dist/src/scripts/release-canary-module.js +17 -4
- package/dist/src/types.d.ts +38 -1
- package/package.json +8 -3
- package/references/2026-08-16-transactional-operations.md +459 -0
- package/references/2026-09-06-journal-service.md +140 -0
- package/references/agents-runner.md +34 -0
- package/references/backend-protocol.md +176 -0
- package/references/python-parity.md +137 -0
- package/references/responses-adapter.md +19 -0
- package/references/streaming.md +6 -0
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
export declare const OPERATION_SCHEMA_VERSION: "chatgpt.browser_control.operation.v1";
|
|
2
|
+
export declare const OPERATION_EVENT_SCHEMA_VERSION: "chatgpt.browser_control.operation_event.v1";
|
|
3
|
+
export declare const OPERATION_RECEIPT_SCHEMA_VERSION: "chatgpt.browser_control.operation_receipt.v1";
|
|
4
|
+
export declare const OPERATION_REQUEST_SCHEMA_VERSION: "chatgpt.browser_control.operation_request.v1";
|
|
5
|
+
export declare const OPERATION_HANDLE_SCHEMA_VERSION: "chatgpt.browser_control.operation_handle.v1";
|
|
6
|
+
export declare const OPERATION_COLLECT_REQUEST_SCHEMA_VERSION: "chatgpt.browser_control.operation_collect_request.v1";
|
|
7
|
+
export declare const OPERATION_INSPECT_REQUEST_SCHEMA_VERSION: "chatgpt.browser_control.operation_inspect_request.v1";
|
|
8
|
+
export declare const OPERATION_CONTROL_REQUEST_SCHEMA_VERSION: "chatgpt.browser_control.operation_control_request.v1";
|
|
9
|
+
export declare const OPERATION_CONTROL_RECEIPT_SCHEMA_VERSION: "chatgpt.browser_control.operation_control_receipt.v1";
|
|
10
|
+
export declare const OPERATION_ARTIFACT_RECEIPT_SCHEMA_VERSION: "chatgpt.browser_control.operation_artifact_receipt.v1";
|
|
11
|
+
export declare const OPERATION_BLOCKER_SCHEMA_VERSION: "chatgpt.browser_control.operation_blocker.v1";
|
|
12
|
+
export declare const OPERATION_RECOVERY_OBSERVATION_SCHEMA_VERSION: "chatgpt.browser_control.operation_recovery_observation.v1";
|
|
13
|
+
export declare const OPERATION_RECOVERY_DECISION_SCHEMA_VERSION: "chatgpt.browser_control.operation_recovery_decision.v1";
|
|
14
|
+
/** Redacted exact post-Send ownership proof retained in the authenticated journal. */
|
|
15
|
+
export declare const OPERATION_SUBMISSION_WITNESS_SCHEMA_VERSION: "chatgpt.browser_control.operation_submission_witness.v1";
|
|
16
|
+
/** Redacted complete pre-Send ownership baseline retained before activation. */
|
|
17
|
+
export declare const OPERATION_OWNERSHIP_BASELINE_SCHEMA_VERSION: "chatgpt.browser_control.operation_ownership_baseline.v1";
|
|
18
|
+
/** Durable transfer records reuse the provider-agnostic artifact-transfer protocol exactly. */
|
|
19
|
+
export declare const OPERATION_ARTIFACT_TRANSFER_INTENT_SCHEMA_VERSION: "chatgpt.browser_control.artifact_transfer_intent.v1";
|
|
20
|
+
export declare const OPERATION_ARTIFACT_TRANSFER_RECEIPT_SCHEMA_VERSION: "chatgpt.browser_control.artifact_transfer_receipt.v1";
|
|
21
|
+
import type { ArtifactTransferDurableState, ArtifactTransferIntentV1, ArtifactTransferReceiptV1 } from "./artifact-transfer.js";
|
|
22
|
+
import type { OwnershipBaseline } from "./turn-ownership.js";
|
|
23
|
+
export type OperationSurface = "chat" | "work";
|
|
24
|
+
export type OperationJsonValue = null | boolean | number | string | OperationJsonValue[] | {
|
|
25
|
+
[key: string]: OperationJsonValue;
|
|
26
|
+
};
|
|
27
|
+
export type OperationTargetRequestV1 = {
|
|
28
|
+
type: "new";
|
|
29
|
+
} | {
|
|
30
|
+
type: "selected_tab";
|
|
31
|
+
} | {
|
|
32
|
+
type: "tab_id";
|
|
33
|
+
tabId: string;
|
|
34
|
+
} | {
|
|
35
|
+
type: "conversation_id";
|
|
36
|
+
conversationId: string;
|
|
37
|
+
} | {
|
|
38
|
+
type: "url";
|
|
39
|
+
url: string;
|
|
40
|
+
};
|
|
41
|
+
export type OperationConfigurationRequestV1 = {
|
|
42
|
+
experience?: "chat" | "work";
|
|
43
|
+
model?: string;
|
|
44
|
+
modelVersion?: string;
|
|
45
|
+
reasoning?: string;
|
|
46
|
+
mode?: string;
|
|
47
|
+
tools?: string[];
|
|
48
|
+
additional?: {
|
|
49
|
+
[key: string]: OperationJsonValue;
|
|
50
|
+
};
|
|
51
|
+
};
|
|
52
|
+
export type OperationInputFileV1 = {
|
|
53
|
+
/** Request-only local input. It must never be copied into durable state. */
|
|
54
|
+
path: string;
|
|
55
|
+
displayName?: string;
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* Transactional capture formats are deliberately narrower than the general
|
|
59
|
+
* response formatter. A request may ask for semantic DOM Markdown or the
|
|
60
|
+
* formatter's normalized visible text; the choice is part of request
|
|
61
|
+
* identity and is never inferred from a later collect call.
|
|
62
|
+
*/
|
|
63
|
+
export type OperationResponseFormatV1 = "markdown" | "text";
|
|
64
|
+
export type OperationCapturePolicyV1 = {
|
|
65
|
+
responseContent: "include" | "metadata";
|
|
66
|
+
/** Immutable requested format for the terminal assistant response. */
|
|
67
|
+
responseFormat?: OperationResponseFormatV1;
|
|
68
|
+
artifacts: "receipt_only" | "transfer";
|
|
69
|
+
/** Request-only destination. It must never be copied into durable state. */
|
|
70
|
+
outputDirectory?: string;
|
|
71
|
+
};
|
|
72
|
+
/**
|
|
73
|
+
* The request's capture policy after crossing into durable state.
|
|
74
|
+
*
|
|
75
|
+
* This is intentionally a separate type from `OperationCapturePolicyV1`:
|
|
76
|
+
* `outputDirectory` is request-local authority and must never be copied into
|
|
77
|
+
* an event, snapshot, receipt, or any other authenticated durable record.
|
|
78
|
+
*/
|
|
79
|
+
export type OperationDurableCapturePolicyV1 = {
|
|
80
|
+
responseContent: "include" | "metadata";
|
|
81
|
+
responseFormat: OperationResponseFormatV1;
|
|
82
|
+
artifacts: "receipt_only" | "transfer";
|
|
83
|
+
};
|
|
84
|
+
/** Compatibility alias for consumers that describe the field as state policy. */
|
|
85
|
+
export type OperationCapturePolicyStateV1 = OperationDurableCapturePolicyV1;
|
|
86
|
+
export type OperationSubmitRequestV1 = {
|
|
87
|
+
schemaVersion: typeof OPERATION_REQUEST_SCHEMA_VERSION;
|
|
88
|
+
operationId: string;
|
|
89
|
+
surface: OperationSurface;
|
|
90
|
+
prompt: string;
|
|
91
|
+
target: OperationTargetRequestV1;
|
|
92
|
+
configuration?: OperationConfigurationRequestV1;
|
|
93
|
+
files?: OperationInputFileV1[];
|
|
94
|
+
capture?: OperationCapturePolicyV1;
|
|
95
|
+
timeoutMs?: number;
|
|
96
|
+
};
|
|
97
|
+
export type OperationHandleV1 = {
|
|
98
|
+
schemaVersion: typeof OPERATION_HANDLE_SCHEMA_VERSION;
|
|
99
|
+
operationId: string;
|
|
100
|
+
requestDigest: string;
|
|
101
|
+
surface: OperationSurface;
|
|
102
|
+
revision: number;
|
|
103
|
+
phase: OperationPhase;
|
|
104
|
+
mutationBoundary: MutationBoundary;
|
|
105
|
+
targetBindingDigest?: string;
|
|
106
|
+
};
|
|
107
|
+
export type OperationCollectRequestV1 = {
|
|
108
|
+
schemaVersion: typeof OPERATION_COLLECT_REQUEST_SCHEMA_VERSION;
|
|
109
|
+
handle: OperationHandleV1;
|
|
110
|
+
wait?: boolean;
|
|
111
|
+
timeoutMs?: number;
|
|
112
|
+
/** Bounded delay between ownership observations while waiting. */
|
|
113
|
+
pollIntervalMs?: number;
|
|
114
|
+
responseContent?: "include" | "metadata";
|
|
115
|
+
};
|
|
116
|
+
export type OperationInspectRequestV1 = {
|
|
117
|
+
schemaVersion: typeof OPERATION_INSPECT_REQUEST_SCHEMA_VERSION;
|
|
118
|
+
handle: OperationHandleV1;
|
|
119
|
+
};
|
|
120
|
+
export type OperationControlRequestV1 = {
|
|
121
|
+
schemaVersion: typeof OPERATION_CONTROL_REQUEST_SCHEMA_VERSION;
|
|
122
|
+
controlActionId: string;
|
|
123
|
+
parent: OperationHandleV1;
|
|
124
|
+
action: "stop" | "steer";
|
|
125
|
+
expectedAssistantTurnId: string;
|
|
126
|
+
steerPrompt?: string;
|
|
127
|
+
timeoutMs?: number;
|
|
128
|
+
};
|
|
129
|
+
export type OperationControlReceiptV1 = {
|
|
130
|
+
schemaVersion: typeof OPERATION_CONTROL_RECEIPT_SCHEMA_VERSION;
|
|
131
|
+
controlActionId: string;
|
|
132
|
+
parentOperationId: string;
|
|
133
|
+
parentRequestDigest: string;
|
|
134
|
+
parentTargetBindingDigest: string;
|
|
135
|
+
expectedAssistantTurnId: string;
|
|
136
|
+
requestDigest: string;
|
|
137
|
+
action: "stop" | "steer";
|
|
138
|
+
outcome: OperationActionOutcome;
|
|
139
|
+
evidenceDigest?: string;
|
|
140
|
+
blockerCode?: OperationBlockerCode;
|
|
141
|
+
observedAt: string;
|
|
142
|
+
};
|
|
143
|
+
export type OperationBlockerCode = "operation_not_found" | "operation_request_mismatch" | "operation_state_corrupt" | "operation_receipt_expired" | "operation_quota_exceeded" | "operation_cancelled" | "operation_timeout" | "ambiguous_file_handoff" | "ambiguous_submit" | "attachment_manifest_mismatch" | "input_file_changed" | "target_binding_mismatch" | "target_evidence_unavailable" | "turn_ownership_ambiguous" | "concurrent_user_turn" | "configuration_drift" | "tab_ownership_conflict" | "provider_concurrency_unsupported" | "runtime_incompatible" | "backend_unavailable" | "browser_bridge_unavailable" | "login_required" | "captcha" | "rate_limited" | "permission_required" | "needs_confirmation" | "selector_drift" | "send_control_unavailable" | "capture_ownership_lost" | "artifact_unavailable" | "artifact_transfer_partial" | "output_collision" | "output_commit_indeterminate" | "clipboard_restore_failed";
|
|
144
|
+
export type OperationBlockerV1 = {
|
|
145
|
+
schemaVersion: typeof OPERATION_BLOCKER_SCHEMA_VERSION;
|
|
146
|
+
code: OperationBlockerCode;
|
|
147
|
+
recoverable: boolean;
|
|
148
|
+
operationId: string;
|
|
149
|
+
requestDigest: string;
|
|
150
|
+
phase: OperationPhase;
|
|
151
|
+
mutationBoundary: MutationBoundary;
|
|
152
|
+
message: string;
|
|
153
|
+
};
|
|
154
|
+
export type OperationPhase = "prepared" | "handoff_pending" | "ready" | "send_pending" | "submitted" | "generating" | "capturing" | "completed" | "uncertain";
|
|
155
|
+
export type MutationBoundary = "none" | "handoff_may_have_occurred" | "send_may_have_occurred" | "control_may_have_occurred";
|
|
156
|
+
export type OperationRepeatPolicy = "read_only" | "reconcile_set_to_value" | "reconcile_local_effect" | "observe_only_after_intent";
|
|
157
|
+
export type OperationActionKind = "status_read" | "configuration_set" | "tool_set" | "composer_set" | "power_discovery" | "power_select" | "file_handoff" | "send" | "work_steer" | "stop" | "download" | "local_output_commit" | "clipboard_capture_restore";
|
|
158
|
+
export type OperationEvidenceProfileV1 = {
|
|
159
|
+
providerIdentity: "required" | "unavailable";
|
|
160
|
+
stableTabId: "required" | "unavailable";
|
|
161
|
+
stableConversationId: "required" | "unavailable";
|
|
162
|
+
stableUserTurnId: "required" | "unavailable";
|
|
163
|
+
authoritativeTabClaim: "required" | "unavailable";
|
|
164
|
+
replacementTabRecovery: boolean;
|
|
165
|
+
};
|
|
166
|
+
/**
|
|
167
|
+
* A target can be fixed before mutation, or can represent a genuinely new
|
|
168
|
+
* provider conversation whose identity is allocated by the first Send.
|
|
169
|
+
* `fixed` is the backwards-compatible default for older durable records.
|
|
170
|
+
*/
|
|
171
|
+
export type OperationTargetLifecycle = "fixed" | "new_pending" | "new_established";
|
|
172
|
+
/**
|
|
173
|
+
* Provider identity obtained after the sole durable Send intent. The
|
|
174
|
+
* targetBindingDigest is the pre-Send immutable anchor digest, not a digest
|
|
175
|
+
* of this mutable establishment record.
|
|
176
|
+
*/
|
|
177
|
+
export type OperationTargetEstablishmentV1 = {
|
|
178
|
+
targetBindingDigest: string;
|
|
179
|
+
anchorDigest: string;
|
|
180
|
+
causalSendActionId: string;
|
|
181
|
+
conversationId: string;
|
|
182
|
+
canonicalThreadUrl: string;
|
|
183
|
+
userTurnId: string;
|
|
184
|
+
userTurnEvidenceDigest: string;
|
|
185
|
+
/** Exact before/after user-turn delta that established this new target. */
|
|
186
|
+
postSendDeltaDigest?: string;
|
|
187
|
+
evidenceDigest: string;
|
|
188
|
+
observedAt: string;
|
|
189
|
+
};
|
|
190
|
+
/**
|
|
191
|
+
* The only durable authority used to identify the operation's submitted user
|
|
192
|
+
* turn after a process restart. This record contains no prompt, response,
|
|
193
|
+
* DOM, URL, or local path material.
|
|
194
|
+
*/
|
|
195
|
+
export type OperationSubmissionWitnessV1 = {
|
|
196
|
+
schemaVersion: typeof OPERATION_SUBMISSION_WITNESS_SCHEMA_VERSION;
|
|
197
|
+
actionId: string;
|
|
198
|
+
actionKind: "send" | "work_steer";
|
|
199
|
+
targetBindingDigest: string;
|
|
200
|
+
/** Digest of the complete authenticated pre-Send ownership snapshot. */
|
|
201
|
+
baselineSnapshotDigest: string;
|
|
202
|
+
postSendDeltaDigest: string;
|
|
203
|
+
operationUserEvidenceDigest: string;
|
|
204
|
+
userTurnId?: string;
|
|
205
|
+
observedAt: string;
|
|
206
|
+
};
|
|
207
|
+
/**
|
|
208
|
+
* The authenticated pre-Send ownership anchor. The nested baseline contains
|
|
209
|
+
* only normalized identities/evidence; this wrapper binds it to the
|
|
210
|
+
* immutable operation/request/target/action identity.
|
|
211
|
+
*/
|
|
212
|
+
export type OperationOwnershipBaselineV1 = {
|
|
213
|
+
schemaVersion: typeof OPERATION_OWNERSHIP_BASELINE_SCHEMA_VERSION;
|
|
214
|
+
operationId: string;
|
|
215
|
+
requestDigest: string;
|
|
216
|
+
targetBindingDigest: string;
|
|
217
|
+
actionId: string;
|
|
218
|
+
baseline: OwnershipBaseline;
|
|
219
|
+
observedAt: string;
|
|
220
|
+
};
|
|
221
|
+
/** Exact aliases prevent the journal from growing a second transfer protocol. */
|
|
222
|
+
export type OperationArtifactTransferIntentV1 = ArtifactTransferIntentV1;
|
|
223
|
+
export type OperationArtifactTransferReceiptV1 = ArtifactTransferReceiptV1;
|
|
224
|
+
/** A materialized operation map entry always has its causal intent. */
|
|
225
|
+
export type OperationArtifactTransferStateV1 = ArtifactTransferDurableState & {
|
|
226
|
+
readonly intent: ArtifactTransferIntentV1;
|
|
227
|
+
};
|
|
228
|
+
export type OperationTargetBindingV1 = {
|
|
229
|
+
providerId: string;
|
|
230
|
+
browserId: string;
|
|
231
|
+
tabId: string;
|
|
232
|
+
coordinationScope: "process" | "provider";
|
|
233
|
+
tabClaimEvidenceDigest?: string;
|
|
234
|
+
canonicalThreadUrl?: string;
|
|
235
|
+
conversationId?: string;
|
|
236
|
+
userTurnBaselineDigest?: string;
|
|
237
|
+
assistantTurnBaselineDigest?: string;
|
|
238
|
+
configurationReceiptDigest?: string;
|
|
239
|
+
evidenceProfile: OperationEvidenceProfileV1;
|
|
240
|
+
/** Omitted means fixed for compatibility with pre-establishment records. */
|
|
241
|
+
targetLifecycle?: OperationTargetLifecycle;
|
|
242
|
+
/** Keyed digest of the immutable new-task anchor; stable across establishment. */
|
|
243
|
+
newTargetAnchorDigest?: string;
|
|
244
|
+
/** Keyed evidence for the verified blank/new-task surface before Send. */
|
|
245
|
+
blankTaskEvidenceDigest?: string;
|
|
246
|
+
/** Present only after one durable target_established event. */
|
|
247
|
+
targetEstablishment?: OperationTargetEstablishmentV1;
|
|
248
|
+
};
|
|
249
|
+
export type OperationActionIntentV1 = {
|
|
250
|
+
actionId: string;
|
|
251
|
+
kind: OperationActionKind;
|
|
252
|
+
repeatPolicy: OperationRepeatPolicy;
|
|
253
|
+
requestDigest: string;
|
|
254
|
+
parentActionId?: string;
|
|
255
|
+
targetDigest?: string;
|
|
256
|
+
};
|
|
257
|
+
export type OperationActionOutcome = "satisfied" | "not_satisfied" | "uncertain";
|
|
258
|
+
export type OperationActionRecordV1 = OperationActionIntentV1 & {
|
|
259
|
+
intentRevision: number;
|
|
260
|
+
intentAt: string;
|
|
261
|
+
outcome?: OperationActionOutcome;
|
|
262
|
+
receiptRevision?: number;
|
|
263
|
+
receiptAt?: string;
|
|
264
|
+
evidenceDigest?: string;
|
|
265
|
+
blockerCode?: string;
|
|
266
|
+
};
|
|
267
|
+
export type OperationArtifactReceiptV1 = {
|
|
268
|
+
schemaVersion: typeof OPERATION_ARTIFACT_RECEIPT_SCHEMA_VERSION;
|
|
269
|
+
operationId: string;
|
|
270
|
+
artifactKey: string;
|
|
271
|
+
assistantTurnId: string;
|
|
272
|
+
sourceIdentityDigest: string;
|
|
273
|
+
kind: "file" | "image" | "other";
|
|
274
|
+
ordinal: number;
|
|
275
|
+
outputKey?: string;
|
|
276
|
+
mimeType?: string;
|
|
277
|
+
bytes?: number;
|
|
278
|
+
sha256?: string;
|
|
279
|
+
status: "available" | "transferred" | "partial" | "blocked";
|
|
280
|
+
blockerCode?: string;
|
|
281
|
+
};
|
|
282
|
+
export type OperationReceiptV1 = {
|
|
283
|
+
schemaVersion: typeof OPERATION_RECEIPT_SCHEMA_VERSION;
|
|
284
|
+
operationId: string;
|
|
285
|
+
requestDigest: string;
|
|
286
|
+
targetBindingDigest: string;
|
|
287
|
+
userTurnId: string;
|
|
288
|
+
/** Evidence for the exact submitted user turn, distinct from assistant ownership. */
|
|
289
|
+
userTurnEvidenceDigest: string;
|
|
290
|
+
assistantTurnId: string;
|
|
291
|
+
/** Evidence for the exact terminal assistant turn / complete ownership snapshot. */
|
|
292
|
+
ownershipEvidenceDigest: string;
|
|
293
|
+
responseDigest?: string;
|
|
294
|
+
responseBytes?: number;
|
|
295
|
+
/** Format used to produce the exact owned-turn response metadata/content. */
|
|
296
|
+
responseFormat?: OperationResponseFormatV1;
|
|
297
|
+
finishReason: string;
|
|
298
|
+
contentAvailable: boolean;
|
|
299
|
+
artifacts: OperationArtifactReceiptV1[];
|
|
300
|
+
completedAt: string;
|
|
301
|
+
};
|
|
302
|
+
export type OperationBlockerObservationV1 = {
|
|
303
|
+
code: string;
|
|
304
|
+
messageDigest: string;
|
|
305
|
+
recoverable: boolean;
|
|
306
|
+
observedAt: string;
|
|
307
|
+
};
|
|
308
|
+
export type OperationStateV1 = {
|
|
309
|
+
schemaVersion: typeof OPERATION_SCHEMA_VERSION;
|
|
310
|
+
operationId: string;
|
|
311
|
+
requestDigest: string;
|
|
312
|
+
surface: OperationSurface;
|
|
313
|
+
phase: OperationPhase;
|
|
314
|
+
mutationBoundary: MutationBoundary;
|
|
315
|
+
revision: number;
|
|
316
|
+
createdAt: string;
|
|
317
|
+
updatedAt: string;
|
|
318
|
+
/** Immutable, path-free capture policy copied from the canonical submit request. */
|
|
319
|
+
capturePolicy?: OperationDurableCapturePolicyV1;
|
|
320
|
+
/** Legacy projection retained for reads of pre-policy state. */
|
|
321
|
+
responseFormat?: OperationResponseFormatV1;
|
|
322
|
+
target?: OperationTargetBindingV1;
|
|
323
|
+
actions: Record<string, OperationActionRecordV1>;
|
|
324
|
+
/** Present only after the complete pre-Send baseline was durably appended. */
|
|
325
|
+
ownershipBaseline?: OperationOwnershipBaselineV1;
|
|
326
|
+
/**
|
|
327
|
+
* Complete pre-action ownership anchors keyed by their causal action. The
|
|
328
|
+
* original Send anchor is also projected through ownershipBaseline for
|
|
329
|
+
* compatibility with older readers; steer anchors remain per-action.
|
|
330
|
+
*/
|
|
331
|
+
ownershipBaselines?: Record<string, OperationOwnershipBaselineV1>;
|
|
332
|
+
/** Crash-replayable transfer records keyed by transferActionId. */
|
|
333
|
+
artifactTransfers?: Record<string, OperationArtifactTransferStateV1>;
|
|
334
|
+
/**
|
|
335
|
+
* Exact post-action ownership proofs keyed by their causal action. The
|
|
336
|
+
* original Send entry is projected through submissionWitness for older
|
|
337
|
+
* readers; Work steer entries remain independently addressable so a later
|
|
338
|
+
* steer can own its own user-turn/output delta.
|
|
339
|
+
*/
|
|
340
|
+
submissionWitnesses?: Record<string, OperationSubmissionWitnessV1>;
|
|
341
|
+
/** Present after an exact post-Send proof has been durably recorded. */
|
|
342
|
+
submissionWitness?: OperationSubmissionWitnessV1;
|
|
343
|
+
lastBlocker?: OperationBlockerObservationV1;
|
|
344
|
+
receipt?: OperationReceiptV1;
|
|
345
|
+
};
|
|
346
|
+
export type OperationCreatedEventV1 = {
|
|
347
|
+
type: "operation_created";
|
|
348
|
+
operationId: string;
|
|
349
|
+
requestDigest: string;
|
|
350
|
+
surface: OperationSurface;
|
|
351
|
+
createdAt: string;
|
|
352
|
+
/** New creation events always persist this path-free policy. */
|
|
353
|
+
capturePolicy?: OperationDurableCapturePolicyV1;
|
|
354
|
+
};
|
|
355
|
+
export type OperationTargetBoundEventV1 = {
|
|
356
|
+
type: "target_bound";
|
|
357
|
+
target: OperationTargetBindingV1;
|
|
358
|
+
observedAt: string;
|
|
359
|
+
};
|
|
360
|
+
export type OperationTargetEstablishedEventV1 = {
|
|
361
|
+
type: "target_established";
|
|
362
|
+
establishment: OperationTargetEstablishmentV1;
|
|
363
|
+
};
|
|
364
|
+
export type OperationOwnershipBaselineEventV1 = {
|
|
365
|
+
type: "ownership_baseline";
|
|
366
|
+
baseline: OperationOwnershipBaselineV1;
|
|
367
|
+
};
|
|
368
|
+
export type OperationSubmissionWitnessEventV1 = {
|
|
369
|
+
type: "submission_witness";
|
|
370
|
+
witness: OperationSubmissionWitnessV1;
|
|
371
|
+
};
|
|
372
|
+
export type OperationActionIntentEventV1 = {
|
|
373
|
+
type: "action_intent";
|
|
374
|
+
action: OperationActionIntentV1;
|
|
375
|
+
intentAt: string;
|
|
376
|
+
};
|
|
377
|
+
/**
|
|
378
|
+
* Atomic non-repeatable action preparation. Unlike the legacy pair of
|
|
379
|
+
* action_intent + ownership_baseline events, this event cannot leave a
|
|
380
|
+
* durable action intent without its complete ownership anchor.
|
|
381
|
+
*/
|
|
382
|
+
export type OperationActionPreparedEventV1 = {
|
|
383
|
+
type: "action_prepared";
|
|
384
|
+
action: OperationActionIntentV1;
|
|
385
|
+
intentAt: string;
|
|
386
|
+
baseline: OperationOwnershipBaselineV1;
|
|
387
|
+
};
|
|
388
|
+
export type OperationArtifactTransferIntentEventV1 = {
|
|
389
|
+
type: "artifact_transfer_intent";
|
|
390
|
+
intent: OperationArtifactTransferIntentV1;
|
|
391
|
+
};
|
|
392
|
+
export type OperationArtifactTransferReceiptEventV1 = {
|
|
393
|
+
type: "artifact_transfer_receipt";
|
|
394
|
+
receipt: OperationArtifactTransferReceiptV1;
|
|
395
|
+
};
|
|
396
|
+
export type OperationActionReceiptEventV1 = {
|
|
397
|
+
type: "action_receipt";
|
|
398
|
+
actionId: string;
|
|
399
|
+
outcome: OperationActionOutcome;
|
|
400
|
+
evidenceDigest?: string;
|
|
401
|
+
blockerCode?: string;
|
|
402
|
+
observedAt: string;
|
|
403
|
+
};
|
|
404
|
+
export type OperationPhaseChangedEventV1 = {
|
|
405
|
+
type: "phase_changed";
|
|
406
|
+
from: OperationPhase;
|
|
407
|
+
to: OperationPhase;
|
|
408
|
+
mutationBoundary: MutationBoundary;
|
|
409
|
+
causeActionId?: string;
|
|
410
|
+
evidenceDigest?: string;
|
|
411
|
+
observedAt: string;
|
|
412
|
+
};
|
|
413
|
+
export type OperationBlockerObservedEventV1 = {
|
|
414
|
+
type: "blocker_observed";
|
|
415
|
+
blocker: OperationBlockerObservationV1;
|
|
416
|
+
};
|
|
417
|
+
export type OperationReceiptCompletedEventV1 = {
|
|
418
|
+
type: "receipt_completed";
|
|
419
|
+
receipt: OperationReceiptV1;
|
|
420
|
+
observedAt: string;
|
|
421
|
+
};
|
|
422
|
+
export type OperationContentAvailabilityEventV1 = {
|
|
423
|
+
type: "content_availability_changed";
|
|
424
|
+
available: boolean;
|
|
425
|
+
observedAt: string;
|
|
426
|
+
};
|
|
427
|
+
export type OperationEventV1 = OperationCreatedEventV1 | OperationTargetBoundEventV1 | OperationTargetEstablishedEventV1 | OperationOwnershipBaselineEventV1 | OperationSubmissionWitnessEventV1 | OperationActionIntentEventV1 | OperationActionPreparedEventV1 | OperationArtifactTransferIntentEventV1 | OperationArtifactTransferReceiptEventV1 | OperationActionReceiptEventV1 | OperationPhaseChangedEventV1 | OperationBlockerObservedEventV1 | OperationReceiptCompletedEventV1 | OperationContentAvailabilityEventV1;
|
|
428
|
+
export type OperationEventEnvelopeV1 = {
|
|
429
|
+
schemaVersion: typeof OPERATION_EVENT_SCHEMA_VERSION;
|
|
430
|
+
revision: number;
|
|
431
|
+
previousEventDigest: string;
|
|
432
|
+
eventDigest: string;
|
|
433
|
+
event: OperationEventV1;
|
|
434
|
+
};
|
|
435
|
+
export type OperationJournalSnapshotV1 = {
|
|
436
|
+
schemaVersion: typeof OPERATION_SCHEMA_VERSION;
|
|
437
|
+
lastEventDigest: string;
|
|
438
|
+
state: OperationStateV1;
|
|
439
|
+
};
|
|
440
|
+
export type OperationRequestIdentityInput = {
|
|
441
|
+
operationId: string;
|
|
442
|
+
surface: OperationSurface;
|
|
443
|
+
target: unknown;
|
|
444
|
+
prompt: string;
|
|
445
|
+
configuration?: unknown;
|
|
446
|
+
tools?: unknown;
|
|
447
|
+
files?: Array<{
|
|
448
|
+
displayName: string;
|
|
449
|
+
bytes: number;
|
|
450
|
+
contentSha256: string;
|
|
451
|
+
}>;
|
|
452
|
+
capturePolicy?: unknown;
|
|
453
|
+
behavior?: unknown;
|
|
454
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export const OPERATION_SCHEMA_VERSION = "chatgpt.browser_control.operation.v1";
|
|
2
|
+
export const OPERATION_EVENT_SCHEMA_VERSION = "chatgpt.browser_control.operation_event.v1";
|
|
3
|
+
export const OPERATION_RECEIPT_SCHEMA_VERSION = "chatgpt.browser_control.operation_receipt.v1";
|
|
4
|
+
export const OPERATION_REQUEST_SCHEMA_VERSION = "chatgpt.browser_control.operation_request.v1";
|
|
5
|
+
export const OPERATION_HANDLE_SCHEMA_VERSION = "chatgpt.browser_control.operation_handle.v1";
|
|
6
|
+
export const OPERATION_COLLECT_REQUEST_SCHEMA_VERSION = "chatgpt.browser_control.operation_collect_request.v1";
|
|
7
|
+
export const OPERATION_INSPECT_REQUEST_SCHEMA_VERSION = "chatgpt.browser_control.operation_inspect_request.v1";
|
|
8
|
+
export const OPERATION_CONTROL_REQUEST_SCHEMA_VERSION = "chatgpt.browser_control.operation_control_request.v1";
|
|
9
|
+
export const OPERATION_CONTROL_RECEIPT_SCHEMA_VERSION = "chatgpt.browser_control.operation_control_receipt.v1";
|
|
10
|
+
export const OPERATION_ARTIFACT_RECEIPT_SCHEMA_VERSION = "chatgpt.browser_control.operation_artifact_receipt.v1";
|
|
11
|
+
export const OPERATION_BLOCKER_SCHEMA_VERSION = "chatgpt.browser_control.operation_blocker.v1";
|
|
12
|
+
export const OPERATION_RECOVERY_OBSERVATION_SCHEMA_VERSION = "chatgpt.browser_control.operation_recovery_observation.v1";
|
|
13
|
+
export const OPERATION_RECOVERY_DECISION_SCHEMA_VERSION = "chatgpt.browser_control.operation_recovery_decision.v1";
|
|
14
|
+
/** Redacted exact post-Send ownership proof retained in the authenticated journal. */
|
|
15
|
+
export const OPERATION_SUBMISSION_WITNESS_SCHEMA_VERSION = "chatgpt.browser_control.operation_submission_witness.v1";
|
|
16
|
+
/** Redacted complete pre-Send ownership baseline retained before activation. */
|
|
17
|
+
export const OPERATION_OWNERSHIP_BASELINE_SCHEMA_VERSION = "chatgpt.browser_control.operation_ownership_baseline.v1";
|
|
18
|
+
/** Durable transfer records reuse the provider-agnostic artifact-transfer protocol exactly. */
|
|
19
|
+
export const OPERATION_ARTIFACT_TRANSFER_INTENT_SCHEMA_VERSION = "chatgpt.browser_control.artifact_transfer_intent.v1";
|
|
20
|
+
export const OPERATION_ARTIFACT_TRANSFER_RECEIPT_SCHEMA_VERSION = "chatgpt.browser_control.artifact_transfer_receipt.v1";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type OperationCollectRequestV1, type OperationControlRequestV1, type OperationInspectRequestV1, type OperationSubmitRequestV1 } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Raised by the closed runtime validators in this module.
|
|
4
|
+
*
|
|
5
|
+
* The message intentionally contains no field name or value. Operation
|
|
6
|
+
* requests can contain prompts and local paths, and validation failures must
|
|
7
|
+
* be safe to send across a backend boundary.
|
|
8
|
+
*/
|
|
9
|
+
export declare class OperationWireRequestError extends Error {
|
|
10
|
+
readonly code: "invalid_operation_request";
|
|
11
|
+
readonly recoverable: false;
|
|
12
|
+
constructor();
|
|
13
|
+
}
|
|
14
|
+
/** Validate the canonical direct v1 submit payload. */
|
|
15
|
+
export declare function validateOperationSubmitRequest(value: unknown): asserts value is OperationSubmitRequestV1;
|
|
16
|
+
/** Validate the canonical direct v1 collect payload. */
|
|
17
|
+
export declare function validateOperationCollectRequest(value: unknown): asserts value is OperationCollectRequestV1;
|
|
18
|
+
/** Validate the canonical direct v1 inspect payload. */
|
|
19
|
+
export declare function validateOperationInspectRequest(value: unknown): asserts value is OperationInspectRequestV1;
|
|
20
|
+
/** Validate the canonical direct v1 control payload. */
|
|
21
|
+
export declare function validateOperationControlRequest(value: unknown): asserts value is OperationControlRequestV1;
|