dsh-plugin-lcu 0.2.9 → 0.3.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 +60 -0
- package/README.md +174 -104
- package/cordis.patch.yml +11 -6
- package/docs/README.zh.md +154 -168
- package/helper/sky-service.mjs +484 -0
- package/lib/app.js +284 -0
- package/lib/app.js.map +1 -0
- package/lib/approval.js +45 -4
- package/lib/approval.js.map +1 -1
- package/lib/connection.js +82 -35
- package/lib/connection.js.map +1 -1
- package/lib/control.js +214 -0
- package/lib/control.js.map +1 -0
- package/lib/diag.js +1 -1
- package/lib/host-guard.js +2 -2
- package/lib/index.js +100 -30
- package/lib/index.js.map +1 -1
- package/lib/session.js +137 -0
- package/lib/session.js.map +1 -0
- package/lib/tool.js +7 -4
- package/lib/tool.js.map +1 -1
- package/lib/types/app.d.ts +118 -0
- package/lib/types/app.d.ts.map +1 -0
- package/lib/types/approval.d.ts +28 -3
- package/lib/types/approval.d.ts.map +1 -1
- package/lib/types/connection.d.ts +27 -13
- package/lib/types/connection.d.ts.map +1 -1
- package/lib/types/control.d.ts +54 -0
- package/lib/types/control.d.ts.map +1 -0
- package/lib/types/diag.d.ts +1 -1
- package/lib/types/host-guard.d.ts +2 -2
- package/lib/types/index.d.ts +26 -6
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/session.d.ts +89 -0
- package/lib/types/session.d.ts.map +1 -0
- package/lib/types/tool.d.ts +6 -5
- package/lib/types/tool.d.ts.map +1 -1
- package/package.json +8 -6
- package/scripts/probe-lcu.mjs +40 -18
- package/scripts/gen-presets.mjs +0 -266
package/lib/session.js
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The connection an Agent's tools talk to.
|
|
3
|
+
*
|
|
4
|
+
* The runtime is executed from files inside the ChatGPT application, and the
|
|
5
|
+
* application replaces those files when it updates. A session that stays
|
|
6
|
+
* connected across an update therefore runs a mix of two generations — the
|
|
7
|
+
* runtime it started with and the modules a later `import` resolves from the new
|
|
8
|
+
* bundle — and the failure that follows is not obvious from the outside.
|
|
9
|
+
*
|
|
10
|
+
* This is a thin facade rather than a fix inside the connection: the tools close
|
|
11
|
+
* over one object for the life of the Agent, so that object has to be able to
|
|
12
|
+
* become a different connection. Before every call it compares the application's
|
|
13
|
+
* fingerprint, and when it changed it opens a new connection and retires the old
|
|
14
|
+
* one, so all later calls come from a single generation.
|
|
15
|
+
*
|
|
16
|
+
* @module dsh-plugin-lcu/session
|
|
17
|
+
*/
|
|
18
|
+
/** A connection that follows the application across an update. */
|
|
19
|
+
export class ManagedSession {
|
|
20
|
+
#connection;
|
|
21
|
+
#generation;
|
|
22
|
+
/**
|
|
23
|
+
* The session identity, kept here rather than only on the connection.
|
|
24
|
+
*
|
|
25
|
+
* The runtime keys its per-turn state by this, so a replacement connection
|
|
26
|
+
* that had not been told the identity would send calls the runtime cannot
|
|
27
|
+
* attribute to a turn — which is the difference between "a new turn" and "the
|
|
28
|
+
* same stopped turn".
|
|
29
|
+
*/
|
|
30
|
+
#sessionId;
|
|
31
|
+
#closed = false;
|
|
32
|
+
#rebuilding;
|
|
33
|
+
#options;
|
|
34
|
+
constructor(connection, generation, options) {
|
|
35
|
+
this.#connection = connection;
|
|
36
|
+
this.#generation = generation;
|
|
37
|
+
this.#options = options;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Open the first connection.
|
|
41
|
+
*
|
|
42
|
+
* @param options - how to connect and how to notice a change.
|
|
43
|
+
* @returns the session, already connected.
|
|
44
|
+
*/
|
|
45
|
+
static async open(options) {
|
|
46
|
+
const connection = await options.connect('initial');
|
|
47
|
+
// Recorded after connecting, not before: an update during the handshake is
|
|
48
|
+
// then caught by the first call rather than missed.
|
|
49
|
+
let generation;
|
|
50
|
+
try {
|
|
51
|
+
generation = options.generation();
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
options.onGenerationUnreadable?.(error);
|
|
55
|
+
generation = '';
|
|
56
|
+
}
|
|
57
|
+
return new ManagedSession(connection, generation, options);
|
|
58
|
+
}
|
|
59
|
+
get sessionId() {
|
|
60
|
+
return this.#connection.sessionId ?? this.#sessionId;
|
|
61
|
+
}
|
|
62
|
+
set sessionId(value) {
|
|
63
|
+
this.#sessionId = value;
|
|
64
|
+
this.#connection.sessionId = value;
|
|
65
|
+
}
|
|
66
|
+
get hasHostControl() {
|
|
67
|
+
return this.#connection.hasHostControl;
|
|
68
|
+
}
|
|
69
|
+
modelTools() {
|
|
70
|
+
return this.#connection.modelTools();
|
|
71
|
+
}
|
|
72
|
+
/** Replace the connection when the application underneath it changed. */
|
|
73
|
+
async #ensureCurrent() {
|
|
74
|
+
if (this.#closed)
|
|
75
|
+
throw new Error('the session is closed');
|
|
76
|
+
let current;
|
|
77
|
+
try {
|
|
78
|
+
current = this.#options.generation();
|
|
79
|
+
}
|
|
80
|
+
catch (error) {
|
|
81
|
+
// Reported, then ignored: see `onGenerationUnreadable`.
|
|
82
|
+
this.#options.onGenerationUnreadable?.(error);
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
if (current === this.#generation)
|
|
86
|
+
return;
|
|
87
|
+
// One replacement at a time: concurrent calls must not each open a runtime.
|
|
88
|
+
if (this.#rebuilding === undefined) {
|
|
89
|
+
this.#rebuilding = this.#rebuild(current).finally(() => { this.#rebuilding = undefined; });
|
|
90
|
+
}
|
|
91
|
+
await this.#rebuilding;
|
|
92
|
+
}
|
|
93
|
+
async #rebuild(current) {
|
|
94
|
+
const previous = this.#connection;
|
|
95
|
+
const from = this.#generation;
|
|
96
|
+
let next;
|
|
97
|
+
try {
|
|
98
|
+
next = await this.#options.connect('regenerated');
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
// The old connection is stale but alive, which is better than nothing: the
|
|
102
|
+
// next call tries again, and the caller sees why the replacement failed.
|
|
103
|
+
this.#options.onRegenerateFailed?.(error);
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
// The identity travels with the session, not with the connection.
|
|
107
|
+
next.sessionId = this.#sessionId;
|
|
108
|
+
this.#connection = next;
|
|
109
|
+
this.#generation = current;
|
|
110
|
+
this.#options.onRegenerated?.({ from, to: current });
|
|
111
|
+
await previous.close();
|
|
112
|
+
}
|
|
113
|
+
async callTool(...args) {
|
|
114
|
+
await this.#ensureCurrent();
|
|
115
|
+
return await this.#connection.callTool(...args);
|
|
116
|
+
}
|
|
117
|
+
async turnEnded(...args) {
|
|
118
|
+
await this.#ensureCurrent();
|
|
119
|
+
return await this.#connection.turnEnded(...args);
|
|
120
|
+
}
|
|
121
|
+
async controlStatus(...args) {
|
|
122
|
+
await this.#ensureCurrent();
|
|
123
|
+
return await this.#connection.controlStatus(...args);
|
|
124
|
+
}
|
|
125
|
+
async controlStop(...args) {
|
|
126
|
+
await this.#ensureCurrent();
|
|
127
|
+
return await this.#connection.controlStop(...args);
|
|
128
|
+
}
|
|
129
|
+
/** Retire the connection. Later calls fail rather than opening a new runtime. */
|
|
130
|
+
async close() {
|
|
131
|
+
if (this.#closed)
|
|
132
|
+
return;
|
|
133
|
+
this.#closed = true;
|
|
134
|
+
await this.#connection.close();
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=session.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
|
package/lib/tool.js
CHANGED
|
@@ -357,10 +357,10 @@ export function createComputerUseStopTool(connection, currentTurn) {
|
|
|
357
357
|
+ 'Call it with no arguments to list them, or with `app` set to one of the returned bundle '
|
|
358
358
|
+ 'identifiers to stop using it. This is what clears the host application\'s "computer use is '
|
|
359
359
|
+ 'active" state for an app without ending the session.\n'
|
|
360
|
-
+ 'Use this only when the user asks for it
|
|
361
|
-
+ 'turn cleanup, which
|
|
362
|
-
+ '
|
|
363
|
-
+ 'computer use never needs a Stop.',
|
|
360
|
+
+ 'Use this only when the user asks for it. A Stop is released by the host application\'s own '
|
|
361
|
+
+ 'turn cleanup, which this plugin performs, so the next turn can use that application again — '
|
|
362
|
+
+ 'but it still refuses to be used again within the turn that stopped it. Listing is free and '
|
|
363
|
+
+ 'always safe; ordinary computer use never needs a Stop.',
|
|
364
364
|
// A whole JSON Schema object, exactly as the server's descriptors are
|
|
365
365
|
// carried: the harness rejects anything that is not `type: "object"`.
|
|
366
366
|
parameters: {
|
|
@@ -394,6 +394,9 @@ export function createComputerUseStopTool(connection, currentTurn) {
|
|
|
394
394
|
},
|
|
395
395
|
},
|
|
396
396
|
async execute(args) {
|
|
397
|
+
if (!connection.hasHostControl) {
|
|
398
|
+
throw new Error('the per-application Stop is unavailable: nothing in this configuration serves the runtime control channel');
|
|
399
|
+
}
|
|
397
400
|
const turn = currentTurn();
|
|
398
401
|
if (turn === undefined) {
|
|
399
402
|
throw new Error('no active turn: computer use is released between turns');
|
package/lib/tool.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../src/tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ChatGPT application, and the runtime it carries.
|
|
3
|
+
*
|
|
4
|
+
* The computer-use provider is the original one inside the application: this
|
|
5
|
+
* module locates it, checks the pieces it needs are present and not writable by
|
|
6
|
+
* anyone else, and builds the environment the runtime expects. Nothing here
|
|
7
|
+
* launches a third-party wrapper — the launcher is
|
|
8
|
+
* `.../@oai/cua-repl/bin/cua-repl.mjs` inside the application itself.
|
|
9
|
+
*
|
|
10
|
+
* The environment is not guesswork. Every variable below is one the original
|
|
11
|
+
* launcher sets, and each is named in a comment for the thing it selects.
|
|
12
|
+
*
|
|
13
|
+
* @module dsh-plugin-lcu/app
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* The Sky service module this plugin loads instead of the application's own.
|
|
17
|
+
*
|
|
18
|
+
* It forwards to the application unchanged and adds the turn-ended hook the
|
|
19
|
+
* runtime has no handler for. See its own header for why that hook matters and
|
|
20
|
+
* what it deliberately leaves out.
|
|
21
|
+
*/
|
|
22
|
+
export declare function skyServicePath(): string;
|
|
23
|
+
/** A failure that names the application as its source. */
|
|
24
|
+
export declare class AppError extends Error {
|
|
25
|
+
constructor(message: string);
|
|
26
|
+
}
|
|
27
|
+
/** The paths one intact application generation offers. */
|
|
28
|
+
export interface AppPaths {
|
|
29
|
+
readonly app: string;
|
|
30
|
+
readonly resources: string;
|
|
31
|
+
readonly runtime: string;
|
|
32
|
+
/** The application's `CFBundleShortVersionString`. */
|
|
33
|
+
readonly version: string;
|
|
34
|
+
/** The computer-use runtime generation recorded in its manifest. */
|
|
35
|
+
readonly runtimeVersion: string;
|
|
36
|
+
}
|
|
37
|
+
/** Everything needed to start the provider. */
|
|
38
|
+
export interface LaunchPlan {
|
|
39
|
+
readonly command: string;
|
|
40
|
+
readonly args: readonly string[];
|
|
41
|
+
readonly env: NodeJS.ProcessEnv;
|
|
42
|
+
readonly paths: AppPaths;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Refuse a file another account could replace.
|
|
46
|
+
*
|
|
47
|
+
* The runtime is executed from inside the application, so a world-writable file
|
|
48
|
+
* in that tree is a way for someone else to choose what this session runs. This
|
|
49
|
+
* is the cheap half of what the original installer checks; it is not a
|
|
50
|
+
* signature verification.
|
|
51
|
+
*
|
|
52
|
+
* @param path - the file to inspect.
|
|
53
|
+
* @returns whether the file is a regular file owned by this account or root and writable by neither others nor group.
|
|
54
|
+
*/
|
|
55
|
+
export declare function isPrivateFile(path: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Locate the application and the runtime inside it.
|
|
58
|
+
*
|
|
59
|
+
* @param appPath - the application to use; defaults to the standard install.
|
|
60
|
+
* @returns the paths and both versions.
|
|
61
|
+
* @throws AppError when the application or a required piece is missing.
|
|
62
|
+
*/
|
|
63
|
+
export declare function resolveApp(appPath?: string): AppPaths;
|
|
64
|
+
/**
|
|
65
|
+
* Build the environment the runtime expects.
|
|
66
|
+
*
|
|
67
|
+
* Every entry mirrors the original launcher. The ones that matter most:
|
|
68
|
+
* `CUA_REPL_NODE_REPL_PATH`/`NODE_REPL_NODE_PATH` select the application's own
|
|
69
|
+
* node, `NODE_REPL_NODE_MODULE_DIRS` and `NODE_REPL_TRUSTED_CODE_PATHS` let it
|
|
70
|
+
* load its modules, `CUA_REPL_ENABLED_SURFACES` chooses the API surface,
|
|
71
|
+
* `SKY_CUA_SERVICE_PATH` is the signed helper the macOS native pipe launches,
|
|
72
|
+
* and `NODE_REPL_REQUEST_META` supplies the identity the runtime uses when a
|
|
73
|
+
* call carries none of its own.
|
|
74
|
+
*
|
|
75
|
+
* `NODE_REPL_TRUSTED_SERVICES` selects the `sky` service. It names this plugin's
|
|
76
|
+
* wrapper rather than the application's own module, because the runtime has no
|
|
77
|
+
* turn-ended handler of its own and a turn that never ends is a turn whose
|
|
78
|
+
* per-application Stop is never released.
|
|
79
|
+
*
|
|
80
|
+
* @param paths - the resolved application paths.
|
|
81
|
+
* @param options - surface selection and the identity fallback.
|
|
82
|
+
* @returns the child environment.
|
|
83
|
+
*/
|
|
84
|
+
export declare function buildEnvironment(paths: AppPaths, options: {
|
|
85
|
+
readonly chrome: boolean;
|
|
86
|
+
readonly audio: boolean;
|
|
87
|
+
readonly identity?: string;
|
|
88
|
+
}): NodeJS.ProcessEnv;
|
|
89
|
+
/**
|
|
90
|
+
* The full plan for one connection.
|
|
91
|
+
*
|
|
92
|
+
* @param options - the application, surfaces and override.
|
|
93
|
+
* @returns the command, its arguments, the environment and the paths.
|
|
94
|
+
*/
|
|
95
|
+
export declare function planLaunch(options: {
|
|
96
|
+
readonly appPath?: string;
|
|
97
|
+
readonly chrome: boolean;
|
|
98
|
+
readonly audio: boolean;
|
|
99
|
+
readonly identity?: string;
|
|
100
|
+
/** An explicit command that replaces the computed one, for an unusual install. */
|
|
101
|
+
readonly command?: string;
|
|
102
|
+
}): LaunchPlan;
|
|
103
|
+
/**
|
|
104
|
+
* A fingerprint of the application generation the runtime is run from.
|
|
105
|
+
*
|
|
106
|
+
* The runtime is executed from files the application replaces when it updates, so
|
|
107
|
+
* a session that is already connected can end up running a mix of two
|
|
108
|
+
* generations. Both versions are read from the bundle and both timestamps are
|
|
109
|
+
* part of the answer, because an update replaces the whole bundle and a
|
|
110
|
+
* same-version reinstall is still a different set of files.
|
|
111
|
+
*
|
|
112
|
+
* @param paths - the resolved application paths.
|
|
113
|
+
* @returns a value that changes exactly when the files underneath change.
|
|
114
|
+
*/
|
|
115
|
+
export declare function generationOf(paths: AppPaths): string;
|
|
116
|
+
/** Whether the application can be executed by this account. */
|
|
117
|
+
export declare function appIsRunnable(paths: AppPaths): boolean;
|
|
118
|
+
//# sourceMappingURL=app.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAYH;;;;;;GAMG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,0DAA0D;AAC1D,qBAAa,QAAS,SAAQ,KAAK;gBACrB,OAAO,EAAE,MAAM;CAI5B;AAED,0DAA0D;AAC1D,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,sDAAsD;IACtD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,oEAAoE;IACpE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;CAChC;AAED,+CAA+C;AAC/C,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;IAChC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;IAC/B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAA;CACzB;AA6BD;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAWnD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,OAAO,GAAE,MAAoB,GAAG,QAAQ,CAyClE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,QAAQ,EACf,OAAO,EAAE;IAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GACzF,MAAM,CAAC,UAAU,CAsEnB;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE;IAClC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;IACxB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,kFAAkF;IAClF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAC1B,GAAG,UAAU,CAgBb;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAWpD;AAED,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAOtD"}
|
package/lib/types/approval.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Approval shapes.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* The runtime asks the host before it touches an app, and the request
|
|
5
5
|
* is a specific `elicitation/create` form. This ports the recognition and
|
|
6
|
-
* mapping rules from
|
|
6
|
+
* mapping rules from the runtime's shared client so a DSH host presents exactly the
|
|
7
7
|
* choices the runtime offered — no more (granting an unoffered persistence scope
|
|
8
8
|
* would let the agent keep desktop access the runtime meant to bound) and no
|
|
9
9
|
* fewer (dropping `always` would nag the user every turn).
|
|
@@ -54,6 +54,31 @@ export declare function nativeAppApprovalResponse(request: LcuElicitationRequest
|
|
|
54
54
|
* @returns the choice value, or `'cancel'` when the label matches no option.
|
|
55
55
|
*/
|
|
56
56
|
export declare function approvalValueForLabel(approval: NativeAppApproval, label: string | undefined): string;
|
|
57
|
+
/**
|
|
58
|
+
* Normalize the pre-approved application bundle identifiers.
|
|
59
|
+
*
|
|
60
|
+
* Matching is case-insensitive because a bundle identifier's case is an
|
|
61
|
+
* implementation detail of the application's Info.plist, and a user reading it
|
|
62
|
+
* out of a log should not have to reproduce it exactly. Entries are otherwise
|
|
63
|
+
* kept verbatim: nothing here widens what a match admits.
|
|
64
|
+
*
|
|
65
|
+
* @param raw - configured identifiers, possibly absent or malformed.
|
|
66
|
+
* @returns the normalized set.
|
|
67
|
+
*/
|
|
68
|
+
export declare function normalizeApps(raw: readonly string[] | undefined): ReadonlySet<string>;
|
|
69
|
+
/**
|
|
70
|
+
* Whether the user has already decided about this application.
|
|
71
|
+
*
|
|
72
|
+
* This is what makes an unattended run possible: without it the runtime asks
|
|
73
|
+
* before it first uses each application, and an unanswered question is a refusal.
|
|
74
|
+
* It is checked only after the agent-host guard, so a list can never authorize
|
|
75
|
+
* the application the agent itself is running in.
|
|
76
|
+
*
|
|
77
|
+
* @param approval - the application approval the runtime sent.
|
|
78
|
+
* @param allowedApps - normalized pre-approved identifiers.
|
|
79
|
+
* @returns whether the application may be admitted without asking.
|
|
80
|
+
*/
|
|
81
|
+
export declare function isPreApprovedApp(approval: NativeAppApproval, allowedApps: ReadonlySet<string>): boolean;
|
|
57
82
|
/** The exact origin a browser-site approval names, when it names one. */
|
|
58
83
|
export declare function originApprovalOrigin(request: LcuElicitationRequest): string | undefined;
|
|
59
84
|
/** Whether the request names an already-authorized exact origin. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../src/approval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAEpF,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;IACzD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,gDAAgD;AAChD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;CAC5C;AAgBD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,iBAAiB,GAAG,SAAS,CAsB/F;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,MAAM,GACZ,sBAAsB,CAYxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGpG;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,GAAG,SAAS,CAWvF;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,qBAAqB,EAC9B,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,GAClC,OAAO,CAGT;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAavE"}
|
|
1
|
+
{"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../src/approval.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AAEpF,kDAAkD;AAClD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAA;IACzD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;CACvB;AAED,gDAAgD;AAChD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,OAAO,EAAE,SAAS,cAAc,EAAE,CAAA;CAC5C;AAgBD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,qBAAqB,GAAG,iBAAiB,GAAG,SAAS,CAsB/F;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,qBAAqB,EAC9B,KAAK,EAAE,MAAM,GACZ,sBAAsB,CAYxB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAGpG;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAUrF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,iBAAiB,EAC3B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,GAC/B,OAAO,CAGT;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,GAAG,SAAS,CAWvF;AAED,oEAAoE;AACpE,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,qBAAqB,EAC9B,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,GAClC,OAAO,CAGT;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAavE"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* The
|
|
2
|
+
* The runtime MCP client.
|
|
3
3
|
*
|
|
4
4
|
* Why not `@modelcontextprotocol/sdk` or the host's `@modelcontextprotocol/client`:
|
|
5
5
|
* the harness's own MCP bridge declares `capabilities: {}` and therefore cannot
|
|
6
|
-
* answer elicitation, which is how
|
|
6
|
+
* answer elicitation, which is how the runtime asks for per-app approval; and pulling a
|
|
7
7
|
* second SDK into a profile plugin would pin a version the host does not own.
|
|
8
8
|
* MCP over stdio is newline-delimited JSON-RPC, so the wire is small enough to
|
|
9
9
|
* own here and keeps this plugin dependency-free at runtime.
|
|
10
10
|
*
|
|
11
|
-
* Contract
|
|
11
|
+
* Contract taken from the runtime:
|
|
12
12
|
* - declare `capabilities.elicitation` and answer `elicitation/create`
|
|
13
13
|
* - expose only `js` and `js_reset` to the model; `turn_ended` and
|
|
14
14
|
* `js_add_node_module_dir` are host-only
|
|
@@ -82,23 +82,30 @@ export declare function turnMetadataFor(sessionId: string | undefined, turnId: s
|
|
|
82
82
|
export type LcuTurnEndEvent = 'Stop' | 'Interrupt' | 'SubagentStop';
|
|
83
83
|
/** Connection options. */
|
|
84
84
|
export interface LcuConnectionOptions {
|
|
85
|
-
/** Executable to spawn
|
|
85
|
+
/** Executable to spawn, together with its arguments and environment. */
|
|
86
86
|
readonly command: string;
|
|
87
87
|
/** Extra arguments, e.g. `['--chrome']` to enable the browser surface. */
|
|
88
88
|
readonly args?: readonly string[];
|
|
89
|
-
/**
|
|
90
|
-
|
|
89
|
+
/**
|
|
90
|
+
* The complete child environment.
|
|
91
|
+
*
|
|
92
|
+
* The runtime selects its own node, module roots and surfaces from these, so
|
|
93
|
+
* a caller replaces rather than layers: the launcher computes the whole set.
|
|
94
|
+
*/
|
|
95
|
+
readonly env?: NodeJS.ProcessEnv;
|
|
91
96
|
/** Working directory for the child process. */
|
|
92
97
|
readonly cwd?: string;
|
|
93
98
|
/**
|
|
94
99
|
* Answer one elicitation. Omit to fail closed: every approval then cancels,
|
|
95
|
-
* which is what
|
|
100
|
+
* which is what the runtime expects from a host that cannot present the request.
|
|
96
101
|
*/
|
|
97
102
|
readonly onElicitation?: (request: LcuElicitationRequest, signal: AbortSignal) => Promise<LcuElicitationResponse>;
|
|
98
103
|
/** Called whenever the server's tool list changes. */
|
|
99
104
|
readonly onToolsChanged?: (tools: readonly LcuTool[]) => void;
|
|
100
105
|
/** Receives child-process stderr lines; never model-visible. */
|
|
101
106
|
readonly onStderr?: (line: string) => void;
|
|
107
|
+
/** Receives control-channel decisions, for the diagnostic log. */
|
|
108
|
+
readonly onDiag?: (message: string) => void;
|
|
102
109
|
}
|
|
103
110
|
/** Where a request is in its lifecycle, for a diagnostic that names the stage. */
|
|
104
111
|
export type LcuStage = 'spawn' | 'initialize' | 'tools/list' | 'tools/call' | 'turn_ended';
|
|
@@ -121,7 +128,7 @@ export declare class LcuError extends Error {
|
|
|
121
128
|
*
|
|
122
129
|
* The runtime reports its own cleanup timeout as an ordinary error result with a
|
|
123
130
|
* recognizable detail. Missing it would let a stalled cleanup look like a
|
|
124
|
-
* healthy turn, which is exactly what
|
|
131
|
+
* healthy turn, which is exactly what the runtime's contract asks a host not to do.
|
|
125
132
|
*
|
|
126
133
|
* @param result - the failed call's result.
|
|
127
134
|
* @returns the classified error, or `undefined` when the call succeeded.
|
|
@@ -130,7 +137,7 @@ export declare function classifyTurnEndFailure(result: LcuCallResult): LcuError
|
|
|
130
137
|
/**
|
|
131
138
|
* Answer one elicitation, failing closed on every unexpected shape.
|
|
132
139
|
*
|
|
133
|
-
*
|
|
140
|
+
* The runtime requires this exact discipline: a host that cannot present the request,
|
|
134
141
|
* a handler that throws, or an answer that is not one of the three actions must
|
|
135
142
|
* all end as `cancel`, because anything else would silently grant desktop access.
|
|
136
143
|
*
|
|
@@ -141,9 +148,9 @@ export declare function classifyTurnEndFailure(result: LcuCallResult): LcuError
|
|
|
141
148
|
*/
|
|
142
149
|
export declare function resolveElicitation(handler: LcuConnectionOptions['onElicitation'], request: LcuElicitationRequest, activeCalls?: ReadonlySet<AbortSignal>): Promise<LcuElicitationResponse>;
|
|
143
150
|
/**
|
|
144
|
-
* One long-lived connection to the
|
|
151
|
+
* One long-lived connection to the runtime's MCP server.
|
|
145
152
|
*
|
|
146
|
-
* The connection is per Agent/Session:
|
|
153
|
+
* The connection is per Agent/Session: the runtime carries a persistent JavaScript
|
|
147
154
|
* session on its side, and its approvals are scoped to a real host session and
|
|
148
155
|
* turn, so sharing one connection across agents would interleave both.
|
|
149
156
|
*/
|
|
@@ -164,7 +171,7 @@ export declare class LcuConnection {
|
|
|
164
171
|
/** The tools the model may see, in server order. */
|
|
165
172
|
modelTools(): LcuTool[];
|
|
166
173
|
/**
|
|
167
|
-
* Spawn
|
|
174
|
+
* Spawn the runtime, complete the MCP handshake, and discover tools.
|
|
168
175
|
*
|
|
169
176
|
* @throws {LcuError} when the process cannot start or the handshake fails.
|
|
170
177
|
*/
|
|
@@ -192,7 +199,14 @@ export declare class LcuConnection {
|
|
|
192
199
|
* @param event - `Stop`, `Interrupt`, or `SubagentStop`.
|
|
193
200
|
*/
|
|
194
201
|
turnEnded(sessionId: string, turnId: string, event?: LcuTurnEndEvent): Promise<void>;
|
|
195
|
-
/**
|
|
202
|
+
/**
|
|
203
|
+
* Whether the explicit per-app Stop is actually available.
|
|
204
|
+
*
|
|
205
|
+
* The socket path alone is not the answer: a configuration that interposes no
|
|
206
|
+
* lifecycle service sets nothing up to serve it, and reporting a channel that
|
|
207
|
+
* cannot be reached would turn "this is not supported here" into a connection
|
|
208
|
+
* error the caller has to interpret.
|
|
209
|
+
*/
|
|
196
210
|
get hasHostControl(): boolean;
|
|
197
211
|
/**
|
|
198
212
|
* List the applications the runtime currently holds for one turn.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,2CAA2C;AAC3C,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9C;AAED,iDAAiD;AACjD,MAAM,MAAM,eAAe,GACvB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAA;AAE9D,sCAAsC;AACtC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAA;IAC5C,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAA;IACzB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;CACrC;AAED,8DAA8D;AAC9D,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAA;IAClC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACxC,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAChC;AAED,uEAAuE;AACvE,MAAM,MAAM,sBAAsB,GAC9B;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,GACnH;IAAE,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;CAAE,GAC9B;IAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAA;CAAE,CAAA;AAEjC,6DAA6D;AAC7D,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The control channel between this plugin and the runtime's Sky service.
|
|
3
|
+
*
|
|
4
|
+
* The runtime can hold an application open for a turn — that is what lets a
|
|
5
|
+
* later call act on the same window. Releasing one early needs the runtime's own
|
|
6
|
+
* control API, and that API lives inside the runtime's process, reachable only
|
|
7
|
+
* from the Sky service wrapping it.
|
|
8
|
+
*
|
|
9
|
+
* So this is a relay. The wrapper inside the runtime connects first and becomes
|
|
10
|
+
* the *service*; a request then arrives from the connection's client, is
|
|
11
|
+
* forwarded to the service, and the service's answer is relayed back. No second
|
|
12
|
+
* process is involved: the socket the child was told about is served here.
|
|
13
|
+
*
|
|
14
|
+
* The relay deliberately does not decide anything. Whether a session and turn are
|
|
15
|
+
* real, and whether the application is actually being held, are questions only
|
|
16
|
+
* the wrapper can answer, because only it has the turn metadata the runtime keys
|
|
17
|
+
* that state by. A relay that guessed would turn "not yours to stop" into "done".
|
|
18
|
+
*
|
|
19
|
+
* Wire format, one JSON object per line:
|
|
20
|
+
* service -> here {"type":"service"} first, then contexts, then replies
|
|
21
|
+
* here -> service {"id":N,"type":"status"|"stop",…}
|
|
22
|
+
* client -> here {"type":"status"|"stop",…}
|
|
23
|
+
* here -> client {"ok":true,"result":…} or {"ok":false,"error":"…"}
|
|
24
|
+
*
|
|
25
|
+
* @module dsh-plugin-lcu/control
|
|
26
|
+
*/
|
|
27
|
+
/** The relay. */
|
|
28
|
+
export declare class ControlServer {
|
|
29
|
+
#private;
|
|
30
|
+
private constructor();
|
|
31
|
+
/**
|
|
32
|
+
* Serve one socket path.
|
|
33
|
+
*
|
|
34
|
+
* @param socketPath - the path the child was told about.
|
|
35
|
+
* @param onDiag - the diagnostic sink.
|
|
36
|
+
* @returns the running relay.
|
|
37
|
+
*/
|
|
38
|
+
static open(socketPath: string, onDiag?: (message: string) => void): Promise<ControlServer>;
|
|
39
|
+
/**
|
|
40
|
+
* Whether the runtime's service has connected.
|
|
41
|
+
*
|
|
42
|
+
* This is the honest answer to "is the per-app Stop reachable": the path
|
|
43
|
+
* existing means nothing, because a configuration with no wrapper never
|
|
44
|
+
* connects to it.
|
|
45
|
+
*/
|
|
46
|
+
get connected(): boolean;
|
|
47
|
+
/** The turn contexts the service last reported, for diagnostics only. */
|
|
48
|
+
get contexts(): readonly Record<string, unknown>[];
|
|
49
|
+
/** Push one message to the service, for a caller that does not expect an answer. */
|
|
50
|
+
notify(message: Record<string, unknown>): void;
|
|
51
|
+
/** Stop serving. Requests already in flight are answered as failures. */
|
|
52
|
+
close(): Promise<void>;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=control.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control.d.ts","sourceRoot":"","sources":["../../src/control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAcH,iBAAiB;AACjB,qBAAa,aAAa;;IAUxB,OAAO;IAKP;;;;;;OAMG;WACU,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC;IAejG;;;;;;OAMG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,yEAAyE;IACzE,IAAI,QAAQ,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAEjD;IA6GD,oFAAoF;IACpF,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9C,yEAAyE;IACnE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAkB7B"}
|
package/lib/types/diag.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Best-effort diagnostic log for the
|
|
2
|
+
* Best-effort diagnostic log for the attach, launch and approval path.
|
|
3
3
|
*
|
|
4
4
|
* The harness exposes plugin logs only through surfaces a running session
|
|
5
5
|
* cannot read, and a failing `agent/created` listener is swallowed silently. So
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The agent-host guard.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
4
|
+
* The application hosting the agent is refused, because
|
|
5
5
|
* computer use can click anything an approved app shows — including the very
|
|
6
6
|
* approval prompt — so approving the host would let the agent approve itself.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* The runtime's own shared client does this; a host that replaces that client owns the
|
|
9
9
|
* rule. This is the DSH implementation: the agent's own process ancestry plus a
|
|
10
10
|
* static list of dedicated agent hosts and terminals.
|
|
11
11
|
*
|