@modelprofile.com/browser-runtime 1.0.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/.smartconfig.json +34 -0
- package/changelog.md +11 -0
- package/dist_ts/00_commitinfo_data.d.ts +8 -0
- package/dist_ts/00_commitinfo_data.js +9 -0
- package/dist_ts/actions.d.ts +3 -0
- package/dist_ts/actions.js +215 -0
- package/dist_ts/classes.artifactstore.d.ts +38 -0
- package/dist_ts/classes.artifactstore.js +344 -0
- package/dist_ts/classes.egressproxy.d.ts +67 -0
- package/dist_ts/classes.egressproxy.js +830 -0
- package/dist_ts/classes.flexprovider.d.ts +9 -0
- package/dist_ts/classes.flexprovider.js +117 -0
- package/dist_ts/classes.framed.d.ts +52 -0
- package/dist_ts/classes.framed.js +557 -0
- package/dist_ts/classes.runtime.d.ts +202 -0
- package/dist_ts/classes.runtime.js +1667 -0
- package/dist_ts/confinement.d.ts +2 -0
- package/dist_ts/confinement.js +63 -0
- package/dist_ts/errors.d.ts +7 -0
- package/dist_ts/errors.js +40 -0
- package/dist_ts/index.d.ts +11 -0
- package/dist_ts/index.js +9 -0
- package/dist_ts/interfaces.d.ts +287 -0
- package/dist_ts/interfaces.js +2 -0
- package/dist_ts/internal.testing.d.ts +9 -0
- package/dist_ts/internal.testing.js +2 -0
- package/dist_ts/mcp.d.ts +4 -0
- package/dist_ts/mcp.js +196 -0
- package/dist_ts/plugins.d.ts +20 -0
- package/dist_ts/plugins.js +24 -0
- package/dist_ts/utils.d.ts +25 -0
- package/dist_ts/utils.js +143 -0
- package/license.md +21 -0
- package/package.json +59 -0
- package/readme.hints.md +35 -0
- package/readme.md +181 -0
- package/ts/00_commitinfo_data.ts +8 -0
- package/ts/actions.ts +241 -0
- package/ts/classes.artifactstore.ts +432 -0
- package/ts/classes.egressproxy.ts +1005 -0
- package/ts/classes.flexprovider.ts +134 -0
- package/ts/classes.framed.ts +649 -0
- package/ts/classes.runtime.ts +2135 -0
- package/ts/confinement.ts +90 -0
- package/ts/errors.ts +63 -0
- package/ts/index.ts +52 -0
- package/ts/interfaces.ts +375 -0
- package/ts/internal.testing.ts +18 -0
- package/ts/mcp.ts +230 -0
- package/ts/plugins.ts +28 -0
- package/ts/utils.ts +188 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
import type { IBrowserRuntimeFlexToolProviderOptions } from './interfaces.js';
|
|
3
|
+
export declare class BrowserRuntimeFlexToolProvider<TScope> implements plugins.flexharness.IFlexToolProvider<TScope> {
|
|
4
|
+
private readonly client;
|
|
5
|
+
private readonly resolveCapability;
|
|
6
|
+
private state;
|
|
7
|
+
constructor(options: IBrowserRuntimeFlexToolProviderOptions<TScope>);
|
|
8
|
+
provideTools(context: plugins.flexharness.IFlexToolProviderContext<TScope>): Promise<plugins.flexharness.IFlexToolHandle>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
import { BrowserRuntimeError } from './errors.js';
|
|
3
|
+
import { validateBoundedString, validateExactKeys } from './utils.js';
|
|
4
|
+
const allowedActions = [
|
|
5
|
+
'navigate',
|
|
6
|
+
'snapshot',
|
|
7
|
+
'screenshot',
|
|
8
|
+
'click',
|
|
9
|
+
'fill',
|
|
10
|
+
'press',
|
|
11
|
+
];
|
|
12
|
+
export class BrowserRuntimeFlexToolProvider {
|
|
13
|
+
client;
|
|
14
|
+
resolveCapability;
|
|
15
|
+
state = 'unused';
|
|
16
|
+
constructor(options) {
|
|
17
|
+
if (!options || typeof options !== 'object')
|
|
18
|
+
throw new BrowserRuntimeError('INVALID_INPUT');
|
|
19
|
+
if (!options.client || typeof options.resolveCapability !== 'function') {
|
|
20
|
+
throw new BrowserRuntimeError('INVALID_INPUT');
|
|
21
|
+
}
|
|
22
|
+
this.client = options.client;
|
|
23
|
+
this.resolveCapability = options.resolveCapability;
|
|
24
|
+
}
|
|
25
|
+
async provideTools(context) {
|
|
26
|
+
if (this.state !== 'unused')
|
|
27
|
+
throw new BrowserRuntimeError('BUSY');
|
|
28
|
+
this.state = 'provisioning';
|
|
29
|
+
const scopeId = validateBoundedString(context.scopeId, 'scopeId', 1, 128);
|
|
30
|
+
const sessionId = validateBoundedString(context.sessionId, 'sessionId', 1, 128);
|
|
31
|
+
if (this.client.scopeId !== scopeId || this.client.sessionId !== sessionId) {
|
|
32
|
+
this.state = 'closed';
|
|
33
|
+
throw new BrowserRuntimeError('CAPABILITY_INVALID');
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
context.signal.throwIfAborted();
|
|
37
|
+
const resolved = validateExactKeys(await this.resolveCapability(context), ['capabilityToken'], 'resolved capability');
|
|
38
|
+
const capabilityToken = validateBoundedString(resolved.capabilityToken, 'capabilityToken', 16, 512);
|
|
39
|
+
context.signal.throwIfAborted();
|
|
40
|
+
await this.client.acquire(capabilityToken, context.signal);
|
|
41
|
+
context.signal.throwIfAborted();
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
await this.client.release().catch(() => undefined);
|
|
45
|
+
await this.client.close().catch(() => undefined);
|
|
46
|
+
this.state = 'closed';
|
|
47
|
+
throw error;
|
|
48
|
+
}
|
|
49
|
+
this.state = 'active';
|
|
50
|
+
const tools = plugins.smartagent.createBrowserTools({
|
|
51
|
+
abortSignal: context.signal,
|
|
52
|
+
browser: this.client.asToolBrowserContext(),
|
|
53
|
+
requestPermission: async (request) => {
|
|
54
|
+
const metadata = request.metadata ?? {};
|
|
55
|
+
const actionValue = metadata.action;
|
|
56
|
+
if (typeof actionValue !== 'string' || !allowedActions.includes(actionValue)) {
|
|
57
|
+
throw new BrowserRuntimeError('INVALID_INPUT');
|
|
58
|
+
}
|
|
59
|
+
const action = actionValue;
|
|
60
|
+
const toolCallId = request.toolCallId === undefined
|
|
61
|
+
? undefined
|
|
62
|
+
: validateBoundedString(request.toolCallId, 'toolCallId', 1, 128);
|
|
63
|
+
const permission = context.requestPermission({
|
|
64
|
+
kind: `browser.${action}`,
|
|
65
|
+
description: `Allow the browser to perform the ${action} action.`,
|
|
66
|
+
...(toolCallId ? { toolCallId } : {}),
|
|
67
|
+
metadata: { action },
|
|
68
|
+
});
|
|
69
|
+
const signal = AbortSignal.any([
|
|
70
|
+
context.signal,
|
|
71
|
+
request.abortSignal ?? new AbortController().signal,
|
|
72
|
+
]);
|
|
73
|
+
signal.throwIfAborted();
|
|
74
|
+
let onAbort;
|
|
75
|
+
const aborted = new Promise((_resolve, reject) => {
|
|
76
|
+
onAbort = () => reject(new BrowserRuntimeError('ABORTED'));
|
|
77
|
+
signal.addEventListener('abort', onAbort, { once: true });
|
|
78
|
+
});
|
|
79
|
+
try {
|
|
80
|
+
await Promise.race([permission, aborted]);
|
|
81
|
+
signal.throwIfAborted();
|
|
82
|
+
}
|
|
83
|
+
finally {
|
|
84
|
+
signal.removeEventListener('abort', onAbort);
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
}, {
|
|
88
|
+
allowedActions,
|
|
89
|
+
maxLines: 2000,
|
|
90
|
+
maxBytes: 128 * 1024,
|
|
91
|
+
});
|
|
92
|
+
let closePromise;
|
|
93
|
+
const close = () => {
|
|
94
|
+
if (closePromise)
|
|
95
|
+
return closePromise;
|
|
96
|
+
closePromise = (async () => {
|
|
97
|
+
context.signal.removeEventListener('abort', onRunAbort);
|
|
98
|
+
let releaseError;
|
|
99
|
+
await this.client.release().catch((error) => { releaseError = error; });
|
|
100
|
+
await this.client.close();
|
|
101
|
+
this.state = 'closed';
|
|
102
|
+
if (releaseError)
|
|
103
|
+
throw releaseError;
|
|
104
|
+
})();
|
|
105
|
+
return closePromise;
|
|
106
|
+
};
|
|
107
|
+
const onRunAbort = () => {
|
|
108
|
+
void close().catch(() => undefined);
|
|
109
|
+
};
|
|
110
|
+
context.signal.addEventListener('abort', onRunAbort, { once: true });
|
|
111
|
+
return {
|
|
112
|
+
tools,
|
|
113
|
+
close,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5mbGV4cHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLmZsZXhwcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUl4QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXRFLE1BQU0sY0FBYyxHQUFHO0lBQ3JCLFVBQVU7SUFDVixVQUFVO0lBQ1YsWUFBWTtJQUNaLE9BQU87SUFDUCxNQUFNO0lBQ04sT0FBTztDQUM0RCxDQUFDO0FBRXRFLE1BQU0sT0FBTyw4QkFBOEI7SUFFeEIsTUFBTSxDQUEyRDtJQUNqRSxpQkFBaUIsQ0FBc0U7SUFDaEcsS0FBSyxHQUFvRCxRQUFRLENBQUM7SUFFMUUsWUFBWSxPQUF1RDtRQUNqRSxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sT0FBTyxLQUFLLFFBQVE7WUFBRSxNQUFNLElBQUksbUJBQW1CLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxPQUFPLENBQUMsaUJBQWlCLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDdkUsTUFBTSxJQUFJLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFDN0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQztJQUNyRCxDQUFDO0lBRU0sS0FBSyxDQUFDLFlBQVksQ0FDdkIsT0FBNkQ7UUFFN0QsSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVE7WUFBRSxNQUFNLElBQUksbUJBQW1CLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkUs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
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as plugins from './plugins.js';
|
|
2
|
+
import type { BrowserRuntime } from './classes.runtime.js';
|
|
3
|
+
import type { IAttachTrustedFramedPeerOptions, IBrowserRuntimeFramedClientOptions, IBrowserRuntimeOperationOptions, TBrowserAgentAction, TBrowserAgentActionResult } from './interfaces.js';
|
|
4
|
+
export declare class BrowserRuntimeFramedServerPeer {
|
|
5
|
+
private readonly runtime;
|
|
6
|
+
private readonly onClosed;
|
|
7
|
+
private readonly trustedPeerId;
|
|
8
|
+
private readonly trustedScopeId;
|
|
9
|
+
private readonly trustedSessionId;
|
|
10
|
+
private readonly channel;
|
|
11
|
+
private readonly activeRequests;
|
|
12
|
+
private lease?;
|
|
13
|
+
private started;
|
|
14
|
+
private closePromise?;
|
|
15
|
+
private closing;
|
|
16
|
+
private readonly dispatches;
|
|
17
|
+
constructor(runtime: BrowserRuntime, options: IAttachTrustedFramedPeerOptions, onClosed?: () => void);
|
|
18
|
+
get peerId(): string;
|
|
19
|
+
start(): void;
|
|
20
|
+
close(): Promise<void>;
|
|
21
|
+
private handleMessage;
|
|
22
|
+
private dispatchRequest;
|
|
23
|
+
private requireLease;
|
|
24
|
+
private sendError;
|
|
25
|
+
private closeInternal;
|
|
26
|
+
private closeFromStream;
|
|
27
|
+
}
|
|
28
|
+
export declare class BrowserRuntimeFramedClient {
|
|
29
|
+
private readonly channel;
|
|
30
|
+
private readonly maxPendingRequests;
|
|
31
|
+
private readonly requestTimeoutMs;
|
|
32
|
+
private readonly pending;
|
|
33
|
+
private acquired;
|
|
34
|
+
private started;
|
|
35
|
+
private closePromise?;
|
|
36
|
+
private readonly scopeIdValue;
|
|
37
|
+
private readonly sessionIdValue;
|
|
38
|
+
constructor(options: IBrowserRuntimeFramedClientOptions);
|
|
39
|
+
start(): void;
|
|
40
|
+
get scopeId(): string;
|
|
41
|
+
get sessionId(): string;
|
|
42
|
+
acquire(capabilityTokenArg: string, signal?: AbortSignal): Promise<void>;
|
|
43
|
+
executeAgentAction(actionArg: TBrowserAgentAction, options?: IBrowserRuntimeOperationOptions): Promise<TBrowserAgentActionResult>;
|
|
44
|
+
asToolBrowserContext(): plugins.smartagent.IToolBrowserContext;
|
|
45
|
+
release(): Promise<void>;
|
|
46
|
+
close(): Promise<void>;
|
|
47
|
+
private request;
|
|
48
|
+
private requestWithId;
|
|
49
|
+
private handleResponse;
|
|
50
|
+
private handleClose;
|
|
51
|
+
private closeInternal;
|
|
52
|
+
}
|