aibroker 0.5.1 → 0.6.2

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 (133) hide show
  1. package/README.md +263 -104
  2. package/dist/adapters/iterm/iterm2-api.d.ts +20 -0
  3. package/dist/adapters/iterm/iterm2-api.d.ts.map +1 -0
  4. package/dist/adapters/iterm/iterm2-api.js +244 -0
  5. package/dist/adapters/iterm/iterm2-api.js.map +1 -0
  6. package/dist/adapters/iterm/sessions.d.ts +1 -0
  7. package/dist/adapters/iterm/sessions.d.ts.map +1 -1
  8. package/dist/adapters/iterm/sessions.js +26 -2
  9. package/dist/adapters/iterm/sessions.js.map +1 -1
  10. package/dist/adapters/kokoro/media.js +2 -2
  11. package/dist/adapters/kokoro/media.js.map +1 -1
  12. package/dist/adapters/pailot/gateway.d.ts +5 -6
  13. package/dist/adapters/pailot/gateway.d.ts.map +1 -1
  14. package/dist/adapters/pailot/gateway.js +575 -34
  15. package/dist/adapters/pailot/gateway.js.map +1 -1
  16. package/dist/aibp/bridge.d.ts +123 -0
  17. package/dist/aibp/bridge.d.ts.map +1 -0
  18. package/dist/aibp/bridge.js +363 -0
  19. package/dist/aibp/bridge.js.map +1 -0
  20. package/dist/aibp/envelope.d.ts +26 -0
  21. package/dist/aibp/envelope.d.ts.map +1 -0
  22. package/dist/aibp/envelope.js +101 -0
  23. package/dist/aibp/envelope.js.map +1 -0
  24. package/dist/aibp/index.d.ts +11 -0
  25. package/dist/aibp/index.d.ts.map +1 -0
  26. package/dist/aibp/index.js +10 -0
  27. package/dist/aibp/index.js.map +1 -0
  28. package/dist/aibp/registry.d.ts +71 -0
  29. package/dist/aibp/registry.d.ts.map +1 -0
  30. package/dist/aibp/registry.js +408 -0
  31. package/dist/aibp/registry.js.map +1 -0
  32. package/dist/aibp/types.d.ts +91 -0
  33. package/dist/aibp/types.d.ts.map +1 -0
  34. package/dist/aibp/types.js +8 -0
  35. package/dist/aibp/types.js.map +1 -0
  36. package/dist/core/hybrid.d.ts +2 -0
  37. package/dist/core/hybrid.d.ts.map +1 -1
  38. package/dist/core/hybrid.js +8 -0
  39. package/dist/core/hybrid.js.map +1 -1
  40. package/dist/core/state.d.ts +12 -0
  41. package/dist/core/state.d.ts.map +1 -1
  42. package/dist/core/state.js +34 -0
  43. package/dist/core/state.js.map +1 -1
  44. package/dist/core/status-cache.d.ts +51 -0
  45. package/dist/core/status-cache.d.ts.map +1 -0
  46. package/dist/core/status-cache.js +62 -0
  47. package/dist/core/status-cache.js.map +1 -0
  48. package/dist/daemon/adapter-registry.d.ts +5 -0
  49. package/dist/daemon/adapter-registry.d.ts.map +1 -1
  50. package/dist/daemon/adapter-registry.js +94 -4
  51. package/dist/daemon/adapter-registry.js.map +1 -1
  52. package/dist/daemon/cli.d.ts +1 -0
  53. package/dist/daemon/cli.d.ts.map +1 -1
  54. package/dist/daemon/cli.js +95 -3
  55. package/dist/daemon/cli.js.map +1 -1
  56. package/dist/daemon/command-context.d.ts +28 -0
  57. package/dist/daemon/command-context.d.ts.map +1 -0
  58. package/dist/daemon/command-context.js +13 -0
  59. package/dist/daemon/command-context.js.map +1 -0
  60. package/dist/daemon/commands.d.ts +22 -0
  61. package/dist/daemon/commands.d.ts.map +1 -0
  62. package/dist/daemon/commands.js +849 -0
  63. package/dist/daemon/commands.js.map +1 -0
  64. package/dist/daemon/core-handlers.d.ts.map +1 -1
  65. package/dist/daemon/core-handlers.js +758 -3
  66. package/dist/daemon/core-handlers.js.map +1 -1
  67. package/dist/daemon/create-adapter.js +2 -1
  68. package/dist/daemon/create-adapter.js.map +1 -1
  69. package/dist/daemon/image-context.d.ts +56 -0
  70. package/dist/daemon/image-context.d.ts.map +1 -0
  71. package/dist/daemon/image-context.js +116 -0
  72. package/dist/daemon/image-context.js.map +1 -0
  73. package/dist/daemon/image-gen/index.d.ts +22 -0
  74. package/dist/daemon/image-gen/index.d.ts.map +1 -0
  75. package/dist/daemon/image-gen/index.js +129 -0
  76. package/dist/daemon/image-gen/index.js.map +1 -0
  77. package/dist/daemon/image-gen/providers/cloudflare.d.ts +13 -0
  78. package/dist/daemon/image-gen/providers/cloudflare.d.ts.map +1 -0
  79. package/dist/daemon/image-gen/providers/cloudflare.js +63 -0
  80. package/dist/daemon/image-gen/providers/cloudflare.js.map +1 -0
  81. package/dist/daemon/image-gen/providers/huggingface.d.ts +12 -0
  82. package/dist/daemon/image-gen/providers/huggingface.d.ts.map +1 -0
  83. package/dist/daemon/image-gen/providers/huggingface.js +58 -0
  84. package/dist/daemon/image-gen/providers/huggingface.js.map +1 -0
  85. package/dist/daemon/image-gen/providers/pollinations.d.ts +11 -0
  86. package/dist/daemon/image-gen/providers/pollinations.d.ts.map +1 -0
  87. package/dist/daemon/image-gen/providers/pollinations.js +39 -0
  88. package/dist/daemon/image-gen/providers/pollinations.js.map +1 -0
  89. package/dist/daemon/image-gen/providers/replicate.d.ts +9 -0
  90. package/dist/daemon/image-gen/providers/replicate.d.ts.map +1 -0
  91. package/dist/daemon/image-gen/providers/replicate.js +158 -0
  92. package/dist/daemon/image-gen/providers/replicate.js.map +1 -0
  93. package/dist/daemon/image-gen/types.d.ts +41 -0
  94. package/dist/daemon/image-gen/types.d.ts.map +1 -0
  95. package/dist/daemon/image-gen/types.js +5 -0
  96. package/dist/daemon/image-gen/types.js.map +1 -0
  97. package/dist/daemon/index.d.ts.map +1 -1
  98. package/dist/daemon/index.js +260 -6
  99. package/dist/daemon/index.js.map +1 -1
  100. package/dist/daemon/screenshot.d.ts +12 -0
  101. package/dist/daemon/screenshot.d.ts.map +1 -0
  102. package/dist/daemon/screenshot.js +252 -0
  103. package/dist/daemon/screenshot.js.map +1 -0
  104. package/dist/daemon/session-content.d.ts +27 -0
  105. package/dist/daemon/session-content.d.ts.map +1 -0
  106. package/dist/daemon/session-content.js +76 -0
  107. package/dist/daemon/session-content.js.map +1 -0
  108. package/dist/daemon/vision.d.ts +46 -0
  109. package/dist/daemon/vision.d.ts.map +1 -0
  110. package/dist/daemon/vision.js +176 -0
  111. package/dist/daemon/vision.js.map +1 -0
  112. package/dist/index.d.ts +6 -1
  113. package/dist/index.d.ts.map +1 -1
  114. package/dist/index.js +4 -1
  115. package/dist/index.js.map +1 -1
  116. package/dist/ipc/validate.d.ts +52 -0
  117. package/dist/ipc/validate.d.ts.map +1 -0
  118. package/dist/ipc/validate.js +129 -0
  119. package/dist/ipc/validate.js.map +1 -0
  120. package/dist/mcp/index.d.ts +23 -0
  121. package/dist/mcp/index.d.ts.map +1 -0
  122. package/dist/mcp/index.js +787 -0
  123. package/dist/mcp/index.js.map +1 -0
  124. package/dist/types/broker.d.ts +3 -1
  125. package/dist/types/broker.d.ts.map +1 -1
  126. package/dist/types/broker.js.map +1 -1
  127. package/package.json +5 -2
  128. package/templates/adapter/ONBOARDING_PROMPT.md +51 -29
  129. package/templates/adapter/README.md.tmpl +14 -31
  130. package/templates/adapter/package.json.tmpl +1 -1
  131. package/templates/adapter/src/watcher/commands.ts.tmpl +24 -126
  132. package/templates/adapter/src/watcher/index.ts.tmpl +112 -88
  133. package/templates/adapter/src/watcher/ipc-server.ts.tmpl +27 -3
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/mcp/index.ts"],"names":[],"mappings":"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"}
@@ -6,10 +6,12 @@
6
6
  * this format, regardless of the originating transport (WhatsApp,
7
7
  * Telegram, PAILot, etc.).
