@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.
Files changed (36) hide show
  1. package/dist/adapters/agent-gateway-client.d.ts +25 -0
  2. package/dist/adapters/agent-gateway-client.js +49 -0
  3. package/dist/adapters/agent-gateway-client.js.map +1 -1
  4. package/dist/adapters/user-file-uploader.d.ts +74 -0
  5. package/dist/adapters/user-file-uploader.js +78 -0
  6. package/dist/adapters/user-file-uploader.js.map +1 -0
  7. package/dist/app/plugin-commands/registry.d.ts +41 -0
  8. package/dist/app/plugin-commands/registry.js +62 -0
  9. package/dist/app/plugin-commands/registry.js.map +1 -0
  10. package/dist/app/plugin-commands/screenshot-command.d.ts +32 -0
  11. package/dist/app/plugin-commands/screenshot-command.js +44 -0
  12. package/dist/app/plugin-commands/screenshot-command.js.map +1 -0
  13. package/dist/app/plugin-commands/types.d.ts +63 -0
  14. package/dist/app/plugin-commands/types.js +26 -0
  15. package/dist/app/plugin-commands/types.js.map +1 -0
  16. package/dist/app/screenshot-service.d.ts +68 -0
  17. package/dist/app/screenshot-service.js +64 -0
  18. package/dist/app/screenshot-service.js.map +1 -0
  19. package/dist/app/session-manager.d.ts +68 -0
  20. package/dist/app/session-manager.js +97 -0
  21. package/dist/app/session-manager.js.map +1 -1
  22. package/dist/bootstrap.js +5 -1
  23. package/dist/bootstrap.js.map +1 -1
  24. package/dist/inbound/acp/handlers/device.d.ts +9 -1
  25. package/dist/inbound/acp/handlers/device.js +9 -1
  26. package/dist/inbound/acp/handlers/device.js.map +1 -1
  27. package/dist/inbound/acp/handlers/initialize.d.ts +9 -5
  28. package/dist/inbound/acp/handlers/initialize.js +10 -6
  29. package/dist/inbound/acp/handlers/initialize.js.map +1 -1
  30. package/dist/inbound/acp/handlers/skills.d.ts +24 -2
  31. package/dist/inbound/acp/handlers/skills.js +31 -2
  32. package/dist/inbound/acp/handlers/skills.js.map +1 -1
  33. package/dist/plugins/acp/index.d.ts +8 -0
  34. package/dist/plugins/acp/index.js +60 -0
  35. package/dist/plugins/acp/index.js.map +1 -1
  36. 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
- * - `terminal` / `skills` / `mcp` / `sessionCapabilities` stay false
22
- * / empty — this agent intentionally does NOT implement those
23
- * business surfaces (skills/, canvas/, cron/, terminal/, mcp/),
24
- * and `Method not found` (-32601) is the documented response for
25
- * such probes.
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
- * - `terminal` / `skills` / `mcp` / `sessionCapabilities` stay false
22
- * / empty — this agent intentionally does NOT implement those
23
- * business surfaces (skills/, canvas/, cron/, terminal/, mcp/),
24
- * and `Method not found` (-32601) is the documented response for
25
- * such probes.
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: false,
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;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,KAAK;YACb,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
+ {"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. The Python agent currently exposes an empty list.
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: never[];
28
+ skills: AcpSkillInfo[];
7
29
  }>;
8
30
  }
@@ -1,9 +1,38 @@
1
1
  /**
2
- * ACP `skills/list` handler. The Python agent currently exposes an empty list.
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
- return { skills: [] };
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;;GAEG;AAEH,MAAM,OAAO,iBAAiB;IAC5B,KAAK,CAAC,IAAI;QACR,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACxB,CAAC;CACF"}
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":"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"}
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.6.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",