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,167 @@
|
|
|
1
|
+
import { type CoordinatorOwner, type ProcessTabCoordinator } from "../runtime/tab-coordinator.js";
|
|
2
|
+
import { OperationRuntimeContext, type OperationRuntimeCapabilities } from "../runtime/operation-context.js";
|
|
3
|
+
import type { PageLike } from "../types.js";
|
|
4
|
+
import { type BrowserTargetCapabilities, type BrowserTargetClaim, type BrowserTargetEvidenceDigest } from "./browser-target.js";
|
|
5
|
+
import { type OperationStagingCallbackRequest, type OperationStagingMutationResult, type OperationStagingObservation } from "./staging.js";
|
|
6
|
+
import { type SendOnceObservers } from "./send-once.js";
|
|
7
|
+
import { type OperationFileIdentity } from "./file-identity.js";
|
|
8
|
+
import type { CollectorObservation, CollectorObservationRequest } from "./collector.js";
|
|
9
|
+
import type { ControlSteerExecutePreparedRequest, ControlSteerPhaseResult, ControlSteerPrepareRequest, ControlSteerRecoverRequest, ControlSteerVerifyRequest, ControlExecutionRequest, ControlExecutionResult, ControlPostconditionObservation, ControlPostconditionRequest, ControlTurnObservation, ControlTurnObservationRequest } from "./control.js";
|
|
10
|
+
import type { OperationCollectorContext, OperationCollectorContextRequest, OperationBrowserAdapter, AuthenticatedSendRecoveryRequest } from "./service.js";
|
|
11
|
+
import { type ArtifactTransferSourceRequest } from "./artifact-transfer.js";
|
|
12
|
+
import type { DownloadLike } from "../browser/downloads.js";
|
|
13
|
+
import type { OperationTargetBindingV1, OperationTargetRequestV1, OperationSurface } from "./types.js";
|
|
14
|
+
import { type OwnershipTargetEvidence } from "./turn-ownership.js";
|
|
15
|
+
import type { SubmissionAttachmentObservation, SubmissionAttachmentRequest, SubmissionFinalTransactionResult, SubmissionHandoffRequest, SubmissionHandoffResult, SubmissionStageObservation, SubmissionStageRequest } from "./submission.js";
|
|
16
|
+
/**
|
|
17
|
+
* Browser-bound adapter errors intentionally contain only a stable code. The
|
|
18
|
+
* visible browser layer may produce provider/bridge errors containing URLs,
|
|
19
|
+
* paths, prompt text, or claim tokens; none of those values are allowed to
|
|
20
|
+
* cross this boundary.
|
|
21
|
+
*/
|
|
22
|
+
export type OperationBrowserAdapterErrorCode = "adapter_incomplete" | "target_evidence_unavailable" | "target_binding_mismatch" | "page_affinity_mismatch" | "browser_bridge_unavailable" | "unsupported_browser_primitive" | "input_file_changed";
|
|
23
|
+
export declare class OperationBrowserAdapterError extends Error {
|
|
24
|
+
readonly code: OperationBrowserAdapterErrorCode;
|
|
25
|
+
constructor(code: OperationBrowserAdapterErrorCode);
|
|
26
|
+
}
|
|
27
|
+
/** A target probe is read-only and returns no caller-controlled diagnostics. */
|
|
28
|
+
export type OperationBrowserTargetProbe = Readonly<{
|
|
29
|
+
page?: Readonly<PageLike>;
|
|
30
|
+
evidence: OwnershipTargetEvidence;
|
|
31
|
+
authoritativeClaim?: BrowserTargetClaim;
|
|
32
|
+
capabilities?: Partial<BrowserTargetCapabilities>;
|
|
33
|
+
/** New targets must carry provider-proofed blank-task anchor evidence. */
|
|
34
|
+
targetLifecycle?: "fixed" | "new_pending" | "new_established";
|
|
35
|
+
newTargetAnchorDigest?: string;
|
|
36
|
+
blankTaskEvidenceDigest?: string;
|
|
37
|
+
}>;
|
|
38
|
+
export type OperationBrowserTargetProbeRequest = Readonly<{
|
|
39
|
+
page: Readonly<PageLike>;
|
|
40
|
+
operationId: string;
|
|
41
|
+
requestDigest: string;
|
|
42
|
+
surface: OperationSurface;
|
|
43
|
+
target: OperationTargetRequestV1;
|
|
44
|
+
signal: AbortSignal;
|
|
45
|
+
}>;
|
|
46
|
+
export type OperationBrowserCurrentTargetRequest = Readonly<{
|
|
47
|
+
page: Readonly<PageLike>;
|
|
48
|
+
operationId: string;
|
|
49
|
+
target: OperationTargetBindingV1;
|
|
50
|
+
signal: AbortSignal;
|
|
51
|
+
deadlineAt?: number;
|
|
52
|
+
}>;
|
|
53
|
+
export type OperationBrowserCurrentTargetResult = Readonly<{
|
|
54
|
+
evidence: OwnershipTargetEvidence;
|
|
55
|
+
authoritativeClaim?: BrowserTargetClaim;
|
|
56
|
+
}>;
|
|
57
|
+
/**
|
|
58
|
+
* Authenticated, read-only context used when a process-restarted handle is
|
|
59
|
+
* reconstructed. The durable target is the complete journal-owned binding;
|
|
60
|
+
* it is never rebuilt from the currently selected tab or from a guessed
|
|
61
|
+
* replacement.
|
|
62
|
+
*/
|
|
63
|
+
export type OperationBrowserRecoveryContext = Readonly<{
|
|
64
|
+
operationId: string;
|
|
65
|
+
requestDigest: string;
|
|
66
|
+
surface: OperationSurface;
|
|
67
|
+
target: OperationTargetBindingV1;
|
|
68
|
+
signal: AbortSignal;
|
|
69
|
+
}>;
|
|
70
|
+
/** The page and target are supplied by the adapter, not recovered from RuntimeEnv. */
|
|
71
|
+
export type OperationBrowserStagingPrimitive = Readonly<{
|
|
72
|
+
readCurrent?: (request: OperationStagingCallbackRequest & {
|
|
73
|
+
page: Readonly<PageLike>;
|
|
74
|
+
target: OperationTargetBindingV1;
|
|
75
|
+
}) => Promise<OperationStagingObservation>;
|
|
76
|
+
mutateOnce?: (request: OperationStagingCallbackRequest & {
|
|
77
|
+
page: Readonly<PageLike>;
|
|
78
|
+
target: OperationTargetBindingV1;
|
|
79
|
+
}) => Promise<OperationStagingMutationResult>;
|
|
80
|
+
observe?: (request: OperationStagingCallbackRequest & {
|
|
81
|
+
page: Readonly<PageLike>;
|
|
82
|
+
target: OperationTargetBindingV1;
|
|
83
|
+
}) => Promise<OperationStagingObservation>;
|
|
84
|
+
}>;
|
|
85
|
+
export type OperationBrowserSubmissionPrimitive = Readonly<{
|
|
86
|
+
observeStaging?: (request: SubmissionStageRequest, page: Readonly<PageLike>, target: OperationTargetBindingV1) => Promise<SubmissionStageObservation>;
|
|
87
|
+
handoffFiles?: (request: SubmissionHandoffRequest, files: readonly OperationFileIdentity[], page: Readonly<PageLike>, target: OperationTargetBindingV1) => Promise<SubmissionHandoffResult>;
|
|
88
|
+
observeAttachments?: (request: SubmissionAttachmentRequest, page: Readonly<PageLike>, target: OperationTargetBindingV1) => Promise<SubmissionAttachmentObservation>;
|
|
89
|
+
/** One-shot redacted probes; SendOnce owns bounded polling outside the actor. */
|
|
90
|
+
sendObservers?: SendOnceObservers;
|
|
91
|
+
}>;
|
|
92
|
+
export type OperationBrowserCollectorPrimitive = Readonly<{
|
|
93
|
+
readContext?: (request: OperationCollectorContextRequest, page: Readonly<PageLike>, target: OperationTargetBindingV1) => Promise<OperationCollectorContext>;
|
|
94
|
+
observe?: (request: CollectorObservationRequest, page: Readonly<PageLike>, target: OperationTargetBindingV1, context: OperationCollectorContext) => Promise<CollectorObservation>;
|
|
95
|
+
sleep?: (milliseconds: number, signal: AbortSignal) => Promise<void>;
|
|
96
|
+
}>;
|
|
97
|
+
export type OperationBrowserControlPrimitive = Readonly<{
|
|
98
|
+
observeTurn?: (request: ControlTurnObservationRequest, page: Readonly<PageLike>, target: OperationTargetBindingV1) => Promise<ControlTurnObservation>;
|
|
99
|
+
executeOnce?: (request: ControlExecutionRequest, page: Readonly<PageLike>, target: OperationTargetBindingV1) => Promise<ControlExecutionResult>;
|
|
100
|
+
observePostcondition?: (request: ControlPostconditionRequest, page: Readonly<PageLike>, target: OperationTargetBindingV1) => Promise<ControlPostconditionObservation>;
|
|
101
|
+
/** Read-only Work-steer preparation; prompt text never crosses this boundary. */
|
|
102
|
+
prepareSteer?: (request: ControlSteerPrepareRequest, page: Readonly<PageLike>, target: OperationTargetBindingV1) => Promise<ControlSteerPhaseResult>;
|
|
103
|
+
/** Sole short Work-steer control transaction; provider must await mutation settlement. */
|
|
104
|
+
executeSteerPrepared?: (request: ControlSteerExecutePreparedRequest, page: Readonly<PageLike>, target: OperationTargetBindingV1) => Promise<ControlSteerPhaseResult>;
|
|
105
|
+
/** Read-only Work-steer postcondition observation. */
|
|
106
|
+
verifySteer?: (request: ControlSteerVerifyRequest, page: Readonly<PageLike>, target: OperationTargetBindingV1) => Promise<ControlSteerPhaseResult>;
|
|
107
|
+
/** Read-only Work-steer restart/quarantine recovery. */
|
|
108
|
+
recoverSteer?: (request: ControlSteerRecoverRequest, page: Readonly<PageLike>, target: OperationTargetBindingV1) => Promise<ControlSteerPhaseResult>;
|
|
109
|
+
}>;
|
|
110
|
+
/** Provider-facing artifact phases. Browser acquisition is short-lived; the
|
|
111
|
+
* adapter releases the tab actor before materializing the local byte stream. */
|
|
112
|
+
export type OperationBrowserArtifactPrimitive = Readonly<{
|
|
113
|
+
acquireDownload: (request: ArtifactTransferSourceRequest & Readonly<{
|
|
114
|
+
signal: AbortSignal;
|
|
115
|
+
deadlineAt: number;
|
|
116
|
+
}>, page: Readonly<PageLike>, target: OperationTargetBindingV1) => Promise<DownloadLike>;
|
|
117
|
+
materializeDownload: (download: DownloadLike) => Promise<AsyncIterable<Uint8Array>>;
|
|
118
|
+
}>;
|
|
119
|
+
export type OperationBrowserAdapterOptions = Readonly<{
|
|
120
|
+
/** One immutable page captured by the caller before constructing the adapter. */
|
|
121
|
+
page: Readonly<PageLike>;
|
|
122
|
+
/** A context is optional, but if supplied it must bind the same page. */
|
|
123
|
+
runtimeContext?: OperationRuntimeContext<PageLike>;
|
|
124
|
+
owner: CoordinatorOwner;
|
|
125
|
+
coordinator?: ProcessTabCoordinator;
|
|
126
|
+
evidenceDigest: BrowserTargetEvidenceDigest;
|
|
127
|
+
targetEvidence?: OwnershipTargetEvidence;
|
|
128
|
+
/** Provider-proofed anchor evidence when the target is `new_pending`. */
|
|
129
|
+
newTargetAnchorDigest?: string;
|
|
130
|
+
blankTaskEvidenceDigest?: string;
|
|
131
|
+
resolveTargetEvidence?: (request: OperationBrowserTargetProbeRequest) => Promise<OperationBrowserTargetProbe> | OperationBrowserTargetProbe;
|
|
132
|
+
observeCurrentTarget?: (request: OperationBrowserCurrentTargetRequest) => Promise<OperationBrowserCurrentTargetResult> | OperationBrowserCurrentTargetResult;
|
|
133
|
+
capabilities?: Partial<OperationRuntimeCapabilities>;
|
|
134
|
+
authoritativeClaim?: BrowserTargetClaim;
|
|
135
|
+
/** Hard upper bound for one queued/in-flight browser transaction. */
|
|
136
|
+
transactionTimeoutMs?: number;
|
|
137
|
+
files?: readonly OperationFileIdentity[];
|
|
138
|
+
/** The callback is a keyed manifest identity function; it receives no path. */
|
|
139
|
+
fileManifestDigest?: (ordinal: number, manifest: OperationFileIdentity["manifest"]) => string | Promise<string>;
|
|
140
|
+
submission?: OperationBrowserSubmissionPrimitive;
|
|
141
|
+
staging?: OperationBrowserStagingPrimitive;
|
|
142
|
+
collector?: OperationBrowserCollectorPrimitive;
|
|
143
|
+
control?: OperationBrowserControlPrimitive;
|
|
144
|
+
/** Optional request-local artifact source; omitted on restart adapters. */
|
|
145
|
+
artifacts?: OperationBrowserArtifactPrimitive;
|
|
146
|
+
/** Absolute request-local output directory, never passed to the service. */
|
|
147
|
+
outputDirectory?: string;
|
|
148
|
+
/** Optional lazy, read-only hydration of one authenticated durable target. */
|
|
149
|
+
recovery?: OperationBrowserRecoveryContext;
|
|
150
|
+
}>;
|
|
151
|
+
export type ComposedOperationBrowserAdapter = OperationBrowserAdapter;
|
|
152
|
+
/** Validate the durable prefix before an authenticated restart can touch a browser. */
|
|
153
|
+
export declare function assertAuthenticatedSendRecovery(request: AuthenticatedSendRecoveryRequest): void;
|
|
154
|
+
/** A separate observe-only path; no activation/staging/file/control ports are accepted. */
|
|
155
|
+
export declare function recoverAuthenticatedBrowserSend(request: AuthenticatedSendRecoveryRequest, options: Pick<OperationBrowserAdapterOptions, "page" | "owner" | "coordinator" | "evidenceDigest" | "capabilities" | "authoritativeClaim" | "observeCurrentTarget" | "transactionTimeoutMs"> & Readonly<{
|
|
156
|
+
sendObservers: SendOnceObservers;
|
|
157
|
+
}>): Promise<SubmissionFinalTransactionResult>;
|
|
158
|
+
/**
|
|
159
|
+
* Build the operation browser adapter over one captured page.
|
|
160
|
+
*
|
|
161
|
+
* The adapter is deliberately a composition layer: journal persistence stays
|
|
162
|
+
* in OperationService, browser observations are supplied by narrow injected
|
|
163
|
+
* primitives (or the conservative browser-observation default), and every
|
|
164
|
+
* non-repeatable call is made at one explicit site. No method reads
|
|
165
|
+
* RuntimeEnv.page and no method retries a browser mutation.
|
|
166
|
+
*/
|
|
167
|
+
export declare function createOperationBrowserAdapter(options: OperationBrowserAdapterOptions): ComposedOperationBrowserAdapter;
|