8
8
  */
9
- export type BrokerMessageType = "text" | "voice" | "file" | "command" | "status";
9
+ export type BrokerMessageType = "text" | "voice" | "image" | "video" | "file" | "command" | "status";
10
10
  export interface BrokerMessagePayload {
11
11
  text?: string;
12
12
  filePath?: string;
13
+ /** Path to audio file on disk (for voice messages). */
14
+ audioPath?: string;
13
15
  /** Base64-encoded binary data (for voice/file over JSON IPC). */
14
16
  buffer?: string;
15
17
  mimetype?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../../src/types/broker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjF,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,qDAAqD;AACrD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,oBAAoB,EAC7B,MAAM,CAAC,EAAE,MAAM,GACd,aAAa,CASf"}
1
+ {"version":3,"file":"broker.d.ts","sourceRoot":"","sources":["../../src/types/broker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErG,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACzC;AAED,qDAAqD;AACrD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,iBAAiB,EACvB,OAAO,EAAE,oBAAoB,EAC7B,MAAM,CAAC,EAAE,MAAM,GACd,aAAa,CASf"}
@@ -1 +1 @@
1
- {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../src/types/broker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAwCzC,qDAAqD;AACrD,MAAM,UAAU,mBAAmB,CACjC,MAAc,EACd,IAAuB,EACvB,OAA6B,EAC7B,MAAe;IAEf,OAAO;QACL,EAAE,EAAE,UAAU,EAAE;QAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"broker.js","sourceRoot":"","sources":["../../src/types/broker.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AA0CzC,qDAAqD;AACrD,MAAM,UAAU,mBAAmB,CACjC,MAAc,EACd,IAAuB,EACvB,OAA6B,EAC7B,MAAe;IAEf,OAAO;QACL,EAAE,EAAE,UAAU,EAAE;QAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;QACrB,MAAM;QACN,MAAM;QACN,IAAI;QACJ,OAAO;KACR,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aibroker",
3
- "version": "0.5.1",
3
+ "version": "0.6.2",
4
4
  "description": "Platform-agnostic AI message broker — routes between user channels and AI backends",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -18,6 +18,7 @@
18
18
  "build": "tsc",
19
19
  "dev": "tsc --watch",
20
20
  "start": "node dist/daemon/cli.js start",
21
+ "test": "npx tsx --test test/*.test.ts",
21
22
  "prepublishOnly": "npm run build"
22
23
  },
23
24
  "repository": {
@@ -42,8 +43,10 @@
42
43
  },
43
44
  "dependencies": {
44
45
  "@anthropic-ai/claude-agent-sdk": "^0.1.0",
46
+ "@modelcontextprotocol/sdk": "^1.27.1",
45
47
  "kokoro-js": "^1.2.1",
46
- "ws": "^8.19.0"
48
+ "ws": "^8.19.0",
49
+ "zod": "^4.3.6"
47
50
  },
48
51
  "devDependencies": {
49
52
  "@types/node": "^22.0.0",
@@ -87,15 +87,16 @@ Generate all files listed below. Use the scaffold templates in `templates/adapte
87
87
 
88
88
  **`src/watcher/commands.ts`** — from `templates/adapter/src/watcher/commands.ts.tmpl`
89
89
  - Replace placeholders only
90
- - Add any service-specific slash commands if the service warrants them (e.g. `/channel #general` to switch rooms)
90
+ - This is a thin handler only /restart and /login are local
91
+ - All other commands are forwarded to the hub by index.ts
91
92
 
92
93
  **`src/watcher/ipc-server.ts`** — from `templates/adapter/src/watcher/ipc-server.ts.tmpl`
93
94
  - Replace placeholders only
94
- - The four required IPC handlers must be present: `deliver`, `health`, `connection_status`, `login`
95
+ - The required IPC handlers are already present: `deliver`, `health`, `connection_status`, `login`
95
96
 
96
97
  **`src/watcher/index.ts`** — from `templates/adapter/src/watcher/index.ts.tmpl`
97
98
  - Replace placeholders only
98
- - The hub detection pattern must remain intact
99
+ - The hub-required pattern (connectToHub with retry, heartbeat, re-registration) is built in
99
100
 
100
101
  **`src/watcher/cli.ts`** — from `templates/adapter/src/watcher/cli.ts.tmpl`
101
102
  - Replace placeholders only
@@ -146,15 +147,24 @@ After generating the adapter files, register the adapter with the AIBroker hub:
146
147
  After generating all files:
147
148
 
148
149
  ```bash
149
- # Build
150
+ # Ensure the AIBroker hub is running
151
+ aibroker start
152
+
153
+ # Build and start the adapter
150
154
  cd /path/to/{{ADAPTER_NAME}}
151
155
  npm install
152
156
  npm run build
153
-
154
- # Start the watcher (runs the upstream connection)
155
157
  node dist/watcher/cli.js watch
158
+ ```
159
+
160
+ The adapter will:
161
+ 1. Connect to the AIBroker hub (fails if hub is not running)
162
+ 2. Connect to the upstream service
163
+ 3. Register with the hub
164
+ 4. Start its IPC server
156
165
 
157
- # In a separate terminal, verify the IPC server is responding
166
+ Verify the IPC server is responding:
167
+ ```bash
158
168
  node -e "
159
169
  import { WatcherClient } from 'aibroker';
160
170
  const c = new WatcherClient('/tmp/{{ADAPTER_NAME}}-watcher.sock');
@@ -204,6 +214,22 @@ interface MessengerAdapter {
204
214
  }
205
215
  ```
206
216
 
217
+ ### AdapterHealth contract
218
+
219
+ ```typescript
220
+ interface AdapterHealth {
221
+ status: "ok" | "degraded" | "down";
222
+ connectionStatus: "connected" | "connecting" | "disconnected" | "error";
223
+ stats: {
224
+ messagesReceived: number;
225
+ messagesSent: number;
226
+ errors: number;
227
+ };
228
+ lastMessageAgo: number | null;
229
+ detail?: string;
230
+ }
231
+ ```
232
+
207
233
  ### BrokerMessage (hub envelope)
208
234
 
209
235
  ```typescript
@@ -212,11 +238,12 @@ interface BrokerMessage {
212
238
  timestamp: number; // epoch ms
213
239
  source: string; // adapter name that sent it
214
240
  target?: string; // target adapter name (omit for default routing)
215
- type: "text" | "voice" | "file" | "command" | "status";
241
+ type: "text" | "voice" | "file" | "image" | "command" | "status";
216
242
  payload: {
217
243
  text?: string;
218
244
  filePath?: string;
219
245
  audioPath?: string;
246
+ buffer?: string; // base64-encoded binary data (images, voice)
220
247
  mimetype?: string;
221
248
  caption?: string;
222
249
  recipient?: string;
@@ -231,7 +258,7 @@ interface BrokerMessage {
231
258
  | Handler | Called by | Must return |
232
259
  |---------|-----------|-------------|
233
260
  | `deliver` | Hub, when routing a BrokerMessage to this adapter | `{ ok: true, result: { delivered: true } }` or `{ ok: false, error: string }` |
234
- | `health` | Hub health polling | `{ ok: true, result: AdapterHealth }` |
261
+ | `health` | Hub health polling (every 10s) | `{ ok: true, result: AdapterHealth }` |
235
262
  | `connection_status` | Hub, MCP tools | `{ ok: true, result: { status: AdapterConnectionStatus } }` |
236
263
  | `login` | User, via MCP tool | `{ ok: true, result: { message: string } }` |
237
264
  | `send` | MCP tool | `{ ok: true, result: { sent: true } }` |
@@ -239,30 +266,24 @@ interface BrokerMessage {
239
266
  | `send_file` | MCP tool | `{ ok: true, result: { sent: true } }` |
240
267
  | `status` | MCP tool | Human-readable status object |
241
268
 
242
- ### Hub detection pattern
269
+ ### Hub-required architecture
243
270
 
244
- The watcher probes the AIBroker daemon socket at startup:
271
+ The adapter **requires** the AIBroker hub daemon to be running:
245
272
 
246
- ```typescript
247
- async function detectHubMode(): Promise<boolean> {
248
- const client = new WatcherClient(DAEMON_SOCKET_PATH);
249
- try {
250
- const result = await Promise.race([
251
- client.call_raw("status", {}),
252
- new Promise<null>((_, reject) => setTimeout(() => reject(new Error("timeout")), 2000)),
253
- ]);
254
- return result !== null;
255
- } catch {
256
- return false;
257
- }
258
- }
273
+ ```
274
+ Adapter startup:
275
+ 1. connectToHub() probe hub via "ping", retry 3x, fail if unreachable
276
+ 2. connectWatcher() — establish upstream service connection
277
+ 3. startIpcServer() start adapter IPC server on its socket
278
+ 4. register_adapter — announce to hub so it can push outbound messages
279
+ 5. heartbeat loop ping hub every 30s, re-register if it restarts
259
280
  ```
260
281
 
261
- If `detectHubMode()` returns `true`, the adapter:
262
- - Forwards incoming messages to the hub via `route_message`
263
- - Registers itself via `register_adapter` so the hub can push outbound messages back
264
-
265
- If `false`, the adapter handles everything locally (embedded mode).
282
+ Adapters do NOT:
283
+ - Create their own APIBackend or HybridSessionManager
284
+ - Handle commands locally (except /restart and /login)
285
+ - Run TTS, STT, screenshots, or image generation
286
+ - Manage sessions
266
287
 
267
288
  ---
268
289
 
@@ -275,6 +296,7 @@ If `false`, the adapter handles everything locally (embedded mode).
275
296
  - Key file — send: `src/watcher/send.ts`
276
297
  - Key file — IPC: `src/watcher/ipc-server.ts`
277
298
  - Key file — MCP tools: `src/index.ts`
299
+ - Key file — watcher: `src/watcher/index.ts` (thin hub-required adapter pattern)
278
300
  - Key pattern — Baileys saves auth state to `~/.whazaa/auth/` via `useMultiFileAuthState()`
279
301
 
280
302
  The Whazaa pattern for `connectWatcher()` is:
@@ -6,6 +6,8 @@ AIBroker adapter for {{DISPLAY_NAME}}.
6
6
 
7
7
  This adapter bridges {{DISPLAY_NAME}} and the [AIBroker](https://github.com/mnott/AIBroker) hub, enabling bidirectional message routing between {{DISPLAY_NAME}} and AI backends (Claude Code, Anthropic API, etc.).
8
8
 
9
+ **Requires the AIBroker daemon to be running.** The adapter is a thin transport pipe — all command handling, session management, TTS, and media processing are owned by the hub.
10
+
9
11
  ## Setup
10
12
 
11
13
  ### 1. Install dependencies
@@ -36,12 +38,11 @@ npm run build
36
38
  ### 5. Run
37
39
 
38
40
  ```bash
39
- # Standalone (embedded) mode — no hub required
40
- npm run watch
41
+ # Start the AIBroker hub first
42
+ aibroker start
41
43
 
42
- # Or: with AIBroker hub running
43
- aibroker start # in another terminal
44
- npm run watch # adapter auto-detects and registers with hub
44
+ # Then start the adapter — it auto-registers with the hub
45
+ npm run watch
45
46
  ```
46
47
 
47
48
  ## Architecture
@@ -49,34 +50,16 @@ npm run watch # adapter auto-detects and registers with hub
49
50
  ```
50
51
  {{DISPLAY_NAME}} <── connectWatcher() ──> watcher/index.ts
51
52
 
52
- createMessageHandler() startIpcServer()
53
-
54
- commands.ts ipc-server.ts
55
-
56
- AIBroker hub / embedded
53
+ forward to hub startIpcServer()
54
+
55
+ AIBroker hub ◄── deliver ─┘
57
56
  ```
58
57
 
59
- ## Configuration
60
-
61
- Set these environment variables before running:
62
-
63
- | Variable | Default | Description |
64
- |----------|---------|-------------|
65
- | `AIBROKER_MODEL` | `sonnet` | AI model for API sessions |
66
- | `AIBROKER_CWD` | `~` | Working directory for AI sessions |
67
- | `AIBROKER_MAX_TURNS` | `30` | Max turns per API session |
68
- | `AIBROKER_MAX_BUDGET` | `1.0` | Max USD budget per API session |
69
- | `AIBROKER_PERMISSION_MODE` | `acceptEdits` | Claude permission mode |
70
-
71
- ## Slash Commands
72
-
73
- | Command | Description |
74
- |---------|-------------|
75
- | `/h`, `/help` | Show help |
76
- | `/s`, `/sessions` | List all sessions |
77
- | `/ss`, `/status` | Show active session status |
78
- | `/n [name]` | Create a new API session |
79
- | `/1`, `/2`, ... | Switch to session by index |
58
+ The adapter:
59
+ - Forwards all incoming messages to the hub via `route_message`
60
+ - Receives outbound messages from the hub via the `deliver` IPC handler
61
+ - Only handles `/restart` and `/login` locally
62
+ - Maintains a 30s heartbeat with the hub; re-registers if hub restarts
80
63
 
81
64
  ## IPC Methods
82
65
 
@@ -14,7 +14,7 @@
14
14
  "prepublishOnly": "npm run build"
15
15
  },
16
16
  "dependencies": {
17
- "aibroker": "^0.5.0"
17
+ "aibroker": "^0.6.0"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@types/node": "^22.0.0",
@@ -1,146 +1,44 @@
1
1
  /**
2
- * commands.ts — Slash command handler for {{DISPLAY_NAME}}
2
+ * commands.ts — Thin adapter-local command handler for {{DISPLAY_NAME}}
3
3
  *
4
- * Parses incoming message text. If the text starts with "/" it is treated as
5
- * a slash command; otherwise it is delivered as a plain message to the active
6
- * AI session via the HybridSessionManager.
7
- *
8
- * Extend this file with adapter-specific slash commands as needed.
4
+ * Only handles commands that require direct upstream service access
5
+ * (/restart, /login). All other commands are forwarded to the AIBroker
6
+ * hub daemon via route_message in index.ts.
9
7
  */
10
8
 
11
- import {
12
- hybridManager,
13
- deliverViaApi,
14
- log,
15
- } from "aibroker";
9
+ import { log } from "aibroker";
16
10
  import { sendText } from "./send.js";
17
11
 
18
- // ── Command handler factory ───────────────────────────────────────────────────
19
-
20
12
  /**
21
- * Build and return the message handler closure used by the watcher.
13
+ * Create the local message handler for adapter-specific commands.
22
14
  *
23
- * The closure captures mutable state via getter/setter callbacks so the
24
- * watcher's `watch()` function can keep its own local variables authoritative
25
- * while sharing them with the handler.
15
+ * Only /restart and /login are handled here. Everything else should have
16
+ * been routed to the hub by index.ts this handler is the fallback for
17
+ * commands that need direct adapter access.
26
18
  */
27
19
  export function createMessageHandler(): (text: string, timestamp: number) => void {
28
20
  return function handleMessage(text: string, _timestamp: number): void {
29
21
  const trimmed = text.trim();
30
22
 
31
- if (!trimmed.startsWith("/")) {
32
- // Plain text — deliver to the active AI session
33
- void deliverMessage(trimmed);
34
- return;
35
- }
36
-
37
- // Slash command dispatch
38
- void handleSlashCommand(trimmed);
39
- };
40
- }
41
-
42
- // ── Slash command dispatcher ─────────────────────────────────────────────────
43
-
44
- async function handleSlashCommand(cmd: string): Promise<void> {
45
- const [base, ...args] = cmd.split(/\s+/);
46
-
47
- switch (base) {
48
- case "/h":
49
- case "/help":
50
- await sendText(buildHelp());
51
- return;
52
-
53
- case "/s":
54
- case "/sessions": {
55
- const mgr = hybridManager;
56
- if (!mgr) { await sendText("No session manager active."); return; }
57
- await sendText(mgr.formatSessionList());
58
- return;
59
- }
60
-
61
- case "/ss":
62
- case "/status": {
63
- const mgr = hybridManager;
64
- if (!mgr) { await sendText("No session manager active."); return; }
65
- const status = mgr.formatActiveStatus();
66
- await sendText(status ?? "Active session is a visual terminal — no text status available.");
23
+ if (trimmed === "/restart") {
24
+ log("/restart: watcher restart requested");
25
+ sendText("Restarting {{ADAPTER_NAME}} watcher...").catch(() => {});
26
+ setTimeout(() => {
27
+ log("/restart: exiting — process manager will restart us");
28
+ process.exit(0);
29
+ }, 1500);
67
30
  return;
68
31
  }
69
32
 
70
- case "/n":
71
- case "/new": {
72
- const mgr = hybridManager;
73
- if (!mgr) { await sendText("No session manager active."); return; }
74
- const cwd = process.env.AIBROKER_CWD ?? process.env.HOME ?? "/";
75
- const name = args[0] ?? `Session ${Date.now()}`;
76
- const session = mgr.createApiSession(name, cwd);
77
- await sendText(`Created new API session: "${session.name}" (${session.id})`);
33
+ // /login is handled via the triggerLogin callback in index.ts,
34
+ // not here. This is just a safety net.
35
+ if (trimmed === "/login") {
36
+ sendText("Use the login flow handled by the watcher.").catch(() => {});
78
37
  return;
79
38
  }
80
39
 
81
- default:
82
- // Numeric shortcut: /1, /2, /3 — switch to session by index
83
- if (/^\/\d+$/.test(base)) {
84
- const idx = parseInt(base.slice(1), 10);
85
- const mgr = hybridManager;
86
- if (!mgr) { await sendText("No session manager active."); return; }
87
- const session = mgr.switchToIndex(idx);
88
- if (session) {
89
- await sendText(`Switched to: "${session.name}" (${session.kind})`);
90
- } else {
91
- await sendText(`No session at index ${idx}.`);
92
- }
93
- return;
94
- }
95
-
96
- log(`[{{ADAPTER_NAME}}] Unknown command: ${cmd}`);
97
- await sendText(`Unknown command: ${cmd}\nType /h for help.`);
98
- }
99
- }
100
-
101
- // ── Message delivery ─────────────────────────────────────────────────────────
102
-
103
- async function deliverMessage(text: string): Promise<void> {
104
- const mgr = hybridManager;
105
- if (!mgr) {
106
- log("[{{ADAPTER_NAME}}] No hybrid manager — dropping message");
107
- return;
108
- }
109
-
110
- const active = mgr.activeSession;
111
- if (!active) {
112
- await sendText("No active session. Use /n to create one.");
113
- return;
114
- }
115
-
116
- if (active.kind === "api") {
117
- // Deliver via APIBackend — response comes back asynchronously via deliverViaApi
118
- const response = await deliverViaApi(text, async (responseText: string) => {
119
- await sendText(responseText);
120
- });
121
- if (response) {
122
- // Synchronous response (some backends return inline)
123
- await sendText(response);
124
- }
125
- } else {
126
- // Visual (iTerm2) session — TODO: type into terminal if iTerm2 adapter is available
127
- log(`[{{ADAPTER_NAME}}] Visual session delivery not yet implemented`);
128
- await sendText("Visual session delivery not yet implemented for this adapter.");
129
- }
130
- }
131
-
132
- // ── Help text ────────────────────────────────────────────────────────────────
133
-
134
- function buildHelp(): string {
135
- return [
136
- "*{{DISPLAY_NAME}} Adapter — Commands*",
137
- "",
138
- "/h, /help — This help message",
139
- "/s, /sessions — List all sessions",
140
- "/ss, /status — Show active session status",
141
- "/n [name] — Create a new API session",
142
- "/1, /2, ... — Switch to session by index",
143
- "",
144
- "Any other text is delivered to the active AI session.",
145
- ].join("\n");
40
+ // Everything else should have gone to the hub. If we get here,
41
+ // something went wrong with routing.
42
+ log(`[{{ADAPTER_NAME}}] commands.ts: unexpected local message: ${trimmed.slice(0, 60)}`);
43
+ };
146
44
  }