aibroker 0.2.5 → 0.5.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/README.md +164 -4
- package/dist/adapters/iterm/core.d.ts +2 -0
- package/dist/adapters/iterm/core.d.ts.map +1 -1
- package/dist/adapters/iterm/core.js +13 -5
- package/dist/adapters/iterm/core.js.map +1 -1
- package/dist/adapters/kokoro/media.d.ts +2 -1
- package/dist/adapters/kokoro/media.d.ts.map +1 -1
- package/dist/adapters/kokoro/media.js +51 -3
- package/dist/adapters/kokoro/media.js.map +1 -1
- package/dist/adapters/pailot/gateway.d.ts +49 -0
- package/dist/adapters/pailot/gateway.d.ts.map +1 -0
- package/dist/adapters/pailot/gateway.js +502 -0
- package/dist/adapters/pailot/gateway.js.map +1 -0
- package/dist/backend/api.d.ts +5 -1
- package/dist/backend/api.d.ts.map +1 -1
- package/dist/backend/api.js +78 -5
- package/dist/backend/api.js.map +1 -1
- package/dist/core/hybrid.d.ts +67 -0
- package/dist/core/hybrid.d.ts.map +1 -0
- package/dist/core/hybrid.js +182 -0
- package/dist/core/hybrid.js.map +1 -0
- package/dist/core/state.d.ts +3 -0
- package/dist/core/state.d.ts.map +1 -1
- package/dist/core/state.js +4 -0
- package/dist/core/state.js.map +1 -1
- package/dist/daemon/adapter-registry.d.ts +58 -0
- package/dist/daemon/adapter-registry.d.ts.map +1 -0
- package/dist/daemon/adapter-registry.js +179 -0
- package/dist/daemon/adapter-registry.js.map +1 -0
- package/dist/daemon/cli.d.ts +13 -0
- package/dist/daemon/cli.d.ts.map +1 -0
- package/dist/daemon/cli.js +58 -0
- package/dist/daemon/cli.js.map +1 -0
- package/dist/daemon/core-handlers.d.ts +24 -0
- package/dist/daemon/core-handlers.d.ts.map +1 -0
- package/dist/daemon/core-handlers.js +146 -0
- package/dist/daemon/core-handlers.js.map +1 -0
- package/dist/daemon/create-adapter.d.ts +22 -0
- package/dist/daemon/create-adapter.d.ts.map +1 -0
- package/dist/daemon/create-adapter.js +152 -0
- package/dist/daemon/create-adapter.js.map +1 -0
- package/dist/daemon/index.d.ts +12 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +83 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/daemon/pai-projects.d.ts +68 -0
- package/dist/daemon/pai-projects.d.ts.map +1 -0
- package/dist/daemon/pai-projects.js +174 -0
- package/dist/daemon/pai-projects.js.map +1 -0
- package/dist/index.d.ts +13 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/ipc/client.d.ts +4 -1
- package/dist/ipc/client.d.ts.map +1 -1
- package/dist/ipc/client.js +10 -1
- package/dist/ipc/client.js.map +1 -1
- package/dist/types/adapter.d.ts +41 -0
- package/dist/types/adapter.d.ts.map +1 -0
- package/dist/types/adapter.js +2 -0
- package/dist/types/adapter.js.map +1 -0
- package/dist/types/backend.d.ts +31 -1
- package/dist/types/backend.d.ts.map +1 -1
- package/dist/types/broker.d.ts +45 -0
- package/dist/types/broker.d.ts.map +1 -0
- package/dist/types/broker.js +21 -0
- package/dist/types/broker.js.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/package.json +9 -2
- package/templates/adapter/ONBOARDING_PROMPT.md +287 -0
- package/templates/adapter/README.md.tmpl +98 -0
- package/templates/adapter/package.json.tmpl +23 -0
- package/templates/adapter/src/watcher/cli.ts.tmpl +12 -0
- package/templates/adapter/src/watcher/commands.ts.tmpl +146 -0
- package/templates/adapter/src/watcher/connection.ts.tmpl +59 -0
- package/templates/adapter/src/watcher/index.ts.tmpl +177 -0
- package/templates/adapter/src/watcher/ipc-server.ts.tmpl +226 -0
- package/templates/adapter/src/watcher/send.ts.tmpl +62 -0
- package/templates/adapter/src/watcher/state.ts.tmpl +39 -0
- package/templates/adapter/tsconfig.json.tmpl +14 -0
package/dist/backend/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/backend/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/backend/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* core/hybrid.ts — HybridSessionManager: unified API + visual session management.
|
|
3
|
+
*
|
|
4
|
+
* Maintains a flat, creation-ordered list of sessions that can be either:
|
|
5
|
+
* - "api": headless Claude subprocess (managed by APIBackend)
|
|
6
|
+
* - "visual": iTerm2 terminal tab (managed by the transport's iTerm2 adapter)
|
|
7
|
+
*
|
|
8
|
+
* Transports (Whazaa, Telex) use this to provide a single /s list and /N switch
|
|
9
|
+
* that seamlessly mixes both session types. Message delivery routing is based on
|
|
10
|
+
* the active session's kind — the transport decides how to deliver.
|
|
11
|
+
*/
|
|
12
|
+
import type { APIBackend } from "../backend/api.js";
|
|
13
|
+
export type SessionKind = "api" | "visual";
|
|
14
|
+
export interface HybridSession {
|
|
15
|
+
/** Hybrid session ID: "h-1", "h-2", ... */
|
|
16
|
+
id: string;
|
|
17
|
+
/** Human-readable name */
|
|
18
|
+
name: string;
|
|
19
|
+
/** Working directory */
|
|
20
|
+
cwd: string;
|
|
21
|
+
/** Session kind */
|
|
22
|
+
kind: SessionKind;
|
|
23
|
+
/** Creation timestamp */
|
|
24
|
+
createdAt: number;
|
|
25
|
+
/** Backend-specific ID: "api-N" for API sessions, iTerm2 UUID for visual */
|
|
26
|
+
backendSessionId: string;
|
|
27
|
+
}
|
|
28
|
+
export declare class HybridSessionManager {
|
|
29
|
+
readonly apiBackend: APIBackend;
|
|
30
|
+
private readonly sessions;
|
|
31
|
+
private _activeIndex;
|
|
32
|
+
private nextNum;
|
|
33
|
+
constructor(apiBackend: APIBackend);
|
|
34
|
+
/** Create a new headless (API) session. Delegates to APIBackend. */
|
|
35
|
+
createApiSession(name: string, cwd: string): HybridSession;
|
|
36
|
+
/** Register a visual (iTerm2) session. The transport creates the tab and passes the ID. */
|
|
37
|
+
registerVisualSession(name: string, cwd: string, itermSessionId: string): HybridSession;
|
|
38
|
+
/** Switch to session by 1-based display index. Returns the session or undefined. */
|
|
39
|
+
switchToIndex(index: number): HybridSession | undefined;
|
|
40
|
+
/** Remove session by 1-based display index. For API sessions, also ends in APIBackend. */
|
|
41
|
+
removeByIndex(index: number): HybridSession | undefined;
|
|
42
|
+
/** Clear the active session's conversation (API only — no-op for visual). */
|
|
43
|
+
clearActiveSession(): void;
|
|
44
|
+
/** The currently active session, or undefined if none. */
|
|
45
|
+
get activeSession(): HybridSession | undefined;
|
|
46
|
+
/**
|
|
47
|
+
* Remove visual sessions whose iTerm2 tab no longer exists.
|
|
48
|
+
* Call with the set of live iTerm2 session IDs from snapshotAllSessions().
|
|
49
|
+
*/
|
|
50
|
+
pruneDeadVisualSessions(liveIds: Set<string>): number;
|
|
51
|
+
/** All sessions in creation order. */
|
|
52
|
+
listSessions(): HybridSession[];
|
|
53
|
+
/** Get session by 1-based display index. */
|
|
54
|
+
getByIndex(index: number): HybridSession | undefined;
|
|
55
|
+
/** Format the unified session list for display. */
|
|
56
|
+
formatSessionList(): string;
|
|
57
|
+
/**
|
|
58
|
+
* Get a status string for the active session.
|
|
59
|
+
* Returns formatted text for API sessions, null for visual sessions
|
|
60
|
+
* (signals transport to take a screenshot instead).
|
|
61
|
+
*/
|
|
62
|
+
formatActiveStatus(): string | null;
|
|
63
|
+
}
|
|
64
|
+
/** Singleton hybrid manager (set at startup by transport's watch()). */
|
|
65
|
+
export declare let hybridManager: HybridSessionManager | null;
|
|
66
|
+
export declare function setHybridManager(m: HybridSessionManager | null): void;
|
|
67
|
+
//# sourceMappingURL=hybrid.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hybrid.d.ts","sourceRoot":"","sources":["../../src/core/hybrid.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE3C,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,wBAAwB;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,mBAAmB;IACnB,IAAI,EAAE,WAAW,CAAC;IAClB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,oBAAoB;IAC/B,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IAEhC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAChD,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,OAAO,CAAK;gBAER,UAAU,EAAE,UAAU;IAMlC,oEAAoE;IACpE,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,aAAa;IAkB1D,2FAA2F;IAC3F,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,aAAa;IAiBvF,oFAAoF;IACpF,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAYvD,0FAA0F;IAC1F,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAiCvD,6EAA6E;IAC7E,kBAAkB,IAAI,IAAI;IAW1B,0DAA0D;IAC1D,IAAI,aAAa,IAAI,aAAa,GAAG,SAAS,CAE7C;IAED;;;OAGG;IACH,uBAAuB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,MAAM;IAoBrD,sCAAsC;IACtC,YAAY,IAAI,aAAa,EAAE;IAI/B,4CAA4C;IAC5C,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAMpD,mDAAmD;IACnD,iBAAiB,IAAI,MAAM;IAU3B;;;;OAIG;IACH,kBAAkB,IAAI,MAAM,GAAG,IAAI;CASpC;AAED,wEAAwE;AACxE,eAAO,IAAI,aAAa,EAAE,oBAAoB,GAAG,IAAW,CAAC;AAE7D,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAErE"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* core/hybrid.ts — HybridSessionManager: unified API + visual session management.
|
|
3
|
+
*
|
|
4
|
+
* Maintains a flat, creation-ordered list of sessions that can be either:
|
|
5
|
+
* - "api": headless Claude subprocess (managed by APIBackend)
|
|
6
|
+
* - "visual": iTerm2 terminal tab (managed by the transport's iTerm2 adapter)
|
|
7
|
+
*
|
|
8
|
+
* Transports (Whazaa, Telex) use this to provide a single /s list and /N switch
|
|
9
|
+
* that seamlessly mixes both session types. Message delivery routing is based on
|
|
10
|
+
* the active session's kind — the transport decides how to deliver.
|
|
11
|
+
*/
|
|
12
|
+
import { log } from "./log.js";
|
|
13
|
+
export class HybridSessionManager {
|
|
14
|
+
apiBackend;
|
|
15
|
+
sessions = [];
|
|
16
|
+
_activeIndex = -1;
|
|
17
|
+
nextNum = 1;
|
|
18
|
+
constructor(apiBackend) {
|
|
19
|
+
this.apiBackend = apiBackend;
|
|
20
|
+
}
|
|
21
|
+
// ── Session creation ──
|
|
22
|
+
/** Create a new headless (API) session. Delegates to APIBackend. */
|
|
23
|
+
createApiSession(name, cwd) {
|
|
24
|
+
const apiSession = this.apiBackend.createSession(name, cwd);
|
|
25
|
+
const session = {
|
|
26
|
+
id: `h-${this.nextNum++}`,
|
|
27
|
+
name,
|
|
28
|
+
cwd,
|
|
29
|
+
kind: "api",
|
|
30
|
+
createdAt: Date.now(),
|
|
31
|
+
backendSessionId: apiSession.id,
|
|
32
|
+
};
|
|
33
|
+
this.sessions.push(session);
|
|
34
|
+
this._activeIndex = this.sessions.length - 1;
|
|
35
|
+
// Keep APIBackend active session in sync
|
|
36
|
+
this.apiBackend.activeSessionId = apiSession.id;
|
|
37
|
+
log(`HybridManager: created API session "${name}" (${session.id} -> ${apiSession.id})`);
|
|
38
|
+
return session;
|
|
39
|
+
}
|
|
40
|
+
/** Register a visual (iTerm2) session. The transport creates the tab and passes the ID. */
|
|
41
|
+
registerVisualSession(name, cwd, itermSessionId) {
|
|
42
|
+
const session = {
|
|
43
|
+
id: `h-${this.nextNum++}`,
|
|
44
|
+
name,
|
|
45
|
+
cwd,
|
|
46
|
+
kind: "visual",
|
|
47
|
+
createdAt: Date.now(),
|
|
48
|
+
backendSessionId: itermSessionId,
|
|
49
|
+
};
|
|
50
|
+
this.sessions.push(session);
|
|
51
|
+
this._activeIndex = this.sessions.length - 1;
|
|
52
|
+
log(`HybridManager: registered visual session "${name}" (${session.id} -> ${itermSessionId})`);
|
|
53
|
+
return session;
|
|
54
|
+
}
|
|
55
|
+
// ── Navigation ──
|
|
56
|
+
/** Switch to session by 1-based display index. Returns the session or undefined. */
|
|
57
|
+
switchToIndex(index) {
|
|
58
|
+
const session = this.sessions[index - 1];
|
|
59
|
+
if (!session)
|
|
60
|
+
return undefined;
|
|
61
|
+
this._activeIndex = index - 1;
|
|
62
|
+
// Sync APIBackend active session when switching to an API session
|
|
63
|
+
if (session.kind === "api") {
|
|
64
|
+
this.apiBackend.activeSessionId = session.backendSessionId;
|
|
65
|
+
}
|
|
66
|
+
log(`HybridManager: switched to ${session.kind} session "${session.name}" (${session.id})`);
|
|
67
|
+
return session;
|
|
68
|
+
}
|
|
69
|
+
/** Remove session by 1-based display index. For API sessions, also ends in APIBackend. */
|
|
70
|
+
removeByIndex(index) {
|
|
71
|
+
const session = this.sessions[index - 1];
|
|
72
|
+
if (!session)
|
|
73
|
+
return undefined;
|
|
74
|
+
// End in APIBackend if it's an API session
|
|
75
|
+
if (session.kind === "api") {
|
|
76
|
+
this.apiBackend.endSession(session.backendSessionId);
|
|
77
|
+
}
|
|
78
|
+
this.sessions.splice(index - 1, 1);
|
|
79
|
+
// Adjust active index
|
|
80
|
+
if (this.sessions.length === 0) {
|
|
81
|
+
this._activeIndex = -1;
|
|
82
|
+
}
|
|
83
|
+
else if (this._activeIndex >= this.sessions.length) {
|
|
84
|
+
this._activeIndex = this.sessions.length - 1;
|
|
85
|
+
}
|
|
86
|
+
else if (index - 1 < this._activeIndex) {
|
|
87
|
+
this._activeIndex--;
|
|
88
|
+
}
|
|
89
|
+
else if (index - 1 === this._activeIndex) {
|
|
90
|
+
// Was active — pick the previous, or first
|
|
91
|
+
this._activeIndex = Math.min(this._activeIndex, this.sessions.length - 1);
|
|
92
|
+
}
|
|
93
|
+
// Re-sync APIBackend active session
|
|
94
|
+
const newActive = this.activeSession;
|
|
95
|
+
if (newActive?.kind === "api") {
|
|
96
|
+
this.apiBackend.activeSessionId = newActive.backendSessionId;
|
|
97
|
+
}
|
|
98
|
+
log(`HybridManager: removed ${session.kind} session "${session.name}" (${session.id})`);
|
|
99
|
+
return session;
|
|
100
|
+
}
|
|
101
|
+
/** Clear the active session's conversation (API only — no-op for visual). */
|
|
102
|
+
clearActiveSession() {
|
|
103
|
+
const active = this.activeSession;
|
|
104
|
+
if (!active)
|
|
105
|
+
return;
|
|
106
|
+
if (active.kind === "api") {
|
|
107
|
+
this.apiBackend.clearSession(active.backendSessionId);
|
|
108
|
+
log(`HybridManager: cleared API session "${active.name}"`);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// ── Accessors ──
|
|
112
|
+
/** The currently active session, or undefined if none. */
|
|
113
|
+
get activeSession() {
|
|
114
|
+
return this._activeIndex >= 0 ? this.sessions[this._activeIndex] : undefined;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Remove visual sessions whose iTerm2 tab no longer exists.
|
|
118
|
+
* Call with the set of live iTerm2 session IDs from snapshotAllSessions().
|
|
119
|
+
*/
|
|
120
|
+
pruneDeadVisualSessions(liveIds) {
|
|
121
|
+
let pruned = 0;
|
|
122
|
+
for (let i = this.sessions.length - 1; i >= 0; i--) {
|
|
123
|
+
const s = this.sessions[i];
|
|
124
|
+
if (s.kind === "visual" && !liveIds.has(s.backendSessionId)) {
|
|
125
|
+
this.sessions.splice(i, 1);
|
|
126
|
+
pruned++;
|
|
127
|
+
log(`HybridManager: pruned dead visual session "${s.name}" (${s.backendSessionId.slice(0, 8)}...)`);
|
|
128
|
+
// Adjust active index
|
|
129
|
+
if (i < this._activeIndex) {
|
|
130
|
+
this._activeIndex--;
|
|
131
|
+
}
|
|
132
|
+
else if (i === this._activeIndex) {
|
|
133
|
+
this._activeIndex = Math.min(this._activeIndex, this.sessions.length - 1);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
if (this.sessions.length === 0)
|
|
138
|
+
this._activeIndex = -1;
|
|
139
|
+
return pruned;
|
|
140
|
+
}
|
|
141
|
+
/** All sessions in creation order. */
|
|
142
|
+
listSessions() {
|
|
143
|
+
return [...this.sessions];
|
|
144
|
+
}
|
|
145
|
+
/** Get session by 1-based display index. */
|
|
146
|
+
getByIndex(index) {
|
|
147
|
+
return this.sessions[index - 1];
|
|
148
|
+
}
|
|
149
|
+
// ── Display ──
|
|
150
|
+
/** Format the unified session list for display. */
|
|
151
|
+
formatSessionList() {
|
|
152
|
+
if (this.sessions.length === 0)
|
|
153
|
+
return "No sessions.";
|
|
154
|
+
return this.sessions.map((s, i) => {
|
|
155
|
+
const isActive = i === this._activeIndex;
|
|
156
|
+
const tag = s.kind === "api" ? "[api]" : "[visual]";
|
|
157
|
+
const marker = isActive ? "*" : " ";
|
|
158
|
+
return `${marker}${i + 1}. ${s.name} ${tag} (${s.cwd})`;
|
|
159
|
+
}).join("\n");
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Get a status string for the active session.
|
|
163
|
+
* Returns formatted text for API sessions, null for visual sessions
|
|
164
|
+
* (signals transport to take a screenshot instead).
|
|
165
|
+
*/
|
|
166
|
+
formatActiveStatus() {
|
|
167
|
+
const active = this.activeSession;
|
|
168
|
+
if (!active)
|
|
169
|
+
return "No active session.";
|
|
170
|
+
if (active.kind === "api") {
|
|
171
|
+
return this.apiBackend.formatStatus();
|
|
172
|
+
}
|
|
173
|
+
// Visual session — transport should take a screenshot
|
|
174
|
+
return null;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
/** Singleton hybrid manager (set at startup by transport's watch()). */
|
|
178
|
+
export let hybridManager = null;
|
|
179
|
+
export function setHybridManager(m) {
|
|
180
|
+
hybridManager = m;
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=hybrid.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hybrid.js","sourceRoot":"","sources":["../../src/core/hybrid.ts"],"names":[],"mappings":"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"}
|
package/dist/core/state.d.ts
CHANGED
|
@@ -39,6 +39,9 @@ export declare function setVoiceConfig(cfg: VoiceConfig): void;
|
|
|
39
39
|
export type CommandHandler = (text: string, timestamp: number) => void | Promise<void>;
|
|
40
40
|
export declare let commandHandler: CommandHandler | null;
|
|
41
41
|
export declare function setCommandHandler(handler: CommandHandler | null): void;
|
|
42
|
+
export type MessageSource = string;
|
|
43
|
+
export declare let messageSource: MessageSource;
|
|
44
|
+
export declare function setMessageSource(src: MessageSource): void;
|
|
42
45
|
export declare const sentMessageIds: Set<string | number>;
|
|
43
46
|
export declare function dispatchIncomingMessage(body: string, timestamp: number): void;
|
|
44
47
|
export declare function enqueueContactMessage(contactId: string, body: string, timestamp: number): void;
|
package/dist/core/state.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAI3B,eAAO,MAAM,eAAe,gCAAuC,CAAC;AACpE,eAAO,MAAM,eAAe;UAA2B,MAAM;eAAa,MAAM;EAAK,CAAC;AACtF,eAAO,MAAM,eAAe,qBAA4B,CAAC;AAEzD,eAAO,IAAI,cAAc,EAAE,MAAM,GAAG,IAAW,CAAC;AAChD,eAAO,IAAI,oBAAoB,QAAK,CAAC;AAErC,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEzD;AAED,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAExD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAIvF;AAID,eAAO,IAAI,iBAAiB,EAAE,KAAK,CAAC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC,GAAG,IAAW,CAAC;AAEjB,eAAO,IAAI,qBAAqB,QAAI,CAAC;AAErC,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,OAAO,iBAAiB,EAC9B,IAAI,EAAE,MAAM,GACX,IAAI,CAGN;AAID,eAAO,MAAM,YAAY,8BAAqC,CAAC;AAC/D,eAAO,MAAM,aAAa,6BAAoC,CAAC;AAC/D,eAAO,MAAM,oBAAoB,8BAAqC,CAAC;AAIvE,eAAO,MAAM,gBAAgB,2BAAkC,CAAC;AAIhE,eAAO,IAAI,WAAW,EAAE,WAKvB,CAAC;AAEF,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAErD;AAID,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvF,eAAO,IAAI,cAAc,EAAE,cAAc,GAAG,IAAW,CAAC;AAExD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAEtE;AAID,eAAO,MAAM,cAAc,sBAA6B,CAAC;AAIzD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAiB7E;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,IAAI,CAON"}
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,mBAAmB,CAAC;AAI3B,eAAO,MAAM,eAAe,gCAAuC,CAAC;AACpE,eAAO,MAAM,eAAe;UAA2B,MAAM;eAAa,MAAM;EAAK,CAAC;AACtF,eAAO,MAAM,eAAe,qBAA4B,CAAC;AAEzD,eAAO,IAAI,cAAc,EAAE,MAAM,GAAG,IAAW,CAAC;AAChD,eAAO,IAAI,oBAAoB,QAAK,CAAC;AAErC,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAEzD;AAED,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAExD;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,KAAK,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,IAAI,CAIvF;AAID,eAAO,IAAI,iBAAiB,EAAE,KAAK,CAAC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC5B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC,GAAG,IAAW,CAAC;AAEjB,eAAO,IAAI,qBAAqB,QAAI,CAAC;AAErC,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,OAAO,iBAAiB,EAC9B,IAAI,EAAE,MAAM,GACX,IAAI,CAGN;AAID,eAAO,MAAM,YAAY,8BAAqC,CAAC;AAC/D,eAAO,MAAM,aAAa,6BAAoC,CAAC;AAC/D,eAAO,MAAM,oBAAoB,8BAAqC,CAAC;AAIvE,eAAO,MAAM,gBAAgB,2BAAkC,CAAC;AAIhE,eAAO,IAAI,WAAW,EAAE,WAKvB,CAAC;AAEF,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAErD;AAID,MAAM,MAAM,cAAc,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAEvF,eAAO,IAAI,cAAc,EAAE,cAAc,GAAG,IAAW,CAAC;AAExD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CAEtE;AAID,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC;AACnC,eAAO,IAAI,aAAa,EAAE,aAA0B,CAAC;AAErD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAEzD;AAID,eAAO,MAAM,cAAc,sBAA6B,CAAC;AAIzD,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAiB7E;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,GAChB,IAAI,CAON"}
|
package/dist/core/state.js
CHANGED
|
@@ -50,6 +50,10 @@ export let commandHandler = null;
|
|
|
50
50
|
export function setCommandHandler(handler) {
|
|
51
51
|
commandHandler = handler;
|
|
52
52
|
}
|
|
53
|
+
export let messageSource = "whatsapp";
|
|
54
|
+
export function setMessageSource(src) {
|
|
55
|
+
messageSource = src;
|
|
56
|
+
}
|
|
53
57
|
// ── Self-Echo Suppression ──
|
|
54
58
|
export const sentMessageIds = new Set();
|
|
55
59
|
// ── Message Dispatch ──
|
package/dist/core/state.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/core/state.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* daemon/adapter-registry.ts — Registry of connected adapters + routing engine.
|
|
3
|
+
*
|
|
4
|
+
* Phase 1: minimal adapter tracking and commandHandler dispatch.
|
|
5
|
+
* Phase 2: full BrokerMessage routing with hub -> adapter delivery via IPC.
|
|
6
|
+
*/
|
|
7
|
+
import type { BrokerMessage, RouteResult } from "../types/broker.js";
|
|
8
|
+
import type { AdapterHealth } from "../types/adapter.js";
|
|
9
|
+
export interface AdapterDescriptor {
|
|
10
|
+
name: string;
|
|
11
|
+
socketPath: string;
|
|
12
|
+
registeredAt: number;
|
|
13
|
+
}
|
|
14
|
+
export declare class AdapterRegistry {
|
|
15
|
+
private readonly adapters;
|
|
16
|
+
private readonly lastHealth;
|
|
17
|
+
private pollInterval;
|
|
18
|
+
register(descriptor: AdapterDescriptor): void;
|
|
19
|
+
unregister(name: string): void;
|
|
20
|
+
startHealthPolling(intervalMs?: number): void;
|
|
21
|
+
stopHealthPolling(): void;
|
|
22
|
+
getAdapterHealth(name: string): AdapterHealth | undefined;
|
|
23
|
+
getAllHealth(): Map<string, AdapterHealth>;
|
|
24
|
+
private pollAllAdapters;
|
|
25
|
+
private pollAdapter;
|
|
26
|
+
get(name: string): AdapterDescriptor | undefined;
|
|
27
|
+
list(): AdapterDescriptor[];
|
|
28
|
+
/**
|
|
29
|
+
* Dispatch an incoming message from an adapter source through the
|
|
30
|
+
* BrokerMessage routing pipeline.
|
|
31
|
+
*
|
|
32
|
+
* Phase 1 called commandHandler directly. Phase 3 creates a proper
|
|
33
|
+
* BrokerMessage and routes it so PAILot messages flow through the
|
|
34
|
+
* same adapter pipeline as everything else (PAILot -> hub -> Whazaa).
|
|
35
|
+
*
|
|
36
|
+
* Falls back to commandHandler if no adapters are registered (embedded-like).
|
|
37
|
+
*/
|
|
38
|
+
dispatchIncoming(source: string, text: string, timestamp: number): void;
|
|
39
|
+
/**
|
|
40
|
+
* Route a BrokerMessage to the appropriate adapter.
|
|
41
|
+
*
|
|
42
|
+
* Routing logic:
|
|
43
|
+
* 1. If target is specified and adapter is registered -> deliver to that adapter
|
|
44
|
+
* 2. If target is specified but not registered -> error
|
|
45
|
+
* 3. If target is omitted and type is "command" -> run through commandHandler
|
|
46
|
+
* 4. If target is omitted -> deliver to first registered messaging adapter
|
|
47
|
+
* 5. If no adapters registered -> error
|
|
48
|
+
*/
|
|
49
|
+
route(message: BrokerMessage): Promise<RouteResult>;
|
|
50
|
+
/**
|
|
51
|
+
* Deliver a BrokerMessage to an adapter via its IPC socket.
|
|
52
|
+
*
|
|
53
|
+
* The hub acts as an IPC client, connecting to the adapter's socket
|
|
54
|
+
* and calling the "deliver" method with the message as payload.
|
|
55
|
+
*/
|
|
56
|
+
deliverToAdapter(adapter: AdapterDescriptor, message: BrokerMessage): Promise<RouteResult>;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=adapter-registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-registry.d.ts","sourceRoot":"","sources":["../../src/daemon/adapter-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAID,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoC;IAC/D,OAAO,CAAC,YAAY,CAA+C;IAEnE,QAAQ,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI;IAK7C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQ9B,kBAAkB,CAAC,UAAU,GAAE,MAAe,GAAG,IAAI;IAMrD,iBAAiB,IAAI,IAAI;IAOzB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIzD,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC;YAI5B,eAAe;YAKf,WAAW;IAoCzB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAIhD,IAAI,IAAI,iBAAiB,EAAE;IAI3B;;;;;;;;;OASG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAuBvE;;;;;;;;;OASG;IACG,KAAK,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IAmCzD;;;;;OAKG;IACG,gBAAgB,CACpB,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,WAAW,CAAC;CAexB"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* daemon/adapter-registry.ts — Registry of connected adapters + routing engine.
|
|
3
|
+
*
|
|
4
|
+
* Phase 1: minimal adapter tracking and commandHandler dispatch.
|
|
5
|
+
* Phase 2: full BrokerMessage routing with hub -> adapter delivery via IPC.
|
|
6
|
+
*/
|
|
7
|
+
import { commandHandler } from "../core/state.js";
|
|
8
|
+
import { log } from "../core/log.js";
|
|
9
|
+
import { WatcherClient } from "../ipc/client.js";
|
|
10
|
+
import { createBrokerMessage } from "../types/broker.js";
|
|
11
|
+
const HEALTH_TIMEOUT_MS = 5_000;
|
|
12
|
+
export class AdapterRegistry {
|
|
13
|
+
adapters = new Map();
|
|
14
|
+
lastHealth = new Map();
|
|
15
|
+
pollInterval = null;
|
|
16
|
+
register(descriptor) {
|
|
17
|
+
this.adapters.set(descriptor.name, descriptor);
|
|
18
|
+
log(`Adapter registered: ${descriptor.name} (socket: ${descriptor.socketPath})`);
|
|
19
|
+
}
|
|
20
|
+
unregister(name) {
|
|
21
|
+
this.adapters.delete(name);
|
|
22
|
+
this.lastHealth.delete(name);
|
|
23
|
+
log(`Adapter unregistered: ${name}`);
|
|
24
|
+
}
|
|
25
|
+
// ── Health Polling ──
|
|
26
|
+
startHealthPolling(intervalMs = 60_000) {
|
|
27
|
+
if (this.pollInterval !== null)
|
|
28
|
+
return;
|
|
29
|
+
log(`[hub] health polling started (interval: ${intervalMs}ms)`);
|
|
30
|
+
this.pollInterval = setInterval(() => { void this.pollAllAdapters(); }, intervalMs);
|
|
31
|
+
}
|
|
32
|
+
stopHealthPolling() {
|
|
33
|
+
if (this.pollInterval === null)
|
|
34
|
+
return;
|
|
35
|
+
clearInterval(this.pollInterval);
|
|
36
|
+
this.pollInterval = null;
|
|
37
|
+
log(`[hub] health polling stopped`);
|
|
38
|
+
}
|
|
39
|
+
getAdapterHealth(name) {
|
|
40
|
+
return this.lastHealth.get(name);
|
|
41
|
+
}
|
|
42
|
+
getAllHealth() {
|
|
43
|
+
return new Map(this.lastHealth);
|
|
44
|
+
}
|
|
45
|
+
async pollAllAdapters() {
|
|
46
|
+
const adapters = this.list();
|
|
47
|
+
await Promise.all(adapters.map(a => this.pollAdapter(a)));
|
|
48
|
+
}
|
|
49
|
+
async pollAdapter(adapter) {
|
|
50
|
+
const previous = this.lastHealth.get(adapter.name);
|
|
51
|
+
let health;
|
|
52
|
+
try {
|
|
53
|
+
const client = new WatcherClient(adapter.socketPath);
|
|
54
|
+
const result = await Promise.race([
|
|
55
|
+
client.call_raw("health", {}),
|
|
56
|
+
new Promise((_, reject) => setTimeout(() => reject(new Error("health poll timed out")), HEALTH_TIMEOUT_MS)),
|
|
57
|
+
]);
|
|
58
|
+
health = result;
|
|
59
|
+
}
|
|
60
|
+
catch (err) {
|
|
61
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
62
|
+
health = {
|
|
63
|
+
status: "down",
|
|
64
|
+
connectionStatus: "disconnected",
|
|
65
|
+
stats: { messagesReceived: 0, messagesSent: 0, errors: 0 },
|
|
66
|
+
lastMessageAgo: null,
|
|
67
|
+
detail: msg,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
this.lastHealth.set(adapter.name, health);
|
|
71
|
+
// Log on status change
|
|
72
|
+
if (previous === undefined || previous.status !== health.status) {
|
|
73
|
+
if (health.status === "ok") {
|
|
74
|
+
log(`[hub] adapter ${adapter.name} health: ok`);
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
log(`[hub] WARNING: adapter ${adapter.name} health: ${health.status}${health.detail ? ` — ${health.detail}` : ""}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
get(name) {
|
|
82
|
+
return this.adapters.get(name);
|
|
83
|
+
}
|
|
84
|
+
list() {
|
|
85
|
+
return [...this.adapters.values()];
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Dispatch an incoming message from an adapter source through the
|
|
89
|
+
* BrokerMessage routing pipeline.
|
|
90
|
+
*
|
|
91
|
+
* Phase 1 called commandHandler directly. Phase 3 creates a proper
|
|
92
|
+
* BrokerMessage and routes it so PAILot messages flow through the
|
|
93
|
+
* same adapter pipeline as everything else (PAILot -> hub -> Whazaa).
|
|
94
|
+
*
|
|
95
|
+
* Falls back to commandHandler if no adapters are registered (embedded-like).
|
|
96
|
+
*/
|
|
97
|
+
dispatchIncoming(source, text, timestamp) {
|
|
98
|
+
log(`[hub] incoming from ${source}: ${text.slice(0, 80)}`);
|
|
99
|
+
const message = createBrokerMessage(source, "command", { text }, undefined);
|
|
100
|
+
message.timestamp = timestamp;
|
|
101
|
+
// Route through the standard pipeline
|
|
102
|
+
void this.route(message).then((result) => {
|
|
103
|
+
if (!result.ok) {
|
|
104
|
+
// Fallback: if routing failed (e.g. no adapters registered),
|
|
105
|
+
// try the local commandHandler for backward compatibility
|
|
106
|
+
log(`[hub] route failed (${result.error}), falling back to commandHandler`);
|
|
107
|
+
if (commandHandler) {
|
|
108
|
+
void commandHandler(text, timestamp);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
log(`[hub] no command handler and no adapters — message dropped`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
// ── Phase 2: BrokerMessage Routing ──
|
|
117
|
+
/**
|
|
118
|
+
* Route a BrokerMessage to the appropriate adapter.
|
|
119
|
+
*
|
|
120
|
+
* Routing logic:
|
|
121
|
+
* 1. If target is specified and adapter is registered -> deliver to that adapter
|
|
122
|
+
* 2. If target is specified but not registered -> error
|
|
123
|
+
* 3. If target is omitted and type is "command" -> run through commandHandler
|
|
124
|
+
* 4. If target is omitted -> deliver to first registered messaging adapter
|
|
125
|
+
* 5. If no adapters registered -> error
|
|
126
|
+
*/
|
|
127
|
+
async route(message) {
|
|
128
|
+
log(`[hub] route: ${message.type} from=${message.source} target=${message.target ?? "(default)"} text=${(message.payload.text ?? "").slice(0, 60)}`);
|
|
129
|
+
// Explicit target
|
|
130
|
+
if (message.target) {
|
|
131
|
+
const adapter = this.adapters.get(message.target);
|
|
132
|
+
if (!adapter) {
|
|
133
|
+
return { ok: false, error: `Target adapter '${message.target}' is not registered` };
|
|
134
|
+
}
|
|
135
|
+
return this.deliverToAdapter(adapter, message);
|
|
136
|
+
}
|
|
137
|
+
// Commands with no explicit target -> hub commandHandler
|
|
138
|
+
if (message.type === "command") {
|
|
139
|
+
if (commandHandler) {
|
|
140
|
+
await commandHandler(message.payload.text ?? "", message.timestamp);
|
|
141
|
+
return { ok: true, deliveredTo: "hub" };
|
|
142
|
+
}
|
|
143
|
+
return { ok: false, error: "No command handler registered on the hub" };
|
|
144
|
+
}
|
|
145
|
+
// Default routing: first registered adapter that is NOT the source
|
|
146
|
+
const candidates = this.list().filter(a => a.name !== message.source);
|
|
147
|
+
if (candidates.length === 0) {
|
|
148
|
+
// Fall back to any adapter (including source, for self-chat scenarios)
|
|
149
|
+
const any = this.list();
|
|
150
|
+
if (any.length === 0) {
|
|
151
|
+
return { ok: false, error: "No adapters registered — cannot route message" };
|
|
152
|
+
}
|
|
153
|
+
return this.deliverToAdapter(any[0], message);
|
|
154
|
+
}
|
|
155
|
+
return this.deliverToAdapter(candidates[0], message);
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Deliver a BrokerMessage to an adapter via its IPC socket.
|
|
159
|
+
*
|
|
160
|
+
* The hub acts as an IPC client, connecting to the adapter's socket
|
|
161
|
+
* and calling the "deliver" method with the message as payload.
|
|
162
|
+
*/
|
|
163
|
+
async deliverToAdapter(adapter, message) {
|
|
164
|
+
log(`[hub] delivering to ${adapter.name} via ${adapter.socketPath}`);
|
|
165
|
+
const client = new WatcherClient(adapter.socketPath);
|
|
166
|
+
try {
|
|
167
|
+
const result = await client.call_raw("deliver", {
|
|
168
|
+
message: message,
|
|
169
|
+
});
|
|
170
|
+
return { ok: true, deliveredTo: adapter.name, adapterResult: result };
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
174
|
+
log(`[hub] delivery to ${adapter.name} failed: ${msg}`);
|
|
175
|
+
return { ok: false, error: `Delivery to ${adapter.name} failed: ${msg}` };
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
//# sourceMappingURL=adapter-registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter-registry.js","sourceRoot":"","sources":["../../src/daemon/adapter-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* daemon/cli.ts — CLI for the aibroker daemon.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* aibroker start Start the daemon
|
|
6
|
+
* aibroker start --socket /tmp/aibroker.sock
|
|
7
|
+
* aibroker status Query daemon status
|
|
8
|
+
* aibroker stop Send SIGTERM to daemon
|
|
9
|
+
* aibroker create-adapter <name> [--display-name <Name>] [--output <dir>]
|
|
10
|
+
* Scaffold a new adapter from the built-in template
|
|
11
|
+
*/
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=cli.d.ts.map
|