@allin-ai/agent-client 0.1.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.
- package/LICENSE +21 -0
- package/README.md +53 -0
- package/bin/allinai-agent +4 -0
- package/dist/capabilities/context.d.ts +16 -0
- package/dist/capabilities/context.d.ts.map +1 -0
- package/dist/capabilities/context.js +98 -0
- package/dist/capabilities/context.js.map +1 -0
- package/dist/capabilities/input.d.ts +7 -0
- package/dist/capabilities/input.d.ts.map +1 -0
- package/dist/capabilities/input.js +224 -0
- package/dist/capabilities/input.js.map +1 -0
- package/dist/capabilities/manifest.d.ts +15 -0
- package/dist/capabilities/manifest.d.ts.map +1 -0
- package/dist/capabilities/manifest.js +292 -0
- package/dist/capabilities/manifest.js.map +1 -0
- package/dist/capabilities/policy.d.ts +17 -0
- package/dist/capabilities/policy.d.ts.map +1 -0
- package/dist/capabilities/policy.js +57 -0
- package/dist/capabilities/policy.js.map +1 -0
- package/dist/capabilities/shell-host.d.ts +32 -0
- package/dist/capabilities/shell-host.d.ts.map +1 -0
- package/dist/capabilities/shell-host.js +378 -0
- package/dist/capabilities/shell-host.js.map +1 -0
- package/dist/capabilities/shell-wire.d.ts +13 -0
- package/dist/capabilities/shell-wire.d.ts.map +1 -0
- package/dist/capabilities/shell-wire.js +60 -0
- package/dist/capabilities/shell-wire.js.map +1 -0
- package/dist/capabilities/types.d.ts +46 -0
- package/dist/capabilities/types.d.ts.map +1 -0
- package/dist/capabilities/types.js +7 -0
- package/dist/capabilities/types.js.map +1 -0
- package/dist/cli/commands.d.ts +83 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +638 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/main.d.ts +2 -0
- package/dist/cli/main.d.ts.map +1 -0
- package/dist/cli/main.js +7 -0
- package/dist/cli/main.js.map +1 -0
- package/dist/client/state-store.d.ts +80 -0
- package/dist/client/state-store.d.ts.map +1 -0
- package/dist/client/state-store.js +422 -0
- package/dist/client/state-store.js.map +1 -0
- package/dist/client/supervisor.d.ts +118 -0
- package/dist/client/supervisor.d.ts.map +1 -0
- package/dist/client/supervisor.js +627 -0
- package/dist/client/supervisor.js.map +1 -0
- package/dist/client/transport.d.ts +30 -0
- package/dist/client/transport.d.ts.map +1 -0
- package/dist/client/transport.js +2 -0
- package/dist/client/transport.js.map +1 -0
- package/dist/client/types.d.ts +65 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +13 -0
- package/dist/client/types.js.map +1 -0
- package/dist/client/wire.d.ts +32 -0
- package/dist/client/wire.d.ts.map +1 -0
- package/dist/client/wire.js +302 -0
- package/dist/client/wire.js.map +1 -0
- package/dist/client/ws-transport.d.ts +54 -0
- package/dist/client/ws-transport.d.ts.map +1 -0
- package/dist/client/ws-transport.js +229 -0
- package/dist/client/ws-transport.js.map +1 -0
- package/dist/config.d.ts +38 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +125 -0
- package/dist/config.js.map +1 -0
- package/dist/control.d.ts +59 -0
- package/dist/control.d.ts.map +1 -0
- package/dist/control.js +217 -0
- package/dist/control.js.map +1 -0
- package/dist/credentials.d.ts +44 -0
- package/dist/credentials.d.ts.map +1 -0
- package/dist/credentials.js +229 -0
- package/dist/credentials.js.map +1 -0
- package/dist/hub.d.ts +83 -0
- package/dist/hub.d.ts.map +1 -0
- package/dist/hub.js +412 -0
- package/dist/hub.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +18 -0
- package/dist/index.js.map +1 -0
- package/dist/logger.d.ts +47 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +175 -0
- package/dist/logger.js.map +1 -0
- package/dist/paths.d.ts +29 -0
- package/dist/paths.d.ts.map +1 -0
- package/dist/paths.js +50 -0
- package/dist/paths.js.map +1 -0
- package/dist/plugins/git.d.ts +30 -0
- package/dist/plugins/git.d.ts.map +1 -0
- package/dist/plugins/git.js +80 -0
- package/dist/plugins/git.js.map +1 -0
- package/dist/plugins/manager.d.ts +41 -0
- package/dist/plugins/manager.d.ts.map +1 -0
- package/dist/plugins/manager.js +328 -0
- package/dist/plugins/manager.js.map +1 -0
- package/dist/plugins/manifest.d.ts +9 -0
- package/dist/plugins/manifest.d.ts.map +1 -0
- package/dist/plugins/manifest.js +63 -0
- package/dist/plugins/manifest.js.map +1 -0
- package/dist/plugins/types.d.ts +39 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/plugins/types.js +2 -0
- package/dist/plugins/types.js.map +1 -0
- package/dist/runtime/claude.d.ts +30 -0
- package/dist/runtime/claude.d.ts.map +1 -0
- package/dist/runtime/claude.js +163 -0
- package/dist/runtime/claude.js.map +1 -0
- package/dist/runtime/codex.d.ts +44 -0
- package/dist/runtime/codex.d.ts.map +1 -0
- package/dist/runtime/codex.js +192 -0
- package/dist/runtime/codex.js.map +1 -0
- package/dist/runtime/events.d.ts +7 -0
- package/dist/runtime/events.d.ts.map +1 -0
- package/dist/runtime/events.js +37 -0
- package/dist/runtime/events.js.map +1 -0
- package/dist/runtime/index.d.ts +10 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +10 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/pi.d.ts +34 -0
- package/dist/runtime/pi.d.ts.map +1 -0
- package/dist/runtime/pi.js +211 -0
- package/dist/runtime/pi.js.map +1 -0
- package/dist/runtime/registry.d.ts +16 -0
- package/dist/runtime/registry.d.ts.map +1 -0
- package/dist/runtime/registry.js +22 -0
- package/dist/runtime/registry.js.map +1 -0
- package/dist/runtime/runner-child.d.ts +2 -0
- package/dist/runtime/runner-child.d.ts.map +1 -0
- package/dist/runtime/runner-child.js +41 -0
- package/dist/runtime/runner-child.js.map +1 -0
- package/dist/runtime/runner-manager.d.ts +77 -0
- package/dist/runtime/runner-manager.d.ts.map +1 -0
- package/dist/runtime/runner-manager.js +295 -0
- package/dist/runtime/runner-manager.js.map +1 -0
- package/dist/runtime/runner-wire.d.ts +23 -0
- package/dist/runtime/runner-wire.d.ts.map +1 -0
- package/dist/runtime/runner-wire.js +93 -0
- package/dist/runtime/runner-wire.js.map +1 -0
- package/dist/runtime/types.d.ts +43 -0
- package/dist/runtime/types.d.ts.map +1 -0
- package/dist/runtime/types.js +3 -0
- package/dist/runtime/types.js.map +1 -0
- package/dist/runtime/zcode.d.ts +14 -0
- package/dist/runtime/zcode.d.ts.map +1 -0
- package/dist/runtime/zcode.js +21 -0
- package/dist/runtime/zcode.js.map +1 -0
- package/dist/service/launchd.d.ts +34 -0
- package/dist/service/launchd.d.ts.map +1 -0
- package/dist/service/launchd.js +86 -0
- package/dist/service/launchd.js.map +1 -0
- package/dist/service/systemd.d.ts +16 -0
- package/dist/service/systemd.d.ts.map +1 -0
- package/dist/service/systemd.js +89 -0
- package/dist/service/systemd.js.map +1 -0
- package/dist/wire.d.ts +24 -0
- package/dist/wire.d.ts.map +1 -0
- package/dist/wire.js +7 -0
- package/dist/wire.js.map +1 -0
- package/package.json +140 -0
package/dist/hub.js
ADDED
|
@@ -0,0 +1,412 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-memory embedded Hub for the Agent Client v2 wire. It stores only
|
|
3
|
+
* routing/observability state: local execution always remains with the
|
|
4
|
+
* paired Client and never runs inside this process.
|
|
5
|
+
*/
|
|
6
|
+
import { randomUUID } from "node:crypto";
|
|
7
|
+
import http from "node:http";
|
|
8
|
+
import { WebSocketServer } from "ws";
|
|
9
|
+
import { bridgeLog, setBridgeLogger } from "./logger.js";
|
|
10
|
+
import { AGENT_CLIENT_PROTOCOL_VERSION } from "./wire.js";
|
|
11
|
+
import { parseClientEventBatch, parseClientHello, parsePluginSyncAcknowledgement, } from "./client/wire.js";
|
|
12
|
+
export const HUB_HEARTBEAT_STALE_MS = 3 * 30_000;
|
|
13
|
+
const EVENTS_LOG_LIMIT = 1_000;
|
|
14
|
+
function isTerminalClientEvent(eventType) {
|
|
15
|
+
return [
|
|
16
|
+
"done",
|
|
17
|
+
"failed",
|
|
18
|
+
"cancelled",
|
|
19
|
+
"recovery_required",
|
|
20
|
+
"rejected",
|
|
21
|
+
].includes(eventType);
|
|
22
|
+
}
|
|
23
|
+
export function createMemoryHub(options = {}) {
|
|
24
|
+
if (options.logger)
|
|
25
|
+
setBridgeLogger(options.logger);
|
|
26
|
+
const token = options.token ?? `mhub-${randomUUID()}`;
|
|
27
|
+
const staleMs = options.staleMs ?? HUB_HEARTBEAT_STALE_MS;
|
|
28
|
+
const runtimes = new Map();
|
|
29
|
+
const clients = new Map();
|
|
30
|
+
const clientSockets = new Map();
|
|
31
|
+
const watermark = {};
|
|
32
|
+
const runtimeEventsLog = new Map();
|
|
33
|
+
const clientEventsLog = new Map();
|
|
34
|
+
const executionWatermarks = {};
|
|
35
|
+
const seenClientEventSequences = new Map();
|
|
36
|
+
const offers = new Map();
|
|
37
|
+
async function authorize(candidate, req, authorizer = options.authorizeToken) {
|
|
38
|
+
try {
|
|
39
|
+
return authorizer
|
|
40
|
+
? Boolean(await authorizer(candidate, req))
|
|
41
|
+
: candidate === token;
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async function authorized(req) {
|
|
48
|
+
const candidate = req.headers.authorization?.replace(/^Bearer\s+/i, "") ?? "";
|
|
49
|
+
return authorize(candidate, req);
|
|
50
|
+
}
|
|
51
|
+
async function readJson(req) {
|
|
52
|
+
const chunks = [];
|
|
53
|
+
for await (const chunk of req)
|
|
54
|
+
chunks.push(chunk);
|
|
55
|
+
const raw = Buffer.concat(chunks).toString("utf8").trim();
|
|
56
|
+
if (!raw)
|
|
57
|
+
return {};
|
|
58
|
+
try {
|
|
59
|
+
return JSON.parse(raw);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return {};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function sendJson(res, status, body) {
|
|
66
|
+
res.writeHead(status, {
|
|
67
|
+
"Content-Type": "application/json; charset=utf-8",
|
|
68
|
+
});
|
|
69
|
+
res.end(JSON.stringify(body));
|
|
70
|
+
}
|
|
71
|
+
function recordRuntimeEvent(runtimeId, event) {
|
|
72
|
+
const log = runtimeEventsLog.get(runtimeId) ?? [];
|
|
73
|
+
log.push(event);
|
|
74
|
+
if (log.length > EVENTS_LOG_LIMIT)
|
|
75
|
+
log.splice(0, log.length - EVENTS_LOG_LIMIT);
|
|
76
|
+
runtimeEventsLog.set(runtimeId, log);
|
|
77
|
+
const perSession = (watermark[runtimeId] ??= {});
|
|
78
|
+
perSession[event.sessionId] = Math.max(perSession[event.sessionId] ?? 0, event.seq);
|
|
79
|
+
}
|
|
80
|
+
function removeOffers(clientId, shouldRemove) {
|
|
81
|
+
const pending = offers.get(clientId);
|
|
82
|
+
if (!pending)
|
|
83
|
+
return;
|
|
84
|
+
const remaining = pending.filter((offer) => !shouldRemove(offer));
|
|
85
|
+
if (remaining.length === 0)
|
|
86
|
+
offers.delete(clientId);
|
|
87
|
+
else
|
|
88
|
+
offers.set(clientId, remaining);
|
|
89
|
+
}
|
|
90
|
+
/** Accepts an event batch exactly once per `(executionId,eventSeq)`. */
|
|
91
|
+
function receiveEvents(clientId, events) {
|
|
92
|
+
const acknowledgements = {};
|
|
93
|
+
for (const event of events) {
|
|
94
|
+
const seen = seenClientEventSequences.get(event.executionId) ?? new Set();
|
|
95
|
+
seenClientEventSequences.set(event.executionId, seen);
|
|
96
|
+
const acknowledged = executionWatermarks[event.executionId] ?? 0;
|
|
97
|
+
if (event.eventSeq > acknowledged && !seen.has(event.eventSeq)) {
|
|
98
|
+
seen.add(event.eventSeq);
|
|
99
|
+
const log = clientEventsLog.get(event.executionId) ?? [];
|
|
100
|
+
log.push(event);
|
|
101
|
+
if (log.length > EVENTS_LOG_LIMIT)
|
|
102
|
+
log.splice(0, log.length - EVENTS_LOG_LIMIT);
|
|
103
|
+
clientEventsLog.set(event.executionId, log);
|
|
104
|
+
}
|
|
105
|
+
let current = executionWatermarks[event.executionId] ?? 0;
|
|
106
|
+
while (seen.has(current + 1))
|
|
107
|
+
current += 1;
|
|
108
|
+
executionWatermarks[event.executionId] = current;
|
|
109
|
+
acknowledgements[event.executionId] = current;
|
|
110
|
+
if (current >= event.eventSeq) {
|
|
111
|
+
if (event.type === "received") {
|
|
112
|
+
removeOffers(clientId, (offer) => offer.command.executionId === event.executionId &&
|
|
113
|
+
offer.command.kind !== "cancel");
|
|
114
|
+
}
|
|
115
|
+
if (isTerminalClientEvent(event.type)) {
|
|
116
|
+
removeOffers(clientId, (offer) => offer.command.executionId === event.executionId &&
|
|
117
|
+
offer.command.kind === "cancel");
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const client = clients.get(clientId);
|
|
122
|
+
if (client)
|
|
123
|
+
client.lastSeen = Date.now();
|
|
124
|
+
return acknowledgements;
|
|
125
|
+
}
|
|
126
|
+
function parseWsJson(raw) {
|
|
127
|
+
try {
|
|
128
|
+
if (typeof raw === "string")
|
|
129
|
+
return JSON.parse(raw);
|
|
130
|
+
if (Buffer.isBuffer(raw))
|
|
131
|
+
return JSON.parse(raw.toString("utf8"));
|
|
132
|
+
if (raw instanceof ArrayBuffer) {
|
|
133
|
+
return JSON.parse(Buffer.from(raw).toString("utf8"));
|
|
134
|
+
}
|
|
135
|
+
if (ArrayBuffer.isView(raw)) {
|
|
136
|
+
return JSON.parse(Buffer.from(raw.buffer, raw.byteOffset, raw.byteLength).toString("utf8"));
|
|
137
|
+
}
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
catch {
|
|
141
|
+
return null;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
/** Only registration, heartbeat, audit-events, and completion are embeddable HTTP routes. */
|
|
145
|
+
function canHandle(url) {
|
|
146
|
+
return /^\/api\/daemon\/(register|heartbeat|events|complete)$/.test(url.pathname);
|
|
147
|
+
}
|
|
148
|
+
async function handle(req, res) {
|
|
149
|
+
const url = new URL(req.url ?? "/", `http://${req.headers.host ?? "127.0.0.1"}`);
|
|
150
|
+
const action = url.pathname.match(/^\/api\/daemon\/(register|heartbeat|events|complete)$/)?.[1];
|
|
151
|
+
if (!action || req.method !== "POST")
|
|
152
|
+
return false;
|
|
153
|
+
if (!(await authorized(req))) {
|
|
154
|
+
sendJson(res, 401, { error: "unauthorized" });
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
const body = await readJson(req);
|
|
158
|
+
if (action === "register") {
|
|
159
|
+
const runtimeId = typeof body.runtimeId === "string" ? body.runtimeId : "";
|
|
160
|
+
if (!runtimeId) {
|
|
161
|
+
sendJson(res, 400, { error: "bad_request" });
|
|
162
|
+
return true;
|
|
163
|
+
}
|
|
164
|
+
const now = Date.now();
|
|
165
|
+
const runtime = {
|
|
166
|
+
runtimeId,
|
|
167
|
+
displayName: typeof body.displayName === "string" ? body.displayName : runtimeId,
|
|
168
|
+
protocolVersion: typeof body.protocolVersion === "number"
|
|
169
|
+
? body.protocolVersion
|
|
170
|
+
: AGENT_CLIENT_PROTOCOL_VERSION,
|
|
171
|
+
registeredAt: now,
|
|
172
|
+
lastSeen: now,
|
|
173
|
+
};
|
|
174
|
+
runtimes.set(runtimeId, runtime);
|
|
175
|
+
options.onRegister?.(runtime);
|
|
176
|
+
sendJson(res, 200, {
|
|
177
|
+
ok: true,
|
|
178
|
+
protocolVersion: AGENT_CLIENT_PROTOCOL_VERSION,
|
|
179
|
+
staleMs,
|
|
180
|
+
});
|
|
181
|
+
return true;
|
|
182
|
+
}
|
|
183
|
+
if (action === "heartbeat") {
|
|
184
|
+
const runtimeId = typeof body.runtimeId === "string" ? body.runtimeId : "";
|
|
185
|
+
const runtime = runtimeId ? runtimes.get(runtimeId) : undefined;
|
|
186
|
+
if (!runtime) {
|
|
187
|
+
sendJson(res, 404, { error: "unknown_runtime" });
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
runtime.lastSeen = Date.now();
|
|
191
|
+
sendJson(res, 200, { ok: true });
|
|
192
|
+
return true;
|
|
193
|
+
}
|
|
194
|
+
if (action === "events") {
|
|
195
|
+
const runtimeId = typeof body.runtimeId === "string" ? body.runtimeId : "";
|
|
196
|
+
if (!runtimeId || !Array.isArray(body.events)) {
|
|
197
|
+
sendJson(res, 400, { error: "bad_request" });
|
|
198
|
+
return true;
|
|
199
|
+
}
|
|
200
|
+
const accepted = [];
|
|
201
|
+
for (const raw of body.events) {
|
|
202
|
+
if (!raw || typeof raw !== "object")
|
|
203
|
+
continue;
|
|
204
|
+
const event = raw;
|
|
205
|
+
if (typeof event.sessionId === "string" &&
|
|
206
|
+
typeof event.seq === "number" &&
|
|
207
|
+
typeof event.kind === "string" &&
|
|
208
|
+
typeof event.ts === "string") {
|
|
209
|
+
accepted.push({
|
|
210
|
+
sessionId: event.sessionId,
|
|
211
|
+
seq: event.seq,
|
|
212
|
+
kind: event.kind,
|
|
213
|
+
ts: event.ts,
|
|
214
|
+
payload: event.payload ?? {},
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
for (const event of accepted)
|
|
219
|
+
recordRuntimeEvent(runtimeId, event);
|
|
220
|
+
options.onRuntimeEvents?.(runtimeId, accepted);
|
|
221
|
+
sendJson(res, 200, { ok: true, acked: watermark[runtimeId] ?? {} });
|
|
222
|
+
return true;
|
|
223
|
+
}
|
|
224
|
+
// Completion is an audit acknowledgement only. No Hub-owned executor exists.
|
|
225
|
+
sendJson(res, 200, { ok: true });
|
|
226
|
+
return true;
|
|
227
|
+
}
|
|
228
|
+
const wss = new WebSocketServer({
|
|
229
|
+
noServer: true,
|
|
230
|
+
maxPayload: options.maxPayloadBytes ?? 1_048_576,
|
|
231
|
+
});
|
|
232
|
+
function attach(server, opts = {}) {
|
|
233
|
+
server.on("request", (req, res) => {
|
|
234
|
+
const url = new URL(req.url ?? "/", `http://${req.headers.host ?? "127.0.0.1"}`);
|
|
235
|
+
if (!canHandle(url)) {
|
|
236
|
+
if (opts.fallback)
|
|
237
|
+
opts.fallback(req, res);
|
|
238
|
+
else
|
|
239
|
+
sendJson(res, 404, { error: "not_found" });
|
|
240
|
+
return;
|
|
241
|
+
}
|
|
242
|
+
void handle(req, res);
|
|
243
|
+
});
|
|
244
|
+
server.on("upgrade", async (req, socket, head) => {
|
|
245
|
+
const url = new URL(req.url ?? "/", `http://${req.headers.host ?? "127.0.0.1"}`);
|
|
246
|
+
if (url.pathname !== "/api/daemon/ws") {
|
|
247
|
+
opts.onUnknownUpgrade?.(req, socket, head);
|
|
248
|
+
return;
|
|
249
|
+
}
|
|
250
|
+
const candidate = req.headers.authorization?.replace(/^Bearer\s+/i, "") ??
|
|
251
|
+
url.searchParams.get("token") ??
|
|
252
|
+
"";
|
|
253
|
+
if (!(await authorize(candidate, req, opts.authorizeToken))) {
|
|
254
|
+
bridgeLog.warn("hub", "ws upgrade rejected: bad token");
|
|
255
|
+
socket.destroy();
|
|
256
|
+
return;
|
|
257
|
+
}
|
|
258
|
+
wss.handleUpgrade(req, socket, head, (ws) => {
|
|
259
|
+
let clientId = null;
|
|
260
|
+
ws.on("message", (raw) => {
|
|
261
|
+
const message = parseWsJson(raw);
|
|
262
|
+
if (!message)
|
|
263
|
+
return;
|
|
264
|
+
if (!clientId) {
|
|
265
|
+
const hello = parseClientHello(message);
|
|
266
|
+
if (!hello) {
|
|
267
|
+
ws.close(1008, "client.hello required");
|
|
268
|
+
return;
|
|
269
|
+
}
|
|
270
|
+
clientId = hello.clientId;
|
|
271
|
+
const now = Date.now();
|
|
272
|
+
clients.set(clientId, {
|
|
273
|
+
clientId,
|
|
274
|
+
protocolVersion: hello.protocolVersion,
|
|
275
|
+
connectedAt: now,
|
|
276
|
+
lastSeen: now,
|
|
277
|
+
});
|
|
278
|
+
const prior = clientSockets.get(clientId);
|
|
279
|
+
if (prior && prior !== ws)
|
|
280
|
+
prior.close(1000, "superseded connection");
|
|
281
|
+
clientSockets.set(clientId, ws);
|
|
282
|
+
bridgeLog.info("hub", "agent client ws connected", { clientId });
|
|
283
|
+
deliverOffers(clientId);
|
|
284
|
+
return;
|
|
285
|
+
}
|
|
286
|
+
const pluginSyncAcknowledgement = parsePluginSyncAcknowledgement(message);
|
|
287
|
+
if (pluginSyncAcknowledgement) {
|
|
288
|
+
options.onPluginSyncAcknowledgement?.(clientId, pluginSyncAcknowledgement);
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
const events = parseClientEventBatch(message);
|
|
292
|
+
if (!events)
|
|
293
|
+
return;
|
|
294
|
+
const watermarks = receiveEvents(clientId, events);
|
|
295
|
+
ws.send(JSON.stringify({ type: "event.ack", watermarks }));
|
|
296
|
+
});
|
|
297
|
+
ws.on("close", () => {
|
|
298
|
+
if (clientId && clientSockets.get(clientId) === ws) {
|
|
299
|
+
clientSockets.delete(clientId);
|
|
300
|
+
}
|
|
301
|
+
});
|
|
302
|
+
});
|
|
303
|
+
});
|
|
304
|
+
}
|
|
305
|
+
async function start(host = "127.0.0.1", port = 0) {
|
|
306
|
+
const server = http.createServer();
|
|
307
|
+
attach(server);
|
|
308
|
+
await new Promise((resolve, reject) => {
|
|
309
|
+
server.once("error", reject);
|
|
310
|
+
server.listen(port, host, () => resolve());
|
|
311
|
+
});
|
|
312
|
+
const addr = server.address();
|
|
313
|
+
const boundPort = typeof addr === "object" && addr ? addr.port : port;
|
|
314
|
+
bridgeLog.info("hub", "listening", { url: `http://${host}:${boundPort}` });
|
|
315
|
+
return {
|
|
316
|
+
port: boundPort,
|
|
317
|
+
close: () => new Promise((resolve, reject) => {
|
|
318
|
+
for (const ws of clientSockets.values())
|
|
319
|
+
ws.terminate();
|
|
320
|
+
clientSockets.clear();
|
|
321
|
+
wss.close();
|
|
322
|
+
server.close((error) => (error ? reject(error) : resolve()));
|
|
323
|
+
}),
|
|
324
|
+
};
|
|
325
|
+
}
|
|
326
|
+
function offer(targetClientId, command) {
|
|
327
|
+
const pending = offers.get(targetClientId) ?? [];
|
|
328
|
+
const offerId = command.commandId;
|
|
329
|
+
if (!pending.some((pendingOffer) => pendingOffer.offerId === offerId)) {
|
|
330
|
+
pending.push({ offerId, targetClientId, command });
|
|
331
|
+
}
|
|
332
|
+
offers.set(targetClientId, pending);
|
|
333
|
+
deliverOffers(targetClientId);
|
|
334
|
+
}
|
|
335
|
+
function deliverOffers(targetClientId) {
|
|
336
|
+
const ws = clientSockets.get(targetClientId);
|
|
337
|
+
const pending = offers.get(targetClientId);
|
|
338
|
+
if (!ws || ws.readyState !== ws.OPEN || !pending || pending.length === 0)
|
|
339
|
+
return false;
|
|
340
|
+
for (const { command } of pending) {
|
|
341
|
+
ws.send(JSON.stringify({ type: "task.offer", command }));
|
|
342
|
+
}
|
|
343
|
+
return true;
|
|
344
|
+
}
|
|
345
|
+
function listRuntimes() {
|
|
346
|
+
const now = Date.now();
|
|
347
|
+
return [...runtimes.values()].map((runtime) => ({
|
|
348
|
+
...runtime,
|
|
349
|
+
online: clientSockets.has(runtime.runtimeId),
|
|
350
|
+
stale: now - runtime.lastSeen > staleMs &&
|
|
351
|
+
!clientSockets.has(runtime.runtimeId),
|
|
352
|
+
}));
|
|
353
|
+
}
|
|
354
|
+
function listClients() {
|
|
355
|
+
return [...clients.values()].map((client) => ({
|
|
356
|
+
...client,
|
|
357
|
+
online: clientSockets.has(client.clientId),
|
|
358
|
+
pendingOutboxCount: offers.get(client.clientId)?.length ?? 0,
|
|
359
|
+
}));
|
|
360
|
+
}
|
|
361
|
+
function snapshot() {
|
|
362
|
+
return {
|
|
363
|
+
runtimes: [...runtimes.values()].map((runtime) => ({ ...runtime })),
|
|
364
|
+
watermark: JSON.parse(JSON.stringify(watermark)),
|
|
365
|
+
clients: [...clients.values()].map((client) => ({ ...client })),
|
|
366
|
+
offers: [...offers.values()].flat(),
|
|
367
|
+
executionWatermarks: { ...executionWatermarks },
|
|
368
|
+
};
|
|
369
|
+
}
|
|
370
|
+
function restore(state) {
|
|
371
|
+
runtimes.clear();
|
|
372
|
+
for (const runtime of state.runtimes)
|
|
373
|
+
runtimes.set(runtime.runtimeId, { ...runtime });
|
|
374
|
+
for (const [runtimeId, sessions] of Object.entries(state.watermark)) {
|
|
375
|
+
watermark[runtimeId] = { ...sessions };
|
|
376
|
+
}
|
|
377
|
+
clients.clear();
|
|
378
|
+
for (const client of state.clients ?? []) {
|
|
379
|
+
clients.set(client.clientId, { ...client });
|
|
380
|
+
}
|
|
381
|
+
offers.clear();
|
|
382
|
+
for (const item of state.offers ?? [])
|
|
383
|
+
offer(item.targetClientId, item.command);
|
|
384
|
+
for (const key of Object.keys(executionWatermarks))
|
|
385
|
+
delete executionWatermarks[key];
|
|
386
|
+
Object.assign(executionWatermarks, state.executionWatermarks ?? {});
|
|
387
|
+
}
|
|
388
|
+
return {
|
|
389
|
+
token,
|
|
390
|
+
handle,
|
|
391
|
+
attach,
|
|
392
|
+
start,
|
|
393
|
+
offer,
|
|
394
|
+
receiveEvents,
|
|
395
|
+
listRuntimes,
|
|
396
|
+
listClients,
|
|
397
|
+
events: (runtimeId) => [...(runtimeEventsLog.get(runtimeId) ?? [])],
|
|
398
|
+
clientEvents: (executionId) => [
|
|
399
|
+
...(clientEventsLog.get(executionId) ?? []),
|
|
400
|
+
],
|
|
401
|
+
watermark: () => JSON.parse(JSON.stringify(watermark)),
|
|
402
|
+
snapshot,
|
|
403
|
+
restore,
|
|
404
|
+
stop: () => {
|
|
405
|
+
for (const ws of clientSockets.values())
|
|
406
|
+
ws.terminate();
|
|
407
|
+
clientSockets.clear();
|
|
408
|
+
wss.close();
|
|
409
|
+
},
|
|
410
|
+
};
|
|
411
|
+
}
|
|
412
|
+
//# sourceMappingURL=hub.js.map
|
package/dist/hub.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hub.js","sourceRoot":"","sources":["../src/hub.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Public API for the standalone Agent Client and embedded Hub adapter. */
|
|
2
|
+
export { AGENT_CLIENT_PROTOCOL_VERSION, type HubRuntimeEvent, type HubRuntimeHeartbeat, type HubRuntimeRegistration, } from "./wire.js";
|
|
3
|
+
export { createMemoryHub, HUB_HEARTBEAT_STALE_MS, type MemoryHub, type MemoryHubClient, type MemoryHubOptions, type MemoryHubRuntime, type MemoryHubSnapshot, } from "./hub.js";
|
|
4
|
+
export { setBridgeLogger, resetBridgeLogger, createConsoleLogger, createRotatingJsonlLogger, serializeLog, type BridgeLogger, type BridgeLogLevel, type AgentLogEntry, type LoggerFileSystem, type RotatingJsonlLogger, type RotatingJsonlLoggerOptions, } from "./logger.js";
|
|
5
|
+
export { resolveAgentHome, resolveAgentPaths, resolveAgentPathsAt, resolveAgentControlEndpoint, type AgentPaths, } from "./paths.js";
|
|
6
|
+
export { defaultAgentConfig, loadAgentConfig, parseAgentConfig, saveAgentConfig, type AgentConfig, type AgentLocalPolicy, type ConfigFileSystem, type ConfigWriter, } from "./config.js";
|
|
7
|
+
export { createCredentialStore, type CredentialStore, type CredentialStoreOptions, type CredentialFileSystem, type SecurityCommandResult, type SecurityExecutor, } from "./credentials.js";
|
|
8
|
+
export { createAgentControlClient, startAgentControlServer, type AgentControl, type AgentControlClient, type AgentControlClientOptions, type AgentControlServer, type AgentControlServerOptions, type AgentHealth, type AgentStatus, type ControlFileSystem, } from "./control.js";
|
|
9
|
+
export { encodeClientHello, encodePluginSyncAcknowledgement, parseClientCommand, parseClientHello, parseClientEventBatch, parseHubDownlink, parseHubEventAcknowledgement, parsePluginSyncAcknowledgement, encodeClientEventBatch, type ClientHello, type HubEventAcknowledgement, } from "./client/wire.js";
|
|
10
|
+
export { CLIENT_EVENT_TYPES, CLIENT_RUNTIME_IDS, type AgentInput, type ClientCommand, type ClientEvent, type ClientEventBatch, type ClientEventType, type HubDownlink, type PluginConfig, type PluginSyncAcknowledgement, type PluginSyncStatus, type RuntimeId, } from "./client/types.js";
|
|
11
|
+
export { ClientStateStore, EXECUTION_STATES, type AdmissionResult, type AdmissionOptions, type EventToAppend, type ExecutionState, type StoredExecution, } from "./client/state-store.js";
|
|
12
|
+
export { ClientSupervisor, LOCAL_POLICY_DECISIONS, type ClientSupervisorOptions, type LocalPolicy, type LocalPolicyDecision, type PluginManagerPort, } from "./client/supervisor.js";
|
|
13
|
+
export type { ClientTransport, ClientTransportHandlers, RunStarter, } from "./client/transport.js";
|
|
14
|
+
export { WsClientTransport, type ClientWebSocketLike, type WsClientTransportOptions, } from "./client/ws-transport.js";
|
|
15
|
+
export { PluginManager, type PluginManagerOptions } from "./plugins/manager.js";
|
|
16
|
+
export { createGitClient, isAllowedGitOrigin, isProductionGitUrl, type GitClient, type GitClientOptions, } from "./plugins/git.js";
|
|
17
|
+
export { isValidPluginId, parsePluginManifest } from "./plugins/manifest.js";
|
|
18
|
+
export type { ActivePluginSnapshot, InstalledPlugin, PluginCapabilityDeclaration, PluginConfig as GitPluginConfig, PluginManifest, PluginStateStore, StoredPluginState, } from "./plugins/types.js";
|
|
19
|
+
export { PLATFORM_IDS, PLATFORM_EVENT_TYPES, DEFAULT_RUNNER_CHILD_ENTRYPOINT, ZCODE_UNAVAILABLE_REASON, createRunnerManager, createPlatformAdapterRegistry, createPiAdapter, createZCodeAdapter, IsolatedRunnerManager, isPlatformEvent, isTerminalPlatformEvent, platformErrorEvent, type PlatformAdapter, type PlatformAdapterFor, type PlatformAdapterRegistry, type PlatformEvent, type PlatformId, type PlatformProbe, type PlatformRunInput, type RunnerChildMessage, type RunnerChildProcess, type RunnerManager, type RunnerManagerOptions, type RunnerSpawn, type RunnerSpawnOptions, type RunnerStartMessage, type CreatePiAdapterDeps, type PiAdapter, type PiAdapterRunInput, type RegisteredPlatformAdapter, type ZCodeAdapter, } from "./runtime/index.js";
|
|
20
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,OAAO,EACL,6BAA6B,EAC7B,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,GAC5B,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,GACvB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,0BAA0B,GAChC,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,EAC3B,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACvB,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAChB,KAAK,WAAW,EAChB,KAAK,iBAAiB,GACvB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,+BAA+B,EAC/B,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,4BAA4B,EAC5B,8BAA8B,EAC9B,sBAAsB,EACtB,KAAK,WAAW,EAChB,KAAK,uBAAuB,GAC7B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,yBAAyB,EAC9B,KAAK,gBAAgB,EACrB,KAAK,SAAS,GACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,eAAe,GACrB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,KAAK,mBAAmB,EACxB,KAAK,iBAAiB,GACvB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EACV,eAAe,EACf,uBAAuB,EACvB,UAAU,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,iBAAiB,EACjB,KAAK,mBAAmB,EACxB,KAAK,wBAAwB,GAC9B,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,KAAK,SAAS,EACd,KAAK,gBAAgB,GACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC7E,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,2BAA2B,EAC3B,YAAY,IAAI,eAAe,EAC/B,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,+BAA+B,EAC/B,wBAAwB,EACxB,mBAAmB,EACnB,6BAA6B,EAC7B,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,WAAW,EAChB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,yBAAyB,EAC9B,KAAK,YAAY,GAClB,MAAM,oBAAoB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/** Public API for the standalone Agent Client and embedded Hub adapter. */
|
|
2
|
+
export { AGENT_CLIENT_PROTOCOL_VERSION, } from "./wire.js";
|
|
3
|
+
export { createMemoryHub, HUB_HEARTBEAT_STALE_MS, } from "./hub.js";
|
|
4
|
+
export { setBridgeLogger, resetBridgeLogger, createConsoleLogger, createRotatingJsonlLogger, serializeLog, } from "./logger.js";
|
|
5
|
+
export { resolveAgentHome, resolveAgentPaths, resolveAgentPathsAt, resolveAgentControlEndpoint, } from "./paths.js";
|
|
6
|
+
export { defaultAgentConfig, loadAgentConfig, parseAgentConfig, saveAgentConfig, } from "./config.js";
|
|
7
|
+
export { createCredentialStore, } from "./credentials.js";
|
|
8
|
+
export { createAgentControlClient, startAgentControlServer, } from "./control.js";
|
|
9
|
+
export { encodeClientHello, encodePluginSyncAcknowledgement, parseClientCommand, parseClientHello, parseClientEventBatch, parseHubDownlink, parseHubEventAcknowledgement, parsePluginSyncAcknowledgement, encodeClientEventBatch, } from "./client/wire.js";
|
|
10
|
+
export { CLIENT_EVENT_TYPES, CLIENT_RUNTIME_IDS, } from "./client/types.js";
|
|
11
|
+
export { ClientStateStore, EXECUTION_STATES, } from "./client/state-store.js";
|
|
12
|
+
export { ClientSupervisor, LOCAL_POLICY_DECISIONS, } from "./client/supervisor.js";
|
|
13
|
+
export { WsClientTransport, } from "./client/ws-transport.js";
|
|
14
|
+
export { PluginManager } from "./plugins/manager.js";
|
|
15
|
+
export { createGitClient, isAllowedGitOrigin, isProductionGitUrl, } from "./plugins/git.js";
|
|
16
|
+
export { isValidPluginId, parsePluginManifest } from "./plugins/manifest.js";
|
|
17
|
+
export { PLATFORM_IDS, PLATFORM_EVENT_TYPES, DEFAULT_RUNNER_CHILD_ENTRYPOINT, ZCODE_UNAVAILABLE_REASON, createRunnerManager, createPlatformAdapterRegistry, createPiAdapter, createZCodeAdapter, IsolatedRunnerManager, isPlatformEvent, isTerminalPlatformEvent, platformErrorEvent, } from "./runtime/index.js";
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,OAAO,EACL,6BAA6B,GAI9B,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,eAAe,EACf,sBAAsB,GAMvB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,YAAY,GAOb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,2BAA2B,GAE5B,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,eAAe,GAKhB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,qBAAqB,GAMtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,wBAAwB,EACxB,uBAAuB,GASxB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,iBAAiB,EACjB,+BAA+B,EAC/B,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,4BAA4B,EAC5B,8BAA8B,EAC9B,sBAAsB,GAGvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,GAWnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,gBAAgB,EAChB,gBAAgB,GAMjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,GAKvB,MAAM,wBAAwB,CAAC;AAMhC,OAAO,EACL,iBAAiB,GAGlB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAA6B,MAAM,sBAAsB,CAAC;AAChF,OAAO,EACL,eAAe,EACf,kBAAkB,EAClB,kBAAkB,GAGnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAU7E,OAAO,EACL,YAAY,EACZ,oBAAoB,EACpB,+BAA+B,EAC/B,wBAAwB,EACxB,mBAAmB,EACnB,6BAA6B,EAC7B,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,uBAAuB,EACvB,kBAAkB,GAoBnB,MAAM,oBAAoB,CAAC"}
|
package/dist/logger.d.ts
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
export type AgentLogEntry = Record<string, unknown>;
|
|
2
|
+
export type LoggerFileSystem = {
|
|
3
|
+
mkdir(dir: string, options: {
|
|
4
|
+
recursive: true;
|
|
5
|
+
}): Promise<string | undefined>;
|
|
6
|
+
stat(file: string): Promise<{
|
|
7
|
+
size: number;
|
|
8
|
+
}>;
|
|
9
|
+
appendFile(file: string, content: string, encoding: "utf8"): Promise<void>;
|
|
10
|
+
rename(from: string, to: string): Promise<void>;
|
|
11
|
+
unlink(file: string): Promise<void>;
|
|
12
|
+
};
|
|
13
|
+
export type RotatingJsonlLogger = {
|
|
14
|
+
write(entry: AgentLogEntry): Promise<void>;
|
|
15
|
+
};
|
|
16
|
+
export type RotatingJsonlLoggerOptions = {
|
|
17
|
+
logsRoot: string;
|
|
18
|
+
maxBytes?: number;
|
|
19
|
+
maxFiles?: number;
|
|
20
|
+
fileSystem?: LoggerFileSystem;
|
|
21
|
+
now?: () => Date;
|
|
22
|
+
};
|
|
23
|
+
/** Serialize one JSONL record after removing credential-shaped values. */
|
|
24
|
+
export declare function serializeLog(entry: AgentLogEntry): string;
|
|
25
|
+
/** JSONL file logger with bounded rotation and no unredacted writes. */
|
|
26
|
+
export declare function createRotatingJsonlLogger(options: RotatingJsonlLoggerOptions): RotatingJsonlLogger;
|
|
27
|
+
/**
|
|
28
|
+
* Bridge logging port. Default implementation writes to console (debug
|
|
29
|
+
* suppressed unless ALLINAI_BRIDGE_DEBUG=1); hosts replace it via
|
|
30
|
+
* setBridgeLogger (e.g. AllInAI wires electron-log).
|
|
31
|
+
*/
|
|
32
|
+
export type BridgeLogLevel = "debug" | "info" | "warn";
|
|
33
|
+
export type BridgeLogger = {
|
|
34
|
+
debug(tag: string, message: string, meta?: Record<string, unknown>): void;
|
|
35
|
+
info(tag: string, message: string, meta?: Record<string, unknown>): void;
|
|
36
|
+
warn(tag: string, message: string, meta?: Record<string, unknown>): void;
|
|
37
|
+
};
|
|
38
|
+
export declare function createConsoleLogger(options?: {
|
|
39
|
+
debug?: boolean;
|
|
40
|
+
}): BridgeLogger;
|
|
41
|
+
/** Replace the process-wide bridge logger (call before creating hub/bridge). */
|
|
42
|
+
export declare function setBridgeLogger(logger: BridgeLogger): void;
|
|
43
|
+
/** Test hook: fall back to the default console logger. */
|
|
44
|
+
export declare function resetBridgeLogger(): void;
|
|
45
|
+
/** Internal facade used by SDK modules. */
|
|
46
|
+
export declare const bridgeLog: BridgeLogger;
|
|
47
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEpD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE;QAAE,SAAS,EAAE,IAAI,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC9E,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC9C,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3E,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;CAClB,CAAC;AAiCF,0EAA0E;AAC1E,wBAAgB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAOzD;AAiCD,wEAAwE;AACxE,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,0BAA0B,GAClC,mBAAmB,CAiDrB;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvD,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1E,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IACzE,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC1E,CAAC;AAkBF,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE;IAC5C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,YAAY,CAgBf;AAKD,gFAAgF;AAChF,wBAAgB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAE1D;AAED,0DAA0D;AAC1D,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED,2CAA2C;AAC3C,eAAO,MAAM,SAAS,EAAE,YAmBvB,CAAC"}
|