@beeos-ai/device-agent 0.6.0 → 0.7.1
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/dist/adapters/agent-gateway-client.d.ts +25 -0
- package/dist/adapters/agent-gateway-client.js +49 -0
- package/dist/adapters/agent-gateway-client.js.map +1 -1
- package/dist/adapters/user-file-uploader.d.ts +74 -0
- package/dist/adapters/user-file-uploader.js +78 -0
- package/dist/adapters/user-file-uploader.js.map +1 -0
- package/dist/app/plugin-commands/registry.d.ts +41 -0
- package/dist/app/plugin-commands/registry.js +62 -0
- package/dist/app/plugin-commands/registry.js.map +1 -0
- package/dist/app/plugin-commands/screenshot-command.d.ts +32 -0
- package/dist/app/plugin-commands/screenshot-command.js +44 -0
- package/dist/app/plugin-commands/screenshot-command.js.map +1 -0
- package/dist/app/plugin-commands/types.d.ts +63 -0
- package/dist/app/plugin-commands/types.js +26 -0
- package/dist/app/plugin-commands/types.js.map +1 -0
- package/dist/app/screenshot-service.d.ts +68 -0
- package/dist/app/screenshot-service.js +64 -0
- package/dist/app/screenshot-service.js.map +1 -0
- package/dist/app/session-manager.d.ts +68 -0
- package/dist/app/session-manager.js +97 -0
- package/dist/app/session-manager.js.map +1 -1
- package/dist/bootstrap.js +5 -1
- package/dist/bootstrap.js.map +1 -1
- package/dist/inbound/acp/handlers/device.d.ts +9 -1
- package/dist/inbound/acp/handlers/device.js +9 -1
- package/dist/inbound/acp/handlers/device.js.map +1 -1
- package/dist/inbound/acp/handlers/initialize.d.ts +9 -5
- package/dist/inbound/acp/handlers/initialize.js +10 -6
- package/dist/inbound/acp/handlers/initialize.js.map +1 -1
- package/dist/inbound/acp/handlers/skills.d.ts +24 -2
- package/dist/inbound/acp/handlers/skills.js +31 -2
- package/dist/inbound/acp/handlers/skills.js.map +1 -1
- package/dist/plugins/acp/index.d.ts +8 -0
- package/dist/plugins/acp/index.js +60 -0
- package/dist/plugins/acp/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -18,11 +18,15 @@
|
|
|
18
18
|
* `supportsSessionList`. `loadSession` STAYS true: the fixed sid
|
|
19
19
|
* is durable across reconnects, so `session/load` can replay
|
|
20
20
|
* history and any in-flight assistant turn.
|
|
21
|
-
* - `
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
21
|
+
* - `skills: true` — device-agent registers a small set of native
|
|
22
|
+
* plugin commands (e.g. `/screenshot`) via `PluginCommandRegistry`;
|
|
23
|
+
* `skills/list` exposes them so the web slash-autocomplete picks
|
|
24
|
+
* them up. The shape stays compatible with OpenClaw skills (same
|
|
25
|
+
* `SkillInfo` schema), no protocol extensions are introduced.
|
|
26
|
+
* - `terminal` / `mcp` / `sessionCapabilities` stay false / empty —
|
|
27
|
+
* this agent intentionally does NOT implement those business
|
|
28
|
+
* surfaces (canvas/, cron/, terminal/, mcp/), and `Method not
|
|
29
|
+
* found` (-32601) is the documented response for such probes.
|
|
26
30
|
* - `forwardThinking` / `forwardToolCalls` from the client are
|
|
27
31
|
* surfaced on the returned options so callers can wire transport
|
|
28
32
|
* filtering (mirrors beeos-claw `transport.ts.forwardControl`).
|
|
@@ -18,11 +18,15 @@
|
|
|
18
18
|
* `supportsSessionList`. `loadSession` STAYS true: the fixed sid
|
|
19
19
|
* is durable across reconnects, so `session/load` can replay
|
|
20
20
|
* history and any in-flight assistant turn.
|
|
21
|
-
* - `
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
21
|
+
* - `skills: true` — device-agent registers a small set of native
|
|
22
|
+
* plugin commands (e.g. `/screenshot`) via `PluginCommandRegistry`;
|
|
23
|
+
* `skills/list` exposes them so the web slash-autocomplete picks
|
|
24
|
+
* them up. The shape stays compatible with OpenClaw skills (same
|
|
25
|
+
* `SkillInfo` schema), no protocol extensions are introduced.
|
|
26
|
+
* - `terminal` / `mcp` / `sessionCapabilities` stay false / empty —
|
|
27
|
+
* this agent intentionally does NOT implement those business
|
|
28
|
+
* surfaces (canvas/, cron/, terminal/, mcp/), and `Method not
|
|
29
|
+
* found` (-32601) is the documented response for such probes.
|
|
26
30
|
* - `forwardThinking` / `forwardToolCalls` from the client are
|
|
27
31
|
* surfaced on the returned options so callers can wire transport
|
|
28
32
|
* filtering (mirrors beeos-claw `transport.ts.forwardControl`).
|
|
@@ -39,7 +43,7 @@ export function buildInitializeResponse(opts = {}, params = {}) {
|
|
|
39
43
|
agentCapabilities: {
|
|
40
44
|
loadSession: true,
|
|
41
45
|
terminal: false,
|
|
42
|
-
skills:
|
|
46
|
+
skills: true,
|
|
43
47
|
multipleSessions: false,
|
|
44
48
|
mcp: {},
|
|
45
49
|
sessionCapabilities: {},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../src/inbound/acp/handlers/initialize.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"initialize.js","sourceRoot":"","sources":["../../../../src/inbound/acp/handlers/initialize.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAkDjE,MAAM,UAAU,uBAAuB,CACrC,OAA0B,EAAE,EAC5B,SAAkC,EAAE;IAEpC,wEAAwE;IACxE,oEAAoE;IACpE,MAAM,eAAe,GAAG,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC;IACvD,MAAM,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,IAAI,IAAI,CAAC;IACzD,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAE/D,OAAO;QACL,eAAe,EAAE,oBAAoB;QACrC,iBAAiB,EAAE;YACjB,WAAW,EAAE,IAAI;YACjB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,IAAI;YACZ,gBAAgB,EAAE,KAAK;YACvB,GAAG,EAAE,EAAE;YACP,mBAAmB,EAAE,EAAE;YACvB,kBAAkB,EAAE;gBAClB,KAAK,EAAE,IAAI;gBACX,KAAK,EAAE,KAAK;gBACZ,eAAe,EAAE,IAAI;aACtB;SACF;QACD,SAAS,EAAE;YACT,IAAI,EAAE,IAAI,CAAC,SAAS,IAAI,cAAc;YACtC,KAAK,EAAE,IAAI,CAAC,UAAU,IAAI,oBAAoB;YAC9C,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO;SACjC;QACD,KAAK,EAAE,EAAE;QACT,WAAW,EAAE,EAAE;KAChB,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ACP `skills/list` handler.
|
|
2
|
+
* ACP `skills/list` handler.
|
|
3
|
+
*
|
|
4
|
+
* Sources skills from the optional `PluginCommandRegistry` so the same
|
|
5
|
+
* `/screenshot` definition that drives `SessionManager.prompt`'s prefix
|
|
6
|
+
* match also surfaces in the slash-autocomplete dropdown — single source
|
|
7
|
+
* of truth, no schema drift between `skills/list` and the actual
|
|
8
|
+
* registered handlers.
|
|
9
|
+
*
|
|
10
|
+
* Wire shape mirrors `@beeos-ai/beeos-types/acp` `SkillInfo` exactly:
|
|
11
|
+
* `{ name, description, emoji?, always?, bundled? }`. The protocol field
|
|
12
|
+
* set is intentionally NOT extended — OpenClaw and the web SDK already
|
|
13
|
+
* read this same surface, so any change here would force a coordinated
|
|
14
|
+
* three-repo rollout.
|
|
3
15
|
*/
|
|
16
|
+
import type { PluginCommandRegistry } from "../../../app/plugin-commands/registry.js";
|
|
17
|
+
export interface AcpSkillInfo {
|
|
18
|
+
name: string;
|
|
19
|
+
description: string;
|
|
20
|
+
emoji?: string;
|
|
21
|
+
always?: boolean;
|
|
22
|
+
bundled?: boolean;
|
|
23
|
+
}
|
|
4
24
|
export declare class AcpSkillsHandlers {
|
|
25
|
+
private readonly registry?;
|
|
26
|
+
constructor(registry?: PluginCommandRegistry | undefined);
|
|
5
27
|
list(): Promise<{
|
|
6
|
-
skills:
|
|
28
|
+
skills: AcpSkillInfo[];
|
|
7
29
|
}>;
|
|
8
30
|
}
|
|
@@ -1,9 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* ACP `skills/list` handler.
|
|
2
|
+
* ACP `skills/list` handler.
|
|
3
|
+
*
|
|
4
|
+
* Sources skills from the optional `PluginCommandRegistry` so the same
|
|
5
|
+
* `/screenshot` definition that drives `SessionManager.prompt`'s prefix
|
|
6
|
+
* match also surfaces in the slash-autocomplete dropdown — single source
|
|
7
|
+
* of truth, no schema drift between `skills/list` and the actual
|
|
8
|
+
* registered handlers.
|
|
9
|
+
*
|
|
10
|
+
* Wire shape mirrors `@beeos-ai/beeos-types/acp` `SkillInfo` exactly:
|
|
11
|
+
* `{ name, description, emoji?, always?, bundled? }`. The protocol field
|
|
12
|
+
* set is intentionally NOT extended — OpenClaw and the web SDK already
|
|
13
|
+
* read this same surface, so any change here would force a coordinated
|
|
14
|
+
* three-repo rollout.
|
|
3
15
|
*/
|
|
4
16
|
export class AcpSkillsHandlers {
|
|
17
|
+
registry;
|
|
18
|
+
constructor(registry) {
|
|
19
|
+
this.registry = registry;
|
|
20
|
+
}
|
|
5
21
|
async list() {
|
|
6
|
-
|
|
22
|
+
if (!this.registry)
|
|
23
|
+
return { skills: [] };
|
|
24
|
+
const skills = this.registry.list().map((cmd) => {
|
|
25
|
+
const skill = {
|
|
26
|
+
name: cmd.name,
|
|
27
|
+
description: cmd.description,
|
|
28
|
+
bundled: true,
|
|
29
|
+
always: true,
|
|
30
|
+
};
|
|
31
|
+
if (cmd.emoji)
|
|
32
|
+
skill.emoji = cmd.emoji;
|
|
33
|
+
return skill;
|
|
34
|
+
});
|
|
35
|
+
return { skills };
|
|
7
36
|
}
|
|
8
37
|
}
|
|
9
38
|
//# sourceMappingURL=skills.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../../src/inbound/acp/handlers/skills.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"skills.js","sourceRoot":"","sources":["../../../../src/inbound/acp/handlers/skills.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAYH,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,QAAgC;QAAhC,aAAQ,GAAR,QAAQ,CAAwB;IAAG,CAAC;IAEjE,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;QAC1C,MAAM,MAAM,GAAmB,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC9D,MAAM,KAAK,GAAiB;gBAC1B,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI;aACb,CAAC;YACF,IAAI,GAAG,CAAC,KAAK;gBAAE,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,CAAC;IACpB,CAAC;CACF"}
|
|
@@ -39,6 +39,14 @@ export interface AcpPluginOptions {
|
|
|
39
39
|
publicKey: Uint8Array;
|
|
40
40
|
privateKey: Uint8Array;
|
|
41
41
|
};
|
|
42
|
+
/**
|
|
43
|
+
* Agent Gateway base URL. Required for the `/screenshot` plugin
|
|
44
|
+
* command to upload frames via presign+confirm. When unset, the
|
|
45
|
+
* command is NOT registered (the device-agent gracefully degrades —
|
|
46
|
+
* `skills/list` returns an empty list and `/screenshot` falls
|
|
47
|
+
* through to the AgentRunner).
|
|
48
|
+
*/
|
|
49
|
+
agentGatewayUrl?: string;
|
|
42
50
|
/** Optional pre-built transport (used by tests for mock injection). */
|
|
43
51
|
transportOverride?: IBridgeTransport;
|
|
44
52
|
/**
|
|
@@ -25,11 +25,16 @@
|
|
|
25
25
|
*/
|
|
26
26
|
import { fingerprint as sha256Fingerprint } from "@beeos-ai/bridge-client";
|
|
27
27
|
import { BridgeWsTransport } from "../../adapters/transport-bridge-ws.js";
|
|
28
|
+
import { AgentGatewayUserFileUploader } from "../../adapters/user-file-uploader.js";
|
|
28
29
|
import { JsonlMessageStore } from "../../app/jsonl-store.js";
|
|
30
|
+
import { PluginCommandRegistry } from "../../app/plugin-commands/registry.js";
|
|
31
|
+
import { ScreenshotCommandHandler } from "../../app/plugin-commands/screenshot-command.js";
|
|
32
|
+
import { ScreenshotService } from "../../app/screenshot-service.js";
|
|
29
33
|
import { SessionManager } from "../../app/session-manager.js";
|
|
30
34
|
import { getDeviceAgentSessionsDir } from "../../config/paths.js";
|
|
31
35
|
import { AcpDeviceHandlers } from "../../inbound/acp/handlers/device.js";
|
|
32
36
|
import { AcpSessionHandlers } from "../../inbound/acp/handlers/session.js";
|
|
37
|
+
import { AcpSkillsHandlers } from "../../inbound/acp/handlers/skills.js";
|
|
33
38
|
import { AcpRouter, bindRouterToTransport } from "../../inbound/acp/router.js";
|
|
34
39
|
import { TransportSessionNotifier } from "../../inbound/acp/notifier.js";
|
|
35
40
|
export class AcpPlugin {
|
|
@@ -73,11 +78,42 @@ export class AcpPlugin {
|
|
|
73
78
|
});
|
|
74
79
|
log.info({ fixedSessionId, sessionsDir }, "acp: jsonl store ready");
|
|
75
80
|
const notifier = new TransportSessionNotifier(transport);
|
|
81
|
+
// Build the plugin-command registry. Only commands whose dependencies
|
|
82
|
+
// are satisfied get registered — this keeps `skills/list` honest in
|
|
83
|
+
// degraded modes (e.g. local dev without an agent gateway URL still
|
|
84
|
+
// boots, just without `/screenshot`).
|
|
85
|
+
const pluginCommands = new PluginCommandRegistry();
|
|
86
|
+
if (this.opts.agentGatewayUrl) {
|
|
87
|
+
const uploader = new AgentGatewayUserFileUploader({
|
|
88
|
+
agentGatewayUrl: this.opts.agentGatewayUrl,
|
|
89
|
+
identity: {
|
|
90
|
+
publicKey: this.opts.keypair.publicKey,
|
|
91
|
+
privateKey: this.opts.keypair.privateKey,
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
// ScreenshotService takes the live MCP runtime — bind to a single
|
|
95
|
+
// resolved instance per plugin lifetime; on autospawn restart the
|
|
96
|
+
// outer mcpProvider issues a fresh runtime and the next call will
|
|
97
|
+
// observe it transparently (the service captures the runtime at
|
|
98
|
+
// each `captureAndUpload` call, NOT at construction).
|
|
99
|
+
const lazyMcp = {
|
|
100
|
+
screenshot: () => this.opts.mcpProvider().screenshot(),
|
|
101
|
+
uiDump: (o) => this.opts.mcpProvider().uiDump(o),
|
|
102
|
+
act: (a) => this.opts.mcpProvider().act(a),
|
|
103
|
+
};
|
|
104
|
+
const screenshotService = new ScreenshotService(lazyMcp, uploader);
|
|
105
|
+
pluginCommands.register(new ScreenshotCommandHandler(screenshotService, notifier));
|
|
106
|
+
log.info({ commands: pluginCommands.list().map((c) => c.name) }, "acp: plugin commands registered");
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
log.info("acp: agentGatewayUrl unset — skipping `/screenshot` and other upload-dependent plugin commands");
|
|
110
|
+
}
|
|
76
111
|
const sessions = new SessionManager({
|
|
77
112
|
host,
|
|
78
113
|
messageStore,
|
|
79
114
|
notifier,
|
|
80
115
|
fixedSessionId,
|
|
116
|
+
pluginCommands,
|
|
81
117
|
// `Config.sessionTimeoutMs` is the single source of truth for idle GC.
|
|
82
118
|
// 0 disables the threshold check (effectively keeps sessions forever
|
|
83
119
|
// until `maxSessions` LRU eviction kicks in) — it's surfaced in the
|
|
@@ -92,10 +128,34 @@ export class AcpPlugin {
|
|
|
92
128
|
log.warn({ err: e.message, provider, model }, "acp: setModel failed");
|
|
93
129
|
}
|
|
94
130
|
},
|
|
131
|
+
// Surface plugin command lifecycle into the agent's pino log so
|
|
132
|
+
// failures are auditable. Without this hook the only signal a failed
|
|
133
|
+
// `/screenshot` produces is a `system_message_chunk` notice, which
|
|
134
|
+
// some clients render and some swallow — leaving operators staring
|
|
135
|
+
// at silent JSONL.
|
|
136
|
+
onPluginCommandEvent: (ev) => {
|
|
137
|
+
if (ev.kind === "begin") {
|
|
138
|
+
log.info({ command: ev.name, sessionId: ev.sessionId, turnId: ev.turnId, args: ev.args }, "acp: plugin command begin");
|
|
139
|
+
}
|
|
140
|
+
else if (ev.kind === "end") {
|
|
141
|
+
log.info({ command: ev.name, sessionId: ev.sessionId, turnId: ev.turnId, durationMs: ev.durationMs }, "acp: plugin command end");
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
log.warn({
|
|
145
|
+
command: ev.name,
|
|
146
|
+
sessionId: ev.sessionId,
|
|
147
|
+
turnId: ev.turnId,
|
|
148
|
+
durationMs: ev.durationMs,
|
|
149
|
+
err: ev.error.message,
|
|
150
|
+
stack: ev.error.stack,
|
|
151
|
+
}, "acp: plugin command failed");
|
|
152
|
+
}
|
|
153
|
+
},
|
|
95
154
|
});
|
|
96
155
|
const router = new AcpRouter({
|
|
97
156
|
device: new AcpDeviceHandlers(this.opts.mcpProvider),
|
|
98
157
|
session: new AcpSessionHandlers(sessions),
|
|
158
|
+
skills: new AcpSkillsHandlers(pluginCommands),
|
|
99
159
|
log: ({ method, error }) => {
|
|
100
160
|
if (error)
|
|
101
161
|
log.warn({ method, err: error.message }, "acp handler error");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/acp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/acp/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beeos-ai/device-agent",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"description": "BeeOS device-agent — Android/desktop AI control agent (TypeScript) speaking ACP over Bridge WebSocket. Connects to a sibling device-mcp-server process for device control.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|