@beeos-ai/device-agent 0.5.1 → 0.7.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.
Files changed (51) hide show
  1. package/.pi/extensions/android-tools.ts +24 -3
  2. package/dist/adapters/agent-gateway-client.d.ts +25 -0
  3. package/dist/adapters/agent-gateway-client.js +49 -0
  4. package/dist/adapters/agent-gateway-client.js.map +1 -1
  5. package/dist/adapters/user-file-uploader.d.ts +74 -0
  6. package/dist/adapters/user-file-uploader.js +78 -0
  7. package/dist/adapters/user-file-uploader.js.map +1 -0
  8. package/dist/app/in-flight-turn.d.ts +120 -0
  9. package/dist/app/in-flight-turn.js +158 -0
  10. package/dist/app/in-flight-turn.js.map +1 -0
  11. package/dist/app/jsonl-store.d.ts +109 -0
  12. package/dist/app/jsonl-store.js +402 -0
  13. package/dist/app/jsonl-store.js.map +1 -0
  14. package/dist/app/message-store.d.ts +82 -31
  15. package/dist/app/message-store.js +109 -48
  16. package/dist/app/message-store.js.map +1 -1
  17. package/dist/app/plugin-commands/registry.d.ts +41 -0
  18. package/dist/app/plugin-commands/registry.js +62 -0
  19. package/dist/app/plugin-commands/registry.js.map +1 -0
  20. package/dist/app/plugin-commands/screenshot-command.d.ts +32 -0
  21. package/dist/app/plugin-commands/screenshot-command.js +44 -0
  22. package/dist/app/plugin-commands/screenshot-command.js.map +1 -0
  23. package/dist/app/plugin-commands/types.d.ts +63 -0
  24. package/dist/app/plugin-commands/types.js +26 -0
  25. package/dist/app/plugin-commands/types.js.map +1 -0
  26. package/dist/app/screenshot-service.d.ts +68 -0
  27. package/dist/app/screenshot-service.js +64 -0
  28. package/dist/app/screenshot-service.js.map +1 -0
  29. package/dist/app/session-manager.d.ts +150 -55
  30. package/dist/app/session-manager.js +385 -122
  31. package/dist/app/session-manager.js.map +1 -1
  32. package/dist/bootstrap.js +5 -1
  33. package/dist/bootstrap.js.map +1 -1
  34. package/dist/config/paths.d.ts +48 -0
  35. package/dist/config/paths.js +59 -0
  36. package/dist/config/paths.js.map +1 -0
  37. package/dist/inbound/acp/handlers/device.d.ts +9 -1
  38. package/dist/inbound/acp/handlers/device.js +9 -1
  39. package/dist/inbound/acp/handlers/device.js.map +1 -1
  40. package/dist/inbound/acp/handlers/initialize.d.ts +17 -5
  41. package/dist/inbound/acp/handlers/initialize.js +19 -7
  42. package/dist/inbound/acp/handlers/initialize.js.map +1 -1
  43. package/dist/inbound/acp/handlers/session.d.ts +0 -1
  44. package/dist/inbound/acp/handlers/skills.d.ts +24 -2
  45. package/dist/inbound/acp/handlers/skills.js +31 -2
  46. package/dist/inbound/acp/handlers/skills.js.map +1 -1
  47. package/dist/orchestrator-system-prompt.js +2 -2
  48. package/dist/plugins/acp/index.d.ts +26 -1
  49. package/dist/plugins/acp/index.js +86 -3
  50. package/dist/plugins/acp/index.js.map +1 -1
  51. package/package.json +1 -1
@@ -5,19 +5,36 @@
5
5
  * Agent Control Protocol (ACP) over a WebSocket transport.
6
6
  *
7
7
  * Responsibilities:
8
- * - Construct `SessionManager` (subscribes to host events).
8
+ * - Construct `SessionManager` (subscribes to host events) in
9
+ * fixed-sid single-session mode, with a JSONL-backed store
10
+ * persisting transcripts to
11
+ * `${BEEOS_HOME ?? ~/.beeos}/device-agent/sessions/<sid>.jsonl`.
9
12
  * - Wire ACP handlers (`session/*`, `device/*`, `models/list`, `skills/list`).
