salt-agent-sdk 0.1.0 → 0.19.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/LICENSE +21 -0
- package/README.md +941 -30
- package/dist/actions.d.ts +21 -5
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +673 -54
- package/dist/actions.js.map +1 -1
- package/dist/ask.d.ts +83 -0
- package/dist/ask.d.ts.map +1 -0
- package/dist/ask.js +215 -0
- package/dist/ask.js.map +1 -0
- package/dist/chatPrivacy.d.ts +34 -0
- package/dist/chatPrivacy.d.ts.map +1 -0
- package/dist/chatPrivacy.js +60 -0
- package/dist/chatPrivacy.js.map +1 -0
- package/dist/client.d.ts +3123 -35
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +1267 -143
- package/dist/client.js.map +1 -1
- package/dist/config.d.ts +16 -6
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +16 -5
- package/dist/config.js.map +1 -1
- package/dist/crypto.d.ts +62 -0
- package/dist/crypto.d.ts.map +1 -1
- package/dist/crypto.js +121 -0
- package/dist/crypto.js.map +1 -1
- package/dist/delegations.d.ts +25 -8
- package/dist/delegations.d.ts.map +1 -1
- package/dist/delegations.js +67 -11
- package/dist/delegations.js.map +1 -1
- package/dist/device/client.d.ts +161 -0
- package/dist/device/client.d.ts.map +1 -0
- package/dist/device/client.js +601 -0
- package/dist/device/client.js.map +1 -0
- package/dist/device/host.d.ts +222 -0
- package/dist/device/host.d.ts.map +1 -0
- package/dist/device/host.js +891 -0
- package/dist/device/host.js.map +1 -0
- package/dist/device/http.d.ts +12 -0
- package/dist/device/http.d.ts.map +1 -0
- package/dist/device/http.js +124 -0
- package/dist/device/http.js.map +1 -0
- package/dist/device/index.d.ts +5 -0
- package/dist/device/index.d.ts.map +1 -0
- package/dist/device/index.js +27 -0
- package/dist/device/index.js.map +1 -0
- package/dist/device/protocol.d.ts +312 -0
- package/dist/device/protocol.d.ts.map +1 -0
- package/dist/device/protocol.js +435 -0
- package/dist/device/protocol.js.map +1 -0
- package/dist/identities.d.ts +9 -2
- package/dist/identities.d.ts.map +1 -1
- package/dist/identities.js +33 -3
- package/dist/identities.js.map +1 -1
- package/dist/identity.d.ts +155 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +196 -0
- package/dist/identity.js.map +1 -0
- package/dist/identityShare.d.ts +129 -0
- package/dist/identityShare.d.ts.map +1 -0
- package/dist/identityShare.js +308 -0
- package/dist/identityShare.js.map +1 -0
- package/dist/ids.d.ts +11 -0
- package/dist/ids.d.ts.map +1 -0
- package/dist/ids.js +17 -0
- package/dist/ids.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -1
- package/dist/reconcile.d.ts +25 -0
- package/dist/reconcile.d.ts.map +1 -0
- package/dist/reconcile.js +60 -0
- package/dist/reconcile.js.map +1 -0
- package/dist/recovery.d.ts +51 -0
- package/dist/recovery.d.ts.map +1 -0
- package/dist/recovery.js +59 -0
- package/dist/recovery.js.map +1 -0
- package/dist/register.d.ts +32 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +65 -0
- package/dist/register.js.map +1 -0
- package/dist/scriptJob.d.ts +92 -0
- package/dist/scriptJob.d.ts.map +1 -0
- package/dist/scriptJob.js +270 -0
- package/dist/scriptJob.js.map +1 -0
- package/dist/sessions.d.ts +131 -0
- package/dist/sessions.d.ts.map +1 -0
- package/dist/sessions.js +240 -0
- package/dist/sessions.js.map +1 -0
- package/dist/socket.d.ts +115 -0
- package/dist/socket.d.ts.map +1 -0
- package/dist/socket.js +1038 -0
- package/dist/socket.js.map +1 -0
- package/dist/webhook.d.ts +627 -28
- package/dist/webhook.d.ts.map +1 -1
- package/dist/webhook.js +1388 -84
- package/dist/webhook.js.map +1 -1
- package/dist/work.d.ts +57 -0
- package/dist/work.d.ts.map +1 -0
- package/dist/work.js +213 -0
- package/dist/work.js.map +1 -0
- package/package.json +26 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"host.js","sourceRoot":"","sources":["../../src/device/host.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type DeviceClientTransport } from "./client.js";
|
|
2
|
+
import { type DeviceHostTransport } from "./host.js";
|
|
3
|
+
export interface DeviceHttpOptions {
|
|
4
|
+
host: string;
|
|
5
|
+
apiKey: string;
|
|
6
|
+
fetchImpl?: typeof fetch;
|
|
7
|
+
}
|
|
8
|
+
/** Agent-side transport. `apiKey` is the ACTING AGENT's key. */
|
|
9
|
+
export declare function httpDeviceAgentTransport(opts: DeviceHttpOptions): DeviceClientTransport;
|
|
10
|
+
/** Device-side transport. `apiKey` is the DEVICE's own key. */
|
|
11
|
+
export declare function httpDeviceHostTransport(opts: DeviceHttpOptions): DeviceHostTransport;
|
|
12
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/device/http.ts"],"names":[],"mappings":"AAYA,OAAO,EAA0B,KAAK,qBAAqB,EAA4C,MAAM,aAAa,CAAC;AAC3H,OAAO,EAA8C,KAAK,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAIjG,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AA0BD,gEAAgE;AAChE,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,iBAAiB,GAAG,qBAAqB,CAsDvF;AAED,+DAA+D;AAC/D,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,iBAAiB,GAAG,mBAAmB,CAqCpF"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// Real transports for the device client and host, wired to a Salt deployment
|
|
3
|
+
// over HTTPS. The pure logic in client.ts / host.ts takes these as injected
|
|
4
|
+
// dependencies; tests pass fakes instead.
|
|
5
|
+
//
|
|
6
|
+
// These do the two things the pure modules deliberately leave out: the device
|
|
7
|
+
// REST calls (open/stop/beat/counts) and the encrypt-and-post of a lane
|
|
8
|
+
// message. They still touch NO screen and NO input -- a result's bytes
|
|
9
|
+
// (a screenshot, a file) are produced by the host's injected handler and only
|
|
10
|
+
// encrypted here.
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.httpDeviceAgentTransport = httpDeviceAgentTransport;
|
|
13
|
+
exports.httpDeviceHostTransport = httpDeviceHostTransport;
|
|
14
|
+
const crypto_js_1 = require("../crypto.js");
|
|
15
|
+
const client_js_1 = require("./client.js");
|
|
16
|
+
const host_js_1 = require("./host.js");
|
|
17
|
+
const protocol_js_1 = require("./protocol.js");
|
|
18
|
+
async function call(opts, method, path, body) {
|
|
19
|
+
const f = opts.fetchImpl ?? fetch;
|
|
20
|
+
const res = await f(`${opts.host.replace(/\/$/, "")}${path}`, {
|
|
21
|
+
method,
|
|
22
|
+
headers: { "api-key": opts.apiKey, "content-type": "application/json" },
|
|
23
|
+
body: body !== undefined ? JSON.stringify(body) : undefined,
|
|
24
|
+
});
|
|
25
|
+
let data = undefined;
|
|
26
|
+
const text = await res.text();
|
|
27
|
+
if (text) {
|
|
28
|
+
try {
|
|
29
|
+
data = JSON.parse(text);
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
data = text;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return { status: res.status, data: data };
|
|
36
|
+
}
|
|
37
|
+
/** Agent-side transport. `apiKey` is the ACTING AGENT's key. */
|
|
38
|
+
function httpDeviceAgentTransport(opts) {
|
|
39
|
+
return {
|
|
40
|
+
async openSession(deviceId, o) {
|
|
41
|
+
const { status, data } = await call(opts, "POST", `/api/v1/devices/${deviceId}/sessions`, o?.intent !== undefined ? { intent: o.intent } : undefined);
|
|
42
|
+
// 409 {code:"session_live", session_id}: this agent already controls the device.
|
|
43
|
+
if (status === 409 && data?.code === "session_live" && data.session_id !== undefined) {
|
|
44
|
+
throw new client_js_1.DeviceSessionLiveError(data.session_id);
|
|
45
|
+
}
|
|
46
|
+
// The server's own sentence (e.g. 422 "intent_too_long": the 140-character limit) is the error.
|
|
47
|
+
if (status >= 400)
|
|
48
|
+
throw new Error(typeof data?.error === "string" && data.error ? data.error : `openSession failed: ${status}`);
|
|
49
|
+
// 201 -> the session; 202 -> {session: {status: "queued", position}}.
|
|
50
|
+
const meta = (data?.session ?? data);
|
|
51
|
+
return meta;
|
|
52
|
+
},
|
|
53
|
+
async reattachSession(sessionId) {
|
|
54
|
+
const { status, data } = await call(opts, "POST", `/api/v1/device_sessions/${sessionId}/reattach`);
|
|
55
|
+
if (status === 409) {
|
|
56
|
+
const d = data;
|
|
57
|
+
throw new protocol_js_1.DeviceProtocolError("failed", `session ended: ${d?.end_reason ?? d?.code ?? "ended"}`);
|
|
58
|
+
}
|
|
59
|
+
if (status >= 400)
|
|
60
|
+
throw new Error(`reattachSession failed: ${status}`);
|
|
61
|
+
return data;
|
|
62
|
+
},
|
|
63
|
+
async fetchSession(sessionId) {
|
|
64
|
+
const { status, data } = await call(opts, "GET", `/api/v1/device_sessions/${sessionId}`);
|
|
65
|
+
if (status >= 400)
|
|
66
|
+
throw new Error(`fetchSession failed: ${status}`);
|
|
67
|
+
return (data?.session ?? data);
|
|
68
|
+
},
|
|
69
|
+
async stopSession(sessionId) {
|
|
70
|
+
await call(opts, "POST", `/api/v1/device_sessions/${sessionId}/stop`);
|
|
71
|
+
},
|
|
72
|
+
async postCommand(plaintext, readers) {
|
|
73
|
+
const ciphertext = await (0, crypto_js_1.encryptFor)(plaintext, readers.publicKeys);
|
|
74
|
+
const { status } = await call(opts, "POST", `/api/v1/messages`, {
|
|
75
|
+
chat_id: readers.chatId,
|
|
76
|
+
message: ciphertext,
|
|
77
|
+
quiet: true,
|
|
78
|
+
});
|
|
79
|
+
if (status >= 400)
|
|
80
|
+
throw new Error(`postCommand failed: ${status}`);
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/** Device-side transport. `apiKey` is the DEVICE's own key. */
|
|
85
|
+
function httpDeviceHostTransport(opts) {
|
|
86
|
+
return {
|
|
87
|
+
async postResult(plaintext, readers) {
|
|
88
|
+
const ciphertext = await (0, crypto_js_1.encryptFor)(plaintext, readers.publicKeys);
|
|
89
|
+
const { status } = await call(opts, "POST", `/api/v1/messages`, {
|
|
90
|
+
chat_id: readers.chatId,
|
|
91
|
+
message: ciphertext,
|
|
92
|
+
quiet: true,
|
|
93
|
+
});
|
|
94
|
+
if (status >= 400)
|
|
95
|
+
throw new Error(`postResult failed: ${status}`);
|
|
96
|
+
},
|
|
97
|
+
async beat(sessionId, report) {
|
|
98
|
+
const { status } = await call(opts, "POST", `/api/v1/device_sessions/${sessionId}/beat`, report);
|
|
99
|
+
if (status === 409)
|
|
100
|
+
throw new host_js_1.DeviceBeatOverError("session over");
|
|
101
|
+
if (status >= 400)
|
|
102
|
+
throw new Error(`beat failed: ${status}`);
|
|
103
|
+
},
|
|
104
|
+
async reportCounts(sessionId, counts, report) {
|
|
105
|
+
await call(opts, "PATCH", `/api/v1/device_sessions/${sessionId}/counts`, { counts, ...(report ?? {}) });
|
|
106
|
+
},
|
|
107
|
+
async stop(sessionId, reason) {
|
|
108
|
+
await call(opts, "POST", `/api/v1/device_sessions/${sessionId}/stop`, { reason });
|
|
109
|
+
},
|
|
110
|
+
// The ONLY place the pause/resume endpoint shapes live (contract §3):
|
|
111
|
+
// POST /device_sessions/:id/pause {reason} and /resume, by the device's key.
|
|
112
|
+
async pause(sessionId, reason) {
|
|
113
|
+
const { status } = await call(opts, "POST", `/api/v1/device_sessions/${sessionId}/pause`, { reason });
|
|
114
|
+
if (status >= 400)
|
|
115
|
+
throw new Error(`pause failed: ${status}`);
|
|
116
|
+
},
|
|
117
|
+
async resume(sessionId) {
|
|
118
|
+
const { status } = await call(opts, "POST", `/api/v1/device_sessions/${sessionId}/resume`);
|
|
119
|
+
if (status >= 400)
|
|
120
|
+
throw new Error(`resume failed: ${status}`);
|
|
121
|
+
},
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/device/http.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/device/index.ts"],"names":[],"mappings":"AAMA,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
// Device control (remote control of the owner's own machines). Behind
|
|
18
|
+
// salt-api's `Feature :remote_control`; every route 404s while the flag is off.
|
|
19
|
+
//
|
|
20
|
+
// The protocol grammar lives in salt-api/docs/DEVICE_PROTOCOL.md and is
|
|
21
|
+
// mirrored in protocol.ts. This module ships the agent client, the device host
|
|
22
|
+
// (minus its two injected capture/input seams) and real HTTP transports.
|
|
23
|
+
__exportStar(require("./protocol.js"), exports);
|
|
24
|
+
__exportStar(require("./client.js"), exports);
|
|
25
|
+
__exportStar(require("./host.js"), exports);
|
|
26
|
+
__exportStar(require("./http.js"), exports);
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/device/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sEAAsE;AACtE,gFAAgF;AAChF,EAAE;AACF,wEAAwE;AACxE,+EAA+E;AAC/E,yEAAyE;AACzE,gDAA8B;AAC9B,8CAA4B;AAC5B,4CAA0B;AAC1B,4CAA0B"}
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
/** Grammar version. An incoming message with any other `v` is answered
|
|
2
|
+
* `error { code: "unsupported" }`, never guessed at. */
|
|
3
|
+
export declare const DEVICE_PROTOCOL_VERSION: 1;
|
|
4
|
+
/** A single lane message carries at most this much PLAINTEXT. Larger files or
|
|
5
|
+
* images are refused with `too_large` (a later phase may chunk). Mirrors
|
|
6
|
+
* salt-api's own per-message plaintext cap. */
|
|
7
|
+
export declare const MAX_DEVICE_PLAINTEXT_BYTES: number;
|
|
8
|
+
/** Per-session rate ceilings the device enforces. Over either, the device
|
|
9
|
+
* answers `busy` and does not run the command. */
|
|
10
|
+
export declare const MAX_COMMANDS_PER_SECOND = 5;
|
|
11
|
+
export declare const MAX_OBSERVE_PER_SECOND = 1;
|
|
12
|
+
/** A command is valid for this long after the client built it. The client sets
|
|
13
|
+
* `exp = now + COMMAND_TTL_MS` (epoch MILLISECONDS); the host refuses a
|
|
14
|
+
* command whose `exp` has passed with `expired`, without executing it. */
|
|
15
|
+
export declare const COMMAND_TTL_MS = 30000;
|
|
16
|
+
/** The host remembers this many results per session, by command `id`; a
|
|
17
|
+
* repeated `id` returns the stored result without executing. */
|
|
18
|
+
export declare const RESULT_CACHE_SIZE = 64;
|
|
19
|
+
/** Ops that change what is on the machine's screen/input state. The host
|
|
20
|
+
* serialises these device-wide (across every session on the machine) behind
|
|
21
|
+
* one mutex. `observe`, `list_apps` and the file ops do not take it. */
|
|
22
|
+
export declare const MUTATING_OPS: readonly string[];
|
|
23
|
+
/** Why a session is paused (device -> Salt -> agent). `person_active` and
|
|
24
|
+
* `secure_field` are the contract's two; `person_paused` is an explicit tray
|
|
25
|
+
* pause or hotkey. Free-form strings are tolerated on the wire. */
|
|
26
|
+
export type DevicePauseReason = "person_active" | "secure_field" | "person" | "other" | (string & {});
|
|
27
|
+
/** Commands an agent sends to a device. */
|
|
28
|
+
export type DeviceOp = "observe" | "click" | "type" | "key" | "scroll" | "submit" | "focus_app" | "list_apps" | "read_file" | "write_file" | "task" | "stop" | "cancel" | "shell";
|
|
29
|
+
/** Results a device sends back to an agent. */
|
|
30
|
+
export type DeviceResultOp = "ack" | "observation" | "apps" | "file" | "ask" | "error" | "ended" | "progress" | "task_result";
|
|
31
|
+
export declare const AGENT_OPS: readonly DeviceOp[];
|
|
32
|
+
export declare const DEVICE_RESULT_OPS: readonly DeviceResultOp[];
|
|
33
|
+
/** Error codes a device may answer with (DEVICE_PROTOCOL.md). */
|
|
34
|
+
export type DeviceErrorCode = "forbidden" | "out_of_scope" | "needs_approval" | "unsupported" | "out_of_order" | "bad_args" | "too_large" | "busy" | "clock_skew" | "expired" | "paused" | "failed";
|
|
35
|
+
export declare const DEVICE_ERROR_CODES: readonly DeviceErrorCode[];
|
|
36
|
+
/** The `device.*` mandate capability each agent op requires. `stop` needs
|
|
37
|
+
* none. `shell` maps to the reserved `device.shell`, which the server refuses
|
|
38
|
+
* in P0, so a host answers it `forbidden` without consulting scope. */
|
|
39
|
+
export declare const CAPABILITY_FOR_OP: Record<DeviceOp, string | null>;
|
|
40
|
+
/** The per-class count a device reports to the server (never content). A
|
|
41
|
+
* `stop` or an op that errors before running maps to `error` or nothing; the
|
|
42
|
+
* host decides. */
|
|
43
|
+
export type DeviceCountClass = "observe" | "click" | "type" | "key" | "scroll" | "file_read" | "file_write" | "app_focus" | "task" | "command" | "look" | "error";
|
|
44
|
+
export declare const DEVICE_COUNT_CLASSES: readonly DeviceCountClass[];
|
|
45
|
+
/** Map a successfully-run op to the metadata class it increments. `list_apps`
|
|
46
|
+
* and `focus_app` both count as `app_focus`; file ops split read/write;
|
|
47
|
+
* `stop`/`shell` have no count. Returns null when nothing should be counted. */
|
|
48
|
+
export declare function countClassForOp(op: DeviceOp): DeviceCountClass | null;
|
|
49
|
+
export interface ObserveArgs {
|
|
50
|
+
target: "screen" | "window";
|
|
51
|
+
display?: number;
|
|
52
|
+
window?: string;
|
|
53
|
+
max_width?: number;
|
|
54
|
+
format?: "png" | "jpeg";
|
|
55
|
+
/** Which representation the agent wants back. The device PREFERS and defaults
|
|
56
|
+
* to `ui` (a structured snapshot): it is smaller, machine-readable, auditable
|
|
57
|
+
* and does not read pixels. `pixels` asks for a rendered image (the raw
|
|
58
|
+
* framebuffer path) and `both` asks for a tree with an image beside it; a
|
|
59
|
+
* device may still answer `ui` only if its pixel primitive is absent. */
|
|
60
|
+
want?: "ui" | "pixels" | "both";
|
|
61
|
+
}
|
|
62
|
+
export interface ElementRef {
|
|
63
|
+
/** The observation id these coordinates / this node were read from. */
|
|
64
|
+
obs: string;
|
|
65
|
+
/** A `UiNode.id` within that observation. Present for a SEMANTIC action
|
|
66
|
+
* (invoke / set value / focus the named element); absent for a raw
|
|
67
|
+
* coordinate action. */
|
|
68
|
+
node: string;
|
|
69
|
+
}
|
|
70
|
+
export interface ClickArgs {
|
|
71
|
+
x: number;
|
|
72
|
+
y: number;
|
|
73
|
+
button?: "left" | "right";
|
|
74
|
+
count?: 1 | 2;
|
|
75
|
+
obs?: string;
|
|
76
|
+
/** When present, the device performs the SEMANTIC action on this element
|
|
77
|
+
* (its accessibility `press`), not a coordinate click. Preferred: it is
|
|
78
|
+
* robust to layout and logs the element, not an (x,y). x/y remain the
|
|
79
|
+
* fallback for elements the tree cannot name (a canvas, a custom view). */
|
|
80
|
+
element?: ElementRef;
|
|
81
|
+
}
|
|
82
|
+
export interface TypeArgs {
|
|
83
|
+
text: string;
|
|
84
|
+
/** When present, set the value of / type into this named field via the
|
|
85
|
+
* accessibility layer, rather than typing at whatever currently has focus. */
|
|
86
|
+
into?: ElementRef;
|
|
87
|
+
}
|
|
88
|
+
export interface SubmitArgs {
|
|
89
|
+
/** The named field (or form control) to confirm through the accessibility layer. */
|
|
90
|
+
element: ElementRef;
|
|
91
|
+
}
|
|
92
|
+
export interface KeyArgs {
|
|
93
|
+
keys: string[];
|
|
94
|
+
}
|
|
95
|
+
export interface ScrollArgs {
|
|
96
|
+
x: number;
|
|
97
|
+
y: number;
|
|
98
|
+
dx: number;
|
|
99
|
+
dy: number;
|
|
100
|
+
}
|
|
101
|
+
export interface FocusAppArgs {
|
|
102
|
+
app: string;
|
|
103
|
+
}
|
|
104
|
+
export interface ReadFileArgs {
|
|
105
|
+
path: string;
|
|
106
|
+
}
|
|
107
|
+
export interface WriteFileArgs {
|
|
108
|
+
path: string;
|
|
109
|
+
content_b64: string;
|
|
110
|
+
}
|
|
111
|
+
/** One node of a structured UI snapshot: a window, a control, a menu item.
|
|
112
|
+
* This is what the PREFERRED observe path returns instead of pixels — the UI
|
|
113
|
+
* as the operating system's own accessibility layer already describes it. */
|
|
114
|
+
export interface UiNode {
|
|
115
|
+
/** Stable within THIS observation, so a later semantic action can name it
|
|
116
|
+
* (ElementRef.node). Not stable across observations. */
|
|
117
|
+
id: string;
|
|
118
|
+
/** The accessibility role: "window", "button", "textfield", "menuitem", ... */
|
|
119
|
+
role: string;
|
|
120
|
+
/** The accessible label / title, when the element has one. */
|
|
121
|
+
name?: string;
|
|
122
|
+
/** The current value (a text field's contents, a slider's position, ...). A
|
|
123
|
+
* redaction pass blanks this for anything the floor must never reveal. */
|
|
124
|
+
value?: string;
|
|
125
|
+
/** Screen bounds, so the agent can still reason spatially and so a raw
|
|
126
|
+
* fallback action has coordinates if the semantic one is unavailable. */
|
|
127
|
+
bounds?: {
|
|
128
|
+
x: number;
|
|
129
|
+
y: number;
|
|
130
|
+
w: number;
|
|
131
|
+
h: number;
|
|
132
|
+
};
|
|
133
|
+
/** The owning app's bundle id / exe name. */
|
|
134
|
+
app?: string;
|
|
135
|
+
/** The semantic actions this element supports, e.g. ["press","setValue"]. */
|
|
136
|
+
actions?: string[];
|
|
137
|
+
children?: UiNode[];
|
|
138
|
+
}
|
|
139
|
+
export interface UiSnapshot {
|
|
140
|
+
/** The frontmost app at capture time (bundle id / exe). */
|
|
141
|
+
app?: string;
|
|
142
|
+
/** The frontmost window's title. */
|
|
143
|
+
window?: string;
|
|
144
|
+
root: UiNode;
|
|
145
|
+
}
|
|
146
|
+
/** The result of an `observe`. It carries a structured `ui` snapshot and/or a
|
|
147
|
+
* rendered image. The device prefers `ui`; `image_b64` and its size fields are
|
|
148
|
+
* present only when pixels were asked for (`want:"pixels"|"both"`) or the tree
|
|
149
|
+
* alone could not answer. At least one of `ui` / `image_b64` is always set. */
|
|
150
|
+
export interface ObservationResult {
|
|
151
|
+
obs: string;
|
|
152
|
+
ui?: UiSnapshot;
|
|
153
|
+
width?: number;
|
|
154
|
+
height?: number;
|
|
155
|
+
scale?: number;
|
|
156
|
+
format?: "png" | "jpeg";
|
|
157
|
+
image_b64?: string;
|
|
158
|
+
}
|
|
159
|
+
export interface AppsResult {
|
|
160
|
+
apps: Array<{
|
|
161
|
+
id: string;
|
|
162
|
+
name: string;
|
|
163
|
+
frontmost: boolean;
|
|
164
|
+
}>;
|
|
165
|
+
}
|
|
166
|
+
export interface FileResult {
|
|
167
|
+
path: string;
|
|
168
|
+
size: number;
|
|
169
|
+
content_b64: string;
|
|
170
|
+
}
|
|
171
|
+
export interface DeviceAskResult {
|
|
172
|
+
reason: string;
|
|
173
|
+
}
|
|
174
|
+
export interface ErrorResult {
|
|
175
|
+
code: DeviceErrorCode;
|
|
176
|
+
message?: string;
|
|
177
|
+
/** `out_of_order`, `expired`, `paused`: the seq the host will accept next. */
|
|
178
|
+
expected_seq?: number;
|
|
179
|
+
/** `paused`: why. */
|
|
180
|
+
reason?: DevicePauseReason;
|
|
181
|
+
/** `clock_skew`, `expired`: the device's clock (ms since epoch). */
|
|
182
|
+
now?: number;
|
|
183
|
+
}
|
|
184
|
+
export interface EndedResult {
|
|
185
|
+
reason: string;
|
|
186
|
+
}
|
|
187
|
+
/** Caps on what a task may say. The agent's side checks the same ones on what it
|
|
188
|
+
* receives, so neither end trusts the other's limits. */
|
|
189
|
+
export declare const TASK_GOAL_MAX = 2000;
|
|
190
|
+
export declare const TASK_DONE_WHEN_MAX = 500;
|
|
191
|
+
export declare const TASK_MAX_STEPS_MIN = 1;
|
|
192
|
+
export declare const TASK_MAX_STEPS_MAX = 60;
|
|
193
|
+
export declare const TASK_MAX_STEPS_DEFAULT = 30;
|
|
194
|
+
export declare const TASK_TIMEOUT_S_MIN = 10;
|
|
195
|
+
export declare const TASK_TIMEOUT_S_MAX = 600;
|
|
196
|
+
export declare const TASK_TIMEOUT_S_DEFAULT = 180;
|
|
197
|
+
export declare const PROGRESS_LINE_MAX = 140;
|
|
198
|
+
export declare const TASK_SUMMARY_MAX = 500;
|
|
199
|
+
export declare const TASK_STEP_LINE_MAX = 140;
|
|
200
|
+
export declare const TASK_RESULT_STEPS_MAX = 60;
|
|
201
|
+
export declare const TASK_CHECKED_WHAT_MAX = 200;
|
|
202
|
+
export declare const TASK_ID_MAX = 64;
|
|
203
|
+
/** The device sends `progress` at most this often (the host throttles). */
|
|
204
|
+
export declare const PROGRESS_MIN_INTERVAL_MS = 2000;
|
|
205
|
+
/** A task's command deadline on the device is `timeout_s` + this, not COMMAND_TTL_MS. */
|
|
206
|
+
export declare const TASK_DEVICE_GRACE_MS = 15000;
|
|
207
|
+
/** The agent waits `timeout_s` + this for the result before it cancels. */
|
|
208
|
+
export declare const TASK_CLIENT_GRACE_MS = 30000;
|
|
209
|
+
export interface TaskArgs {
|
|
210
|
+
/** What the person asked for, in plain words. 1..2000 characters. */
|
|
211
|
+
goal: string;
|
|
212
|
+
/** How the device should check it worked. At most 500 characters. */
|
|
213
|
+
done_when?: string;
|
|
214
|
+
/** 1..60, default 30. */
|
|
215
|
+
max_steps?: number;
|
|
216
|
+
/** Seconds, 10..600, default 180. */
|
|
217
|
+
timeout_s?: number;
|
|
218
|
+
}
|
|
219
|
+
/** One non-final line of a running task. `waiting` is true while a person is being asked. */
|
|
220
|
+
export interface Progress {
|
|
221
|
+
step: number;
|
|
222
|
+
of?: number;
|
|
223
|
+
line: string;
|
|
224
|
+
waiting?: boolean;
|
|
225
|
+
}
|
|
226
|
+
export type TaskStatus = "done" | "failed" | "stopped" | "denied" | "timeout" | "paused_out";
|
|
227
|
+
export declare const TASK_STATUSES: readonly TaskStatus[];
|
|
228
|
+
export type TaskStepKind = "command" | "look" | "observe" | "act" | "apps" | "ask" | "check";
|
|
229
|
+
export declare const TASK_STEP_KINDS: readonly TaskStepKind[];
|
|
230
|
+
export interface TaskStep {
|
|
231
|
+
n: number;
|
|
232
|
+
kind: TaskStepKind;
|
|
233
|
+
/** A command's text may appear here, truncated; its output never does. */
|
|
234
|
+
line: string;
|
|
235
|
+
ok: boolean;
|
|
236
|
+
}
|
|
237
|
+
export interface TaskResult {
|
|
238
|
+
/** The device's local record id (`t_<hex>`). */
|
|
239
|
+
task_id: string;
|
|
240
|
+
status: TaskStatus;
|
|
241
|
+
/** One or two plain sentences, at most 500 characters. */
|
|
242
|
+
summary: string;
|
|
243
|
+
checked: {
|
|
244
|
+
ok: boolean;
|
|
245
|
+
what: string;
|
|
246
|
+
} | null;
|
|
247
|
+
steps: TaskStep[];
|
|
248
|
+
commands: number;
|
|
249
|
+
duration_ms: number;
|
|
250
|
+
}
|
|
251
|
+
/** The task arguments, checked and with defaults filled in; unknown keys are dropped.
|
|
252
|
+
* A goal that is missing, empty or over 2000 characters, or a `done_when` over 500, is
|
|
253
|
+
* `bad_args` (the sender fixes the words; nothing is cut off silently). `max_steps` and
|
|
254
|
+
* `timeout_s` must be whole numbers and are clamped into their range. Throws
|
|
255
|
+
* DeviceProtocolError("bad_args"). Used by the agent before it sends and by the device
|
|
256
|
+
* before it runs. */
|
|
257
|
+
export declare function parseTaskArgs(body: unknown): TaskArgs & {
|
|
258
|
+
max_steps: number;
|
|
259
|
+
timeout_s: number;
|
|
260
|
+
};
|
|
261
|
+
/** The wire body of a `task` command: only the fields that were given. */
|
|
262
|
+
export declare function taskCommandBody(goal: string, opts?: {
|
|
263
|
+
doneWhen?: string;
|
|
264
|
+
maxSteps?: number;
|
|
265
|
+
timeoutS?: number;
|
|
266
|
+
}): TaskArgs;
|
|
267
|
+
/** A `progress` body, allow-listed with the caps applied; null when it is not one (no
|
|
268
|
+
* usable `step` or `line`). Nothing but `step`, `of`, `line` and `waiting` gets through. */
|
|
269
|
+
export declare function normalizeProgress(raw: unknown): Progress | null;
|
|
270
|
+
/** A fresh local task id, `t_<hex>`. */
|
|
271
|
+
export declare function newTaskId(rand?: () => number): string;
|
|
272
|
+
/** A `task_result` body, allow-listed field by field with type checks and caps. Used by the
|
|
273
|
+
* device on what its handler returned and by the agent on what the device sent, so extra
|
|
274
|
+
* fields never travel and a malformed one becomes a safe default rather than a throw:
|
|
275
|
+
* an unknown `status` reads `failed`, `steps` keeps the first 60 valid rows, strings are cut
|
|
276
|
+
* to their caps, numbers must be whole and non-negative. `fallback` fills what is missing. */
|
|
277
|
+
export declare function normalizeTaskResult(raw: unknown, fallback?: {
|
|
278
|
+
task_id?: string;
|
|
279
|
+
duration_ms?: number;
|
|
280
|
+
}): TaskResult;
|
|
281
|
+
export interface DeviceHeader {
|
|
282
|
+
v: number;
|
|
283
|
+
id: string;
|
|
284
|
+
seq: number;
|
|
285
|
+
op: string;
|
|
286
|
+
session: string;
|
|
287
|
+
re?: string;
|
|
288
|
+
/** Expiry, epoch milliseconds. Commands only; absent = never expires. */
|
|
289
|
+
exp?: number;
|
|
290
|
+
}
|
|
291
|
+
export interface DeviceMessage {
|
|
292
|
+
header: DeviceHeader;
|
|
293
|
+
/** The JSON body, or `undefined` when the marker stood alone. */
|
|
294
|
+
body?: unknown;
|
|
295
|
+
}
|
|
296
|
+
/** Turn a header + optional body into the plaintext of one lane message. The
|
|
297
|
+
* caller encrypts the returned string for the lane readers and posts it. */
|
|
298
|
+
export declare function encodeDeviceMessage(header: DeviceHeader, body?: unknown): string;
|
|
299
|
+
/** Parse the decrypted plaintext of a lane message. Returns the header + body,
|
|
300
|
+
* or `null` when the text is not a device message at all (it may be a plain
|
|
301
|
+
* chat line, which the caller ignores). Throws only on a message that LOOKS
|
|
302
|
+
* like one but is structurally broken, so the caller can answer `bad_args`. */
|
|
303
|
+
export declare function decodeDeviceMessage(plaintext: string): DeviceMessage | null;
|
|
304
|
+
export declare class DeviceProtocolError extends Error {
|
|
305
|
+
readonly code: DeviceErrorCode;
|
|
306
|
+
constructor(code: DeviceErrorCode, message?: string);
|
|
307
|
+
}
|
|
308
|
+
/** A ULID-shaped id for a command. The server treats it as an opaque token;
|
|
309
|
+
* the only property code here relies on is uniqueness. Sortable by time is a
|
|
310
|
+
* convenience for logs and nothing more (ordering is enforced by `seq`). */
|
|
311
|
+
export declare function deviceMessageId(now?: number, rand?: () => number): string;
|
|
312
|
+
//# sourceMappingURL=protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/device/protocol.ts"],"names":[],"mappings":"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"}
|