@modelprofile.com/browser-runtime 5.1.0 → 5.2.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/changelog.md +14 -0
- package/dist_ts/00_commitinfo_data.js +1 -1
- package/dist_ts/classes.runtime.d.ts +26 -4
- package/dist_ts/classes.runtime.js +172 -33
- package/dist_ts/index.d.ts +1 -1
- package/dist_ts/interfaces.d.ts +14 -1
- package/package.json +4 -5
- package/readme.md +10 -2
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.runtime.ts +180 -33
- package/ts/index.ts +2 -0
- package/ts/interfaces.ts +17 -0
- package/readme.hints.md +0 -60
package/changelog.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 2026-09-13 - 5.2.0
|
|
4
|
+
|
|
5
|
+
### Maintenance
|
|
6
|
+
|
|
7
|
+
- update release tooling and omit private hints from npm (tooling)
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
- add lease-owned WebRTC peers and demand-driven image capture (video)
|
|
12
|
+
|
|
13
|
+
### Documentation
|
|
14
|
+
|
|
15
|
+
- describe the final release dependency state (changelog)
|
|
16
|
+
|
|
3
17
|
## 2026-09-08 - 5.1.0
|
|
4
18
|
|
|
5
19
|
### Features
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export const commitinfo = {
|
|
5
5
|
name: '@modelprofile.com/browser-runtime',
|
|
6
|
-
version: '5.
|
|
6
|
+
version: '5.2.0',
|
|
7
7
|
description: 'Parent-owned, resource-centric Chromium runtime with revisioned attachment fencing, authenticated human and agent control, fail-closed egress, bounded artifacts, and Flex/MCP adapters.'
|
|
8
8
|
};
|
|
9
9
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxtQ0FBbUM7SUFDekMsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLDBMQUEwTDtDQUN4TSxDQUFBIn0=
|
|
@@ -3,7 +3,7 @@ import { BrowserArtifactStore } from './classes.artifactstore.js';
|
|
|
3
3
|
import { BrowserEgressProxy } from './classes.egressproxy.js';
|
|
4
4
|
import { BrowserRuntimeError } from './errors.js';
|
|
5
5
|
import { type IBrowserRuntimeTestingOptions } from './internal.testing.js';
|
|
6
|
-
import type { IAttachTrustedFramedPeerOptions, IApplyBrowserAttachmentBindingRequest, IBrowserAttachmentBinding, TBrowserCapabilityDescriptor, TBrowserCapabilityAuthorizationRequest, TBrowserRuntimeLeaseAuthority, TBrowserRuntimeOperationClassification, IBrowserRuntimeFrameSubscription, IBrowserRuntimeOperationOptions, IBrowserRuntimeOptions, IBrowserResourceRegistration, IBrowserRuntimeState, IBrowserRuntimeViewportResult, ICreateBrowserResourceRequest, IRegisterBrowserResourceRequest, TIssueBrowserCapabilityRequest, TIssuedBrowserCapability, ILiveBrowserSessionLike, TBrowserActorRole, TBrowserAgentAction, TBrowserAgentActionResult, TBrowserRuntimeEvent } from './interfaces.js';
|
|
6
|
+
import type { IAttachTrustedFramedPeerOptions, IApplyBrowserAttachmentBindingRequest, IBrowserAttachmentBinding, TBrowserCapabilityDescriptor, TBrowserCapabilityAuthorizationRequest, TBrowserRuntimeLeaseAuthority, TBrowserRuntimeOperationClassification, IBrowserRuntimeFrameSubscription, IBrowserRuntimeOperationOptions, IBrowserRuntimeOptions, IBrowserResourceRegistration, IBrowserRuntimeState, IBrowserRuntimeViewportResult, IBrowserRuntimeEventSubscriptionOptions, TBrowserRuntimeVideoOffer, ICreateBrowserResourceRequest, IRegisterBrowserResourceRequest, TIssueBrowserCapabilityRequest, TIssuedBrowserCapability, ILiveBrowserSessionLike, TBrowserActorRole, TBrowserAgentAction, TBrowserAgentActionResult, TBrowserRuntimeEvent } from './interfaces.js';
|
|
7
7
|
import { TransitionMutex } from './utils.js';
|
|
8
8
|
import { BrowserRuntimeFramedServerPeer } from './classes.framed.js';
|
|
9
9
|
type TCapabilityRecord = TBrowserCapabilityDescriptor & {
|
|
@@ -32,6 +32,9 @@ interface ILeaseRecord {
|
|
|
32
32
|
released: boolean;
|
|
33
33
|
releasePromise?: Promise<void>;
|
|
34
34
|
preferredViewport?: plugins.smartpuppeteer.ILiveBrowserViewport;
|
|
35
|
+
videoPeerId: string;
|
|
36
|
+
videoPeerMayExist: boolean;
|
|
37
|
+
frameCaptureUsed: boolean;
|
|
35
38
|
heldKeys: Map<string, plugins.smartpuppeteer.ILiveBrowserKeyInput>;
|
|
36
39
|
heldButtons: Map<string, plugins.smartpuppeteer.ILiveBrowserMouseInput>;
|
|
37
40
|
}
|
|
@@ -66,7 +69,7 @@ interface IQueuedOperationRecord {
|
|
|
66
69
|
state: 'queued' | 'starting' | 'active' | 'settled';
|
|
67
70
|
onQueuedAbort?: () => void;
|
|
68
71
|
/** Resource-owned cleanup, admitted only for this exact released participant. */
|
|
69
|
-
participantCleanup?:
|
|
72
|
+
participantCleanup?: 'participant' | 'subscription' | false;
|
|
70
73
|
}
|
|
71
74
|
interface IOutstandingFrameRecord {
|
|
72
75
|
acknowledgement: plugins.smartpuppeteer.ILiveBrowserFrameAcknowledgementRequest;
|
|
@@ -86,6 +89,10 @@ type TFrameAcknowledgementOutcome = {
|
|
|
86
89
|
interface IFrameSubscriptionRecord {
|
|
87
90
|
lease: ILeaseRecord;
|
|
88
91
|
listener: (event: TBrowserRuntimeEvent) => void;
|
|
92
|
+
includeFrames: boolean;
|
|
93
|
+
session: ILiveBrowserSessionLike;
|
|
94
|
+
closePromise?: Promise<void>;
|
|
95
|
+
closeComplete?: boolean;
|
|
89
96
|
outstanding: Map<string, IOutstandingFrameRecord>;
|
|
90
97
|
highestSequence: number;
|
|
91
98
|
closed: boolean;
|
|
@@ -130,6 +137,7 @@ interface IResourceSlot {
|
|
|
130
137
|
operationQueue: IQueuedOperationRecord[];
|
|
131
138
|
operationSchedulerRunning: boolean;
|
|
132
139
|
frameSubscriptions: Map<string, IFrameSubscriptionRecord>;
|
|
140
|
+
frameCaptureEnabled?: boolean;
|
|
133
141
|
highestFrameSequence: number;
|
|
134
142
|
producerAcknowledgements: Set<Promise<TFrameAcknowledgementOutcome>>;
|
|
135
143
|
frameRefresh?: IFrameRefreshRecord;
|
|
@@ -220,6 +228,14 @@ export declare class BrowserRuntime {
|
|
|
220
228
|
leaseHumanAgentAction(lease: ILeaseRecord, actionArg: unknown, operationOptions?: IBrowserRuntimeOperationOptions): Promise<TBrowserAgentActionResult>;
|
|
221
229
|
/** @internal */
|
|
222
230
|
leaseSetViewport(lease: ILeaseRecord, viewport: plugins.smartpuppeteer.ILiveBrowserViewport, operationOptions?: IBrowserRuntimeOperationOptions): Promise<IBrowserRuntimeViewportResult>;
|
|
231
|
+
/** @internal */
|
|
232
|
+
leaseOpenVideoPeer(lease: ILeaseRecord, options?: IBrowserRuntimeOperationOptions): Promise<TBrowserRuntimeVideoOffer>;
|
|
233
|
+
/** @internal */
|
|
234
|
+
leaseAnswerVideoPeer(lease: ILeaseRecord, negotiationId: string, description: plugins.smartpuppeteer.ILiveVideoDescription, options?: IBrowserRuntimeOperationOptions): Promise<void>;
|
|
235
|
+
/** @internal */
|
|
236
|
+
leaseCloseVideoPeer(lease: ILeaseRecord, options?: IBrowserRuntimeOperationOptions): Promise<void>;
|
|
237
|
+
/** @internal */
|
|
238
|
+
leaseGetVideoStatistics(lease: ILeaseRecord, options?: IBrowserRuntimeOperationOptions): Promise<plugins.smartpuppeteer.ILiveVideoStatistics>;
|
|
223
239
|
private validatePreferredViewport;
|
|
224
240
|
private applySharedViewport;
|
|
225
241
|
/** @internal */
|
|
@@ -235,7 +251,8 @@ export declare class BrowserRuntime {
|
|
|
235
251
|
private releaseAllParticipantInput;
|
|
236
252
|
private releaseParticipantInput;
|
|
237
253
|
/** @internal */
|
|
238
|
-
subscribeLeaseEvents(lease: ILeaseRecord, listener: (event: TBrowserRuntimeEvent) => void): Promise<IBrowserRuntimeFrameSubscription>;
|
|
254
|
+
subscribeLeaseEvents(lease: ILeaseRecord, listener: (event: TBrowserRuntimeEvent) => void, options?: IBrowserRuntimeEventSubscriptionOptions): Promise<IBrowserRuntimeFrameSubscription>;
|
|
255
|
+
private reconcileFrameCapture;
|
|
239
256
|
/** @internal */
|
|
240
257
|
acknowledgeLeaseFrame(lease: ILeaseRecord, acknowledgementArg: plugins.smartpuppeteer.ILiveBrowserFrameAcknowledgementRequest): Promise<boolean>;
|
|
241
258
|
/** @internal */
|
|
@@ -284,6 +301,7 @@ export declare class BrowserRuntime {
|
|
|
284
301
|
private handleSessionEvent;
|
|
285
302
|
private pushToSubscription;
|
|
286
303
|
private closeFrameSubscription;
|
|
304
|
+
private detachFrameSubscription;
|
|
287
305
|
private retireOutstandingFrame;
|
|
288
306
|
private validateFrameAcknowledgement;
|
|
289
307
|
private frameAcknowledgementKey;
|
|
@@ -372,7 +390,11 @@ export declare class BrowserRuntimeLease {
|
|
|
372
390
|
dispatchWheel(input: plugins.smartpuppeteer.ILiveBrowserWheelInput, operationOptions?: IBrowserRuntimeOperationOptions): Promise<void>;
|
|
373
391
|
dispatchKey(input: plugins.smartpuppeteer.ILiveBrowserKeyInput, operationOptions?: IBrowserRuntimeOperationOptions): Promise<void>;
|
|
374
392
|
insertText(input: plugins.smartpuppeteer.ILiveBrowserInsertTextInput, operationOptions?: IBrowserRuntimeOperationOptions): Promise<void>;
|
|
375
|
-
subscribeEvents(listener: (event: TBrowserRuntimeEvent) => void): Promise<IBrowserRuntimeFrameSubscription>;
|
|
393
|
+
subscribeEvents(listener: (event: TBrowserRuntimeEvent) => void, options?: IBrowserRuntimeEventSubscriptionOptions): Promise<IBrowserRuntimeFrameSubscription>;
|
|
394
|
+
openVideoPeer(options?: IBrowserRuntimeOperationOptions): Promise<TBrowserRuntimeVideoOffer>;
|
|
395
|
+
answerVideoPeer(negotiationId: string, description: plugins.smartpuppeteer.ILiveVideoDescription, options?: IBrowserRuntimeOperationOptions): Promise<void>;
|
|
396
|
+
closeVideoPeer(options?: IBrowserRuntimeOperationOptions): Promise<void>;
|
|
397
|
+
getVideoStatistics(options?: IBrowserRuntimeOperationOptions): Promise<plugins.smartpuppeteer.ILiveVideoStatistics>;
|
|
376
398
|
acknowledgeFrame(acknowledgement: plugins.smartpuppeteer.ILiveBrowserFrameAcknowledgementRequest): Promise<boolean>;
|
|
377
399
|
refreshFrameStream(operationOptions?: IBrowserRuntimeOperationOptions): Promise<void>;
|
|
378
400
|
readArtifact(artifactId: string): Promise<Uint8Array>;
|