10
13
  * - Open the Bridge WebSocket, bind the router, fan `session/update`
11
14
  * notifications back through the transport.
12
15
  *
16
+ * Single-session sid derivation:
17
+ *
18
+ * The fixed sid is `device:<first16HexOfSha256(publicKey)>` — a
19
+ * deterministic per-device identifier that survives reconnects and
20
+ * binary upgrades. Standalone mode (no keypair) falls back to
21
+ * `device:standalone` so local CLI testing still gets a stable sid.
22
+ *
13
23
  * Disabled when `--standalone` (no remote control plane) or `--no-acp`
14
24
  * is passed; in that mode only the http-debug plugin is useful.
15
25
  */
26
+ import { fingerprint as sha256Fingerprint } from "@beeos-ai/bridge-client";
16
27
  import { BridgeWsTransport } from "../../adapters/transport-bridge-ws.js";
17
- import { MessageStore } from "../../app/message-store.js";
28
+ import { AgentGatewayUserFileUploader } from "../../adapters/user-file-uploader.js";
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";
18
33
  import { SessionManager } from "../../app/session-manager.js";
34
+ import { getDeviceAgentSessionsDir } from "../../config/paths.js";
19
35
  import { AcpDeviceHandlers } from "../../inbound/acp/handlers/device.js";
20
36
  import { AcpSessionHandlers } from "../../inbound/acp/handlers/session.js";
37
+ import { AcpSkillsHandlers } from "../../inbound/acp/handlers/skills.js";
21
38
  import { AcpRouter, bindRouterToTransport } from "../../inbound/acp/router.js";
22
39
  import { TransportSessionNotifier } from "../../inbound/acp/notifier.js";
23
40
  export class AcpPlugin {
@@ -26,6 +43,7 @@ export class AcpPlugin {
26
43
  ctx;
27
44
  transport = null;
28
45
  sessions = null;
46
+ store = null;
29
47
  unbind = null;
30
48
  constructor(opts) {
31
49
  this.opts = opts;
@@ -51,12 +69,51 @@ export class AcpPlugin {
51
69
  transport.on("connected", () => log.info("acp: bridge connected"));
52
70
  transport.on("disconnected", (reason) => log.warn({ reason }, "acp: bridge disconnected"));
53
71
  transport.on("error", (err) => log.error({ err: err.message }, "acp: bridge transport error"));
72
+ const fixedSessionId = deriveFixedSessionId(this.opts.keypair.publicKey);
73
+ const sessionsDir = this.opts.sessionsDirOverride ?? getDeviceAgentSessionsDir();
74
+ const messageStore = await JsonlMessageStore.open({
75
+ sessionsDir,
76
+ preloadSids: [fixedSessionId],
77
+ logger: { warn: (...args) => log.warn(...args) },
78
+ });
79
+ log.info({ fixedSessionId, sessionsDir }, "acp: jsonl store ready");
54
80
  const notifier = new TransportSessionNotifier(transport);
55
- const messageStore = new MessageStore();
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
+ }
56
111
  const sessions = new SessionManager({
57
112
  host,
58
113
  messageStore,
59
114
  notifier,
115
+ fixedSessionId,
116
+ pluginCommands,
60
117
  // `Config.sessionTimeoutMs` is the single source of truth for idle GC.
61
118
  // 0 disables the threshold check (effectively keeps sessions forever
62
119
  // until `maxSessions` LRU eviction kicks in) — it's surfaced in the
@@ -75,6 +132,7 @@ export class AcpPlugin {
75
132
  const router = new AcpRouter({
76
133
  device: new AcpDeviceHandlers(this.opts.mcpProvider),
77
134
  session: new AcpSessionHandlers(sessions),
135
+ skills: new AcpSkillsHandlers(pluginCommands),
78
136
  log: ({ method, error }) => {
79
137
  if (error)
80
138
  log.warn({ method, err: error.message }, "acp handler error");
@@ -84,6 +142,7 @@ export class AcpPlugin {
84
142
  });
85
143
  this.transport = transport;
86
144
  this.sessions = sessions;
145
+ this.store = messageStore;
87
146
  this.unbind = bindRouterToTransport(router, transport);
88
147
  }
89
148
  async start() {
@@ -105,7 +164,31 @@ export class AcpPlugin {
105
164
  }
106
165
  this.unbind = null;
107
166
  }
167
+ if (this.store) {
168
+ try {
169
+ await this.store.close();
170
+ }
171
+ catch (e) {
172
+ // Best-effort flush — log but don't block shutdown on a stale stream.
173
+ this.ctx?.log.warn({ err: e.message }, "acp: jsonl store close failed");
174
+ }
175
+ this.store = null;
176
+ }
108
177
  this.transport = null;
109
178
  }
110
179
  }
180
+ /**
181
+ * Compute the per-device fixed sid.
182
+ *
183
+ * Format: `device:<first16HexOfSha256(publicKey)>`. 16 hex chars give
184
+ * 64 bits of entropy — far more than enough to avoid collisions
185
+ * across the BeeOS device fleet, while keeping the sid short enough
186
+ * to use as a filename / log correlation tag without truncation.
187
+ */
188
+ function deriveFixedSessionId(publicKey) {
189
+ if (!publicKey || publicKey.length === 0)
190
+ return "device:standalone";
191
+ const hex = sha256Fingerprint(publicKey);
192
+ return `device:${hex.slice(0, 16)}`;
193
+ }
111
194
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/plugins/acp/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,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;AAmBzE,MAAM,OAAO,SAAS;IAOS;IANpB,IAAI,GAAG,KAAK,CAAC;IACd,GAAG,CAAiB;IACpB,SAAS,GAA4B,IAAI,CAAC;IAC1C,QAAQ,GAA0B,IAAI,CAAC;IACvC,MAAM,GAAiC,IAAI,CAAC;IAEpD,YAA6B,IAAsB;QAAtB,SAAI,GAAJ,IAAI,CAAkB;IAAG,CAAC;IAEvD,KAAK,CAAC,IAAI,CAAC,GAAkB;QAC3B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,GAAG,CAAC;QAElC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAC1D,OAAO;QACT,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GACb,IAAI,CAAC,IAAI,CAAC,iBAAiB;YAC3B,IAAI,iBAAiB,CAAC;gBACpB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,MAAM,CAAC,aAAa;gBAC7B,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU;gBACxC,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS;aACvC,CAAC,CAAC;QACL,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;QACnE,SAAS,CAAC,EAAE,CAAC,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,0BAA0B,CAAC,CAAC,CAAC;QAC3F,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,EAAE,EAAE,6BAA6B,CAAC,CAAC,CAAC;QAE/F,MAAM,QAAQ,GAAG,IAAI,wBAAwB,CAAC,SAAS,CAAC,CAAC;QACzD,MAAM,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC;YAClC,IAAI;YACJ,YAAY;YACZ,QAAQ;YACR,uEAAuE;YACvE,qEAAqE;YACrE,oEAAoE;YACpE,6DAA6D;YAC7D,YAAY,EAAE,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;YAC/E,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;gBACpC,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;oBAC3C,GAAG,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,2BAA2B,CAAC,CAAC;gBAC7D,CAAC;gBAAC,OAAO,CAAC,EAAE,CAAC;oBACX,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAG,CAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,sBAAsB,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;YAC3B,MAAM,EAAE,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;YACpD,OAAO,EAAE,IAAI,kBAAkB,CAAC,QAAQ,CAAC;YACzC,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;gBACzB,IAAI,KAAK;oBAAE,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,EAAG,KAAe,CAAC,OAAO,EAAE,EAAE,mBAAmB,CAAC,CAAC;;oBAC/E,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,aAAa,CAAC,CAAC;YAC5C,CAAC;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAC5B,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACvB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACvB,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;YACtB,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;YACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACrB,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;IACxB,CAAC;CACF"}
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.5.1",
3
+ "version": "0.7.0",
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",