@terminals-tech/sdk 1.0.0-rc.1 → 1.0.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/README.md +15 -19
- package/dist/WebContainerManager-4LIOGRVM.js +22 -0
- package/dist/browser-http-client-ZQLDWZMU.js +317 -0
- package/dist/cache-VKYSQRXX.js +45 -0
- package/dist/capabilities-MIPUMBLL.js +96 -0
- package/dist/chunk-2ESYSVXG.js +48 -0
- package/dist/chunk-2WTYE4SW.js +190 -0
- package/dist/chunk-3LFMIVJM.js +40 -0
- package/dist/chunk-ABCK4FWN.js +136 -0
- package/dist/chunk-AFDUOYHD.js +2060 -0
- package/dist/chunk-BCOQMFKT.js +265 -0
- package/dist/chunk-BYXBJQAS.js +0 -0
- package/dist/chunk-DKFJIILR.js +9798 -0
- package/dist/chunk-EXI3LJVJ.js +51 -0
- package/dist/chunk-FOXUEYWK.js +42 -0
- package/dist/chunk-GJWAJAX3.js +173 -0
- package/dist/chunk-H3POJCFA.js +333 -0
- package/dist/chunk-KASHT6C5.js +784 -0
- package/dist/chunk-KHR7ZYCX.js +4034 -0
- package/dist/chunk-L45BSQDJ.js +296 -0
- package/dist/chunk-LLGZTP3G.js +5521 -0
- package/dist/chunk-NTMBOESX.js +152 -0
- package/dist/chunk-OCLSAUCD.js +474 -0
- package/dist/chunk-OSSRZOGC.js +190 -0
- package/dist/chunk-PPFTKJDB.js +497 -0
- package/dist/chunk-PWAHFID5.js +381 -0
- package/dist/chunk-Q2VI6ICE.js +188 -0
- package/dist/chunk-QJFKEQHF.js +6460 -0
- package/dist/chunk-QWXPVB2L.js +320 -0
- package/dist/chunk-QWZRZKLZ.js +896 -0
- package/dist/chunk-STMI72WH.js +1005 -0
- package/dist/chunk-TSQ3BGLA.js +11945 -0
- package/dist/chunk-UJDUQNE2.js +79 -0
- package/dist/chunk-VZA2NUH3.js +118 -0
- package/dist/chunk-WGBCRNMB.js +1817 -0
- package/dist/chunk-WU4OTGJE.js +752 -0
- package/dist/chunk-XPJ63Y6T.js +70 -0
- package/dist/chunk-Y2EULKA2.js +172 -0
- package/dist/chunk-YJEZWCYV.js +94 -0
- package/dist/chunk-ZVO47SQV.js +150 -0
- package/dist/container-lite-QD3CRLS4.js +327 -0
- package/dist/core-H2UUDATO.js +146 -0
- package/dist/crypto-D4LMI2RN.js +45 -0
- package/dist/db-BWC2GGBN.js +50 -0
- package/dist/demo-T655Z5S4.js +87 -0
- package/dist/diagnostics-6RQTBR6I.js +113 -0
- package/dist/dist-OPDCWARF.js +727 -0
- package/dist/dist-VXJEKX3T.js +2441 -0
- package/dist/dist-VYGJXGUS.js +1008 -0
- package/dist/embeddings-7QXTXUMC.js +15 -0
- package/dist/embeddings-MAEWWUHW.js +9 -0
- package/dist/graph-RKMNE2X5.js +36 -0
- package/dist/hvm-CBEP3M4F.js +126 -0
- package/dist/index.cjs +49874 -8001
- package/dist/index.d.cts +1629 -1363
- package/dist/index.d.ts +1629 -1363
- package/dist/index.js +2462 -8130
- package/dist/mcp-NK34ZNM5.js +101 -0
- package/dist/mcp-client-service-browser-SGB2K3VZ.js +14 -0
- package/dist/neuro-state-XHRGIRVO.js +498 -0
- package/dist/nodes-K6GKI2FM.js +364 -0
- package/dist/package-EXUIU2RL.js +93 -0
- package/dist/package-VGL7HYTO.js +106 -0
- package/dist/package-XHMLOAQ4.js +98 -0
- package/dist/pg-events-QJAM2HIP.js +15 -0
- package/dist/pglite-adapter-43IOUBMV.js +50 -0
- package/dist/pgliteService-IUGNNOVU.js +258 -0
- package/dist/policy-IRJCM6FS.js +13 -0
- package/dist/registry-5WTDYQVQ.js +26 -0
- package/dist/registry-FW63E7FE.js +16 -0
- package/dist/registry-ZQ2IBLF6.js +9 -0
- package/dist/resolver-ALOJSOK5.js +24 -0
- package/dist/scheduler-B5CEYKWT.js +127 -0
- package/dist/secret-store-H7273UIT.js +18 -0
- package/dist/server-VW6DYDLH.js +18 -0
- package/dist/skills-VN7IN7SJ.js +6375 -0
- package/dist/stack-4KWCQQP7.js +103 -0
- package/dist/storage-L7MWNSPG.js +13 -0
- package/dist/supabaseService-6AYP2VY3.js +476 -0
- package/dist/topology-CIWWNVAN.js +13 -0
- package/dist/webcontainer-XWCE56F3.js +281 -0
- package/package.json +9 -3
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
import {
|
|
2
|
+
appendMeshEvent
|
|
3
|
+
} from "./chunk-Y2EULKA2.js";
|
|
4
|
+
import {
|
|
5
|
+
createAddress,
|
|
6
|
+
createInteractionWithEvents,
|
|
7
|
+
sanitizeTraceSegment,
|
|
8
|
+
transitionStatusWithEvent
|
|
9
|
+
} from "./chunk-BCOQMFKT.js";
|
|
10
|
+
import {
|
|
11
|
+
secureValidate
|
|
12
|
+
} from "./chunk-FOXUEYWK.js";
|
|
13
|
+
import {
|
|
14
|
+
DEFAULT_EMBEDDING_DIM
|
|
15
|
+
} from "./chunk-ZVO47SQV.js";
|
|
16
|
+
import {
|
|
17
|
+
isDatabaseReady
|
|
18
|
+
} from "./chunk-AFDUOYHD.js";
|
|
19
|
+
|
|
20
|
+
// ../../lib/terminals-tech/mesh/events.ts
|
|
21
|
+
var logs = /* @__PURE__ */ new Map();
|
|
22
|
+
function createEventLog(id) {
|
|
23
|
+
const log = {
|
|
24
|
+
id: id || crypto.randomUUID(),
|
|
25
|
+
events: [],
|
|
26
|
+
createdAt: Date.now()
|
|
27
|
+
};
|
|
28
|
+
logs.set(log.id, log);
|
|
29
|
+
return log;
|
|
30
|
+
}
|
|
31
|
+
function appendEvent(logId, type, payload, embedding, metadata) {
|
|
32
|
+
let log = logs.get(logId);
|
|
33
|
+
if (!log) {
|
|
34
|
+
log = createEventLog(logId);
|
|
35
|
+
}
|
|
36
|
+
const event = {
|
|
37
|
+
id: crypto.randomUUID(),
|
|
38
|
+
type,
|
|
39
|
+
payload,
|
|
40
|
+
timestamp: Date.now(),
|
|
41
|
+
embedding,
|
|
42
|
+
metadata
|
|
43
|
+
};
|
|
44
|
+
log.events = [...log.events, event];
|
|
45
|
+
log.lastEventAt = event.timestamp;
|
|
46
|
+
return event;
|
|
47
|
+
}
|
|
48
|
+
function queryEvents(logId, query = {}) {
|
|
49
|
+
const log = logs.get(logId);
|
|
50
|
+
if (!log) return [];
|
|
51
|
+
let events = log.events;
|
|
52
|
+
if (query.types && query.types.length > 0) {
|
|
53
|
+
const types = query.types;
|
|
54
|
+
events = events.filter((e) => types.includes(e.type));
|
|
55
|
+
}
|
|
56
|
+
if (query.since !== void 0) {
|
|
57
|
+
const since = query.since;
|
|
58
|
+
events = events.filter((e) => e.timestamp >= since);
|
|
59
|
+
}
|
|
60
|
+
if (query.until !== void 0) {
|
|
61
|
+
const until = query.until;
|
|
62
|
+
events = events.filter((e) => e.timestamp <= until);
|
|
63
|
+
}
|
|
64
|
+
if (query.withEmbedding === false) {
|
|
65
|
+
events = events.filter((e) => !e.embedding);
|
|
66
|
+
} else if (query.withEmbedding === true) {
|
|
67
|
+
events = events.filter((e) => !!e.embedding);
|
|
68
|
+
}
|
|
69
|
+
if (query.interactionId !== void 0) {
|
|
70
|
+
const interactionId = query.interactionId;
|
|
71
|
+
events = events.filter((e) => e.metadata?.interactionId === interactionId);
|
|
72
|
+
}
|
|
73
|
+
if (query.limit) {
|
|
74
|
+
events = events.slice(-query.limit);
|
|
75
|
+
}
|
|
76
|
+
return events;
|
|
77
|
+
}
|
|
78
|
+
function queryByInteraction(logId, interactionId, additionalQuery = {}) {
|
|
79
|
+
return queryEvents(logId, {
|
|
80
|
+
...additionalQuery,
|
|
81
|
+
interactionId
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
// ../../lib/terminals-tech/mesh/interaction-store.ts
|
|
86
|
+
var INTERACTION_LOG_ID = "mesh-interactions";
|
|
87
|
+
var runToInteraction = /* @__PURE__ */ new Map();
|
|
88
|
+
var interactionSequences = /* @__PURE__ */ new Map();
|
|
89
|
+
var INTERACTION_CREATED_PAYLOAD_SCHEMA = {
|
|
90
|
+
type: "object",
|
|
91
|
+
required: ["interaction"],
|
|
92
|
+
properties: {
|
|
93
|
+
interaction: { type: "object" },
|
|
94
|
+
sequence: { type: "number" }
|
|
95
|
+
},
|
|
96
|
+
additionalProperties: true
|
|
97
|
+
};
|
|
98
|
+
var INTERACTION_STATUS_PAYLOAD_SCHEMA = {
|
|
99
|
+
type: "object",
|
|
100
|
+
required: ["interactionId", "to", "at"],
|
|
101
|
+
properties: {
|
|
102
|
+
interactionId: { type: "string" },
|
|
103
|
+
from: { type: "string" },
|
|
104
|
+
to: { type: "string" },
|
|
105
|
+
at: { type: "number" },
|
|
106
|
+
sequence: { type: "number" }
|
|
107
|
+
},
|
|
108
|
+
additionalProperties: true
|
|
109
|
+
};
|
|
110
|
+
function getDefaultCoordinator() {
|
|
111
|
+
return createAddress("L2", "orchestrator", "v0");
|
|
112
|
+
}
|
|
113
|
+
function nextSequence(interactionId) {
|
|
114
|
+
const current = interactionSequences.get(interactionId) ?? 0;
|
|
115
|
+
const next = current + 1;
|
|
116
|
+
interactionSequences.set(interactionId, next);
|
|
117
|
+
return next;
|
|
118
|
+
}
|
|
119
|
+
function buildInteractionTracePath(interactionId, eventType) {
|
|
120
|
+
const interaction = sanitizeTraceSegment(interactionId) || "unknown";
|
|
121
|
+
const event = sanitizeTraceSegment(eventType) || "event";
|
|
122
|
+
return `interactions.${interaction}.${event}`;
|
|
123
|
+
}
|
|
124
|
+
function attachSequence(interactionId, payload) {
|
|
125
|
+
const current = payload.sequence;
|
|
126
|
+
const sequence = current ?? nextSequence(interactionId);
|
|
127
|
+
return { ...payload, sequence };
|
|
128
|
+
}
|
|
129
|
+
function getInteractionForTransition(interactionId) {
|
|
130
|
+
const events = queryByInteraction(INTERACTION_LOG_ID, interactionId);
|
|
131
|
+
if (!events.length) return null;
|
|
132
|
+
let interaction = null;
|
|
133
|
+
let latestStatusPayload = null;
|
|
134
|
+
for (const event of events) {
|
|
135
|
+
if (event.type === "interaction:created") {
|
|
136
|
+
const validated = secureValidate(event.payload, INTERACTION_CREATED_PAYLOAD_SCHEMA);
|
|
137
|
+
if (validated) {
|
|
138
|
+
const payload = validated;
|
|
139
|
+
if (payload.interaction) {
|
|
140
|
+
interaction = payload.interaction;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
if (event.type === "interaction:status_changed") {
|
|
145
|
+
const validated = secureValidate(event.payload, INTERACTION_STATUS_PAYLOAD_SCHEMA);
|
|
146
|
+
if (validated) {
|
|
147
|
+
latestStatusPayload = validated;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
if (!interaction) return null;
|
|
152
|
+
if (latestStatusPayload) {
|
|
153
|
+
interaction = {
|
|
154
|
+
...interaction,
|
|
155
|
+
status: latestStatusPayload.to,
|
|
156
|
+
startedAt: latestStatusPayload.to === "active" ? latestStatusPayload.at : interaction.startedAt,
|
|
157
|
+
completedAt: ["completed", "failed", "cancelled"].includes(latestStatusPayload.to) ? latestStatusPayload.at : interaction.completedAt
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
return interaction;
|
|
161
|
+
}
|
|
162
|
+
async function emitInteractionEvent(interactionId, type, payload, metadata) {
|
|
163
|
+
const payloadWithSequence = attachSequence(interactionId, payload);
|
|
164
|
+
const result = await appendMeshSinkEvent({
|
|
165
|
+
tracePath: buildInteractionTracePath(interactionId, type),
|
|
166
|
+
payload: payloadWithSequence,
|
|
167
|
+
metadata,
|
|
168
|
+
logId: INTERACTION_LOG_ID,
|
|
169
|
+
typeOverride: type
|
|
170
|
+
});
|
|
171
|
+
if (result.mode === "pglite") {
|
|
172
|
+
appendEvent(INTERACTION_LOG_ID, type, payloadWithSequence, void 0, metadata);
|
|
173
|
+
}
|
|
174
|
+
const enrichedMeta = metadata ?? {};
|
|
175
|
+
const userId = enrichedMeta.userId ?? enrichedMeta.user_id;
|
|
176
|
+
if (userId && typeof window !== "undefined") {
|
|
177
|
+
try {
|
|
178
|
+
const { appendSupabaseMeshEvent } = await import("./supabaseService-6AYP2VY3.js");
|
|
179
|
+
await appendSupabaseMeshEvent({
|
|
180
|
+
user_id: userId,
|
|
181
|
+
interaction_id: interactionId,
|
|
182
|
+
run_id: enrichedMeta.runId || null,
|
|
183
|
+
stack_id: enrichedMeta.stackId || null,
|
|
184
|
+
prev_hash: null,
|
|
185
|
+
trace_path: buildInteractionTracePath(interactionId, type),
|
|
186
|
+
type,
|
|
187
|
+
payload: payloadWithSequence,
|
|
188
|
+
metadata: enrichedMeta,
|
|
189
|
+
embedding: null,
|
|
190
|
+
span: null
|
|
191
|
+
});
|
|
192
|
+
} catch {
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
function emitLifecycleEvents(events, interactionId, meta) {
|
|
197
|
+
const metadata = { interactionId, ...meta };
|
|
198
|
+
events.forEach((event) => {
|
|
199
|
+
void emitInteractionEvent(interactionId, event.type, event.payload, metadata);
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
function ensureInteractionForRun(runId, stackId, interactionId) {
|
|
203
|
+
const existingId = interactionId || runToInteraction.get(runId);
|
|
204
|
+
if (existingId) {
|
|
205
|
+
runToInteraction.set(runId, existingId);
|
|
206
|
+
return existingId;
|
|
207
|
+
}
|
|
208
|
+
const result = createInteractionWithEvents({
|
|
209
|
+
type: "workflow",
|
|
210
|
+
status: "initiated",
|
|
211
|
+
context: { runId, stackId },
|
|
212
|
+
labels: ["orchestrator", "run"],
|
|
213
|
+
participants: [
|
|
214
|
+
{
|
|
215
|
+
address: getDefaultCoordinator(),
|
|
216
|
+
role: "coordinator",
|
|
217
|
+
metadata: { runId, stackId }
|
|
218
|
+
}
|
|
219
|
+
]
|
|
220
|
+
});
|
|
221
|
+
runToInteraction.set(runId, result.interaction.id);
|
|
222
|
+
emitLifecycleEvents(result.events, result.interaction.id, { runId, stackId });
|
|
223
|
+
return result.interaction.id;
|
|
224
|
+
}
|
|
225
|
+
function recordRunStart(event, interactionId) {
|
|
226
|
+
const ensuredId = ensureInteractionForRun(event.runId, event.stackId, interactionId);
|
|
227
|
+
void emitInteractionEvent(
|
|
228
|
+
ensuredId,
|
|
229
|
+
"interaction:run_start",
|
|
230
|
+
{ ...event, interactionId: ensuredId },
|
|
231
|
+
{ interactionId: ensuredId, runId: event.runId, stackId: event.stackId }
|
|
232
|
+
);
|
|
233
|
+
const existing = getInteractionForTransition(ensuredId);
|
|
234
|
+
if (!existing) return ensuredId;
|
|
235
|
+
const { event: statusEvent } = transitionStatusWithEvent(existing, "active", {
|
|
236
|
+
timestamp: event.startedAt,
|
|
237
|
+
sequence: nextSequence(ensuredId)
|
|
238
|
+
});
|
|
239
|
+
void emitInteractionEvent(
|
|
240
|
+
ensuredId,
|
|
241
|
+
statusEvent.type,
|
|
242
|
+
statusEvent.payload,
|
|
243
|
+
{ interactionId: ensuredId, runId: event.runId, stackId: event.stackId }
|
|
244
|
+
);
|
|
245
|
+
return ensuredId;
|
|
246
|
+
}
|
|
247
|
+
function recordNodeComplete(event) {
|
|
248
|
+
const interactionId = runToInteraction.get(event.runId);
|
|
249
|
+
if (!interactionId) return void 0;
|
|
250
|
+
void emitInteractionEvent(
|
|
251
|
+
interactionId,
|
|
252
|
+
"interaction:node_complete",
|
|
253
|
+
{ ...event, interactionId },
|
|
254
|
+
{ interactionId, runId: event.runId, nodeId: event.nodeId }
|
|
255
|
+
);
|
|
256
|
+
return interactionId;
|
|
257
|
+
}
|
|
258
|
+
function recordRunComplete(event) {
|
|
259
|
+
const interactionId = runToInteraction.get(event.runId);
|
|
260
|
+
if (!interactionId) return void 0;
|
|
261
|
+
void emitInteractionEvent(
|
|
262
|
+
interactionId,
|
|
263
|
+
"interaction:run_complete",
|
|
264
|
+
{ ...event, interactionId },
|
|
265
|
+
{ interactionId, runId: event.runId }
|
|
266
|
+
);
|
|
267
|
+
const existing = getInteractionForTransition(interactionId);
|
|
268
|
+
if (!existing) return interactionId;
|
|
269
|
+
const targetStatus = event.success ? "completed" : "failed";
|
|
270
|
+
const { event: statusEvent } = transitionStatusWithEvent(existing, targetStatus, {
|
|
271
|
+
timestamp: event.completedAt,
|
|
272
|
+
sequence: nextSequence(interactionId)
|
|
273
|
+
});
|
|
274
|
+
void emitInteractionEvent(
|
|
275
|
+
interactionId,
|
|
276
|
+
statusEvent.type,
|
|
277
|
+
statusEvent.payload,
|
|
278
|
+
{ interactionId, runId: event.runId }
|
|
279
|
+
);
|
|
280
|
+
return interactionId;
|
|
281
|
+
}
|
|
282
|
+
function recordSystemPause(event) {
|
|
283
|
+
const interactionId = runToInteraction.get(event.runId);
|
|
284
|
+
if (!interactionId) return void 0;
|
|
285
|
+
void emitInteractionEvent(
|
|
286
|
+
interactionId,
|
|
287
|
+
"interaction:system_pause",
|
|
288
|
+
{ ...event, interactionId },
|
|
289
|
+
{ interactionId, runId: event.runId }
|
|
290
|
+
);
|
|
291
|
+
const existing = getInteractionForTransition(interactionId);
|
|
292
|
+
if (!existing) return interactionId;
|
|
293
|
+
const { event: statusEvent } = transitionStatusWithEvent(existing, "paused", {
|
|
294
|
+
timestamp: event.pausedAt,
|
|
295
|
+
sequence: nextSequence(interactionId)
|
|
296
|
+
});
|
|
297
|
+
void emitInteractionEvent(
|
|
298
|
+
interactionId,
|
|
299
|
+
statusEvent.type,
|
|
300
|
+
statusEvent.payload,
|
|
301
|
+
{ interactionId, runId: event.runId }
|
|
302
|
+
);
|
|
303
|
+
return interactionId;
|
|
304
|
+
}
|
|
305
|
+
function recordSystemResume(event) {
|
|
306
|
+
const interactionId = runToInteraction.get(event.runId);
|
|
307
|
+
if (!interactionId) return void 0;
|
|
308
|
+
void emitInteractionEvent(
|
|
309
|
+
interactionId,
|
|
310
|
+
"interaction:system_resume",
|
|
311
|
+
{ ...event, interactionId },
|
|
312
|
+
{ interactionId, runId: event.runId }
|
|
313
|
+
);
|
|
314
|
+
const existing = getInteractionForTransition(interactionId);
|
|
315
|
+
if (!existing) return interactionId;
|
|
316
|
+
const { event: statusEvent } = transitionStatusWithEvent(existing, "active", {
|
|
317
|
+
timestamp: event.resumedAt,
|
|
318
|
+
sequence: nextSequence(interactionId)
|
|
319
|
+
});
|
|
320
|
+
void emitInteractionEvent(
|
|
321
|
+
interactionId,
|
|
322
|
+
statusEvent.type,
|
|
323
|
+
statusEvent.payload,
|
|
324
|
+
{ interactionId, runId: event.runId }
|
|
325
|
+
);
|
|
326
|
+
return interactionId;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
// ../../lib/terminals-tech/mesh/mesh-sink.ts
|
|
330
|
+
function normalizeEmbedding(embedding) {
|
|
331
|
+
if (!embedding) return void 0;
|
|
332
|
+
const arr = embedding instanceof Float32Array ? embedding : new Float32Array(embedding);
|
|
333
|
+
const target = arr.length === DEFAULT_EMBEDDING_DIM ? arr : (() => {
|
|
334
|
+
const fixed = new Float32Array(DEFAULT_EMBEDDING_DIM);
|
|
335
|
+
fixed.set(arr.subarray(0, Math.min(arr.length, DEFAULT_EMBEDDING_DIM)));
|
|
336
|
+
return fixed;
|
|
337
|
+
})();
|
|
338
|
+
for (let i = 0; i < target.length; i++) {
|
|
339
|
+
if (Number.isNaN(target[i])) target[i] = 0;
|
|
340
|
+
}
|
|
341
|
+
return target;
|
|
342
|
+
}
|
|
343
|
+
function deriveType(tracePath, override) {
|
|
344
|
+
if (override) return override;
|
|
345
|
+
const parts = tracePath.split(".");
|
|
346
|
+
return parts[parts.length - 1] || "event";
|
|
347
|
+
}
|
|
348
|
+
function deriveLogId(tracePath, fallback) {
|
|
349
|
+
if (fallback) return fallback;
|
|
350
|
+
return tracePath.replace(/[^\w]+/g, "_").slice(0, 120) || "mesh";
|
|
351
|
+
}
|
|
352
|
+
async function appendMeshSinkEvent(input) {
|
|
353
|
+
const { tracePath, payload, embedding, metadata, span, logId, typeOverride } = input;
|
|
354
|
+
if (isDatabaseReady()) {
|
|
355
|
+
const event2 = await appendMeshEvent(
|
|
356
|
+
tracePath,
|
|
357
|
+
payload,
|
|
358
|
+
embedding ? Array.from(normalizeEmbedding(embedding) || []) : void 0,
|
|
359
|
+
span,
|
|
360
|
+
metadata
|
|
361
|
+
);
|
|
362
|
+
return { mode: "pglite", event: event2 };
|
|
363
|
+
}
|
|
364
|
+
const event = appendEvent(
|
|
365
|
+
deriveLogId(tracePath, logId),
|
|
366
|
+
deriveType(tracePath, typeOverride),
|
|
367
|
+
payload,
|
|
368
|
+
normalizeEmbedding(embedding),
|
|
369
|
+
metadata
|
|
370
|
+
);
|
|
371
|
+
return { mode: "memory", event };
|
|
372
|
+
}
|
|
373
|
+
|
|
374
|
+
export {
|
|
375
|
+
appendMeshSinkEvent,
|
|
376
|
+
recordRunStart,
|
|
377
|
+
recordNodeComplete,
|
|
378
|
+
recordRunComplete,
|
|
379
|
+
recordSystemPause,
|
|
380
|
+
recordSystemResume
|
|
381
|
+
};
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import {
|
|
2
|
+
recordNodeComplete,
|
|
3
|
+
recordRunComplete,
|
|
4
|
+
recordRunStart,
|
|
5
|
+
recordSystemPause,
|
|
6
|
+
recordSystemResume
|
|
7
|
+
} from "./chunk-PWAHFID5.js";
|
|
8
|
+
import {
|
|
9
|
+
getSignalBus
|
|
10
|
+
} from "./chunk-2WTYE4SW.js";
|
|
11
|
+
|
|
12
|
+
// ../../lib/terminals-tech/mesh/axon/bridges/layer-bridge.ts
|
|
13
|
+
function createLayerBridge(sourceLayer, targetLayer) {
|
|
14
|
+
const upHandlers = [];
|
|
15
|
+
const downHandlers = [];
|
|
16
|
+
return {
|
|
17
|
+
sourceLayer,
|
|
18
|
+
targetLayer,
|
|
19
|
+
sendUp(data) {
|
|
20
|
+
getSignalBus().emit("health_update", sourceLayer, targetLayer, {
|
|
21
|
+
direction: "up",
|
|
22
|
+
data
|
|
23
|
+
});
|
|
24
|
+
for (const handler of upHandlers) {
|
|
25
|
+
try {
|
|
26
|
+
handler(data);
|
|
27
|
+
} catch (error) {
|
|
28
|
+
console.error(`[Bridge ${sourceLayer}->${targetLayer}] Up handler error:`, error);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
sendDown(data) {
|
|
33
|
+
getSignalBus().emit("health_update", targetLayer, sourceLayer, {
|
|
34
|
+
direction: "down",
|
|
35
|
+
data
|
|
36
|
+
});
|
|
37
|
+
for (const handler of downHandlers) {
|
|
38
|
+
try {
|
|
39
|
+
handler(data);
|
|
40
|
+
} catch (error) {
|
|
41
|
+
console.error(`[Bridge ${targetLayer}->${sourceLayer}] Down handler error:`, error);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
onUp(handler) {
|
|
46
|
+
upHandlers.push(handler);
|
|
47
|
+
return () => {
|
|
48
|
+
const index = upHandlers.indexOf(handler);
|
|
49
|
+
if (index >= 0) {
|
|
50
|
+
upHandlers.splice(index, 1);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
},
|
|
54
|
+
onDown(handler) {
|
|
55
|
+
downHandlers.push(handler);
|
|
56
|
+
return () => {
|
|
57
|
+
const index = downHandlers.indexOf(handler);
|
|
58
|
+
if (index >= 0) {
|
|
59
|
+
downHandlers.splice(index, 1);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
// ../../lib/terminals-tech/mesh/axon/bridges/l2-l3-bridge.ts
|
|
67
|
+
var l2L3Bridge = createLayerBridge(
|
|
68
|
+
"L2",
|
|
69
|
+
"L3"
|
|
70
|
+
);
|
|
71
|
+
var orchestratorToMesh = {
|
|
72
|
+
/**
|
|
73
|
+
* Notify mesh that a run has started
|
|
74
|
+
*/
|
|
75
|
+
onRunStart(runId, stackId) {
|
|
76
|
+
const event = {
|
|
77
|
+
runId,
|
|
78
|
+
stackId,
|
|
79
|
+
startedAt: Date.now()
|
|
80
|
+
};
|
|
81
|
+
l2L3Bridge.sendUp({
|
|
82
|
+
type: "run_start",
|
|
83
|
+
event
|
|
84
|
+
});
|
|
85
|
+
recordRunStart(event);
|
|
86
|
+
getSignalBus().emit("task_complete", "L2", "L3", {
|
|
87
|
+
action: "run_start",
|
|
88
|
+
runId,
|
|
89
|
+
stackId
|
|
90
|
+
});
|
|
91
|
+
},
|
|
92
|
+
/**
|
|
93
|
+
* Notify mesh that a node has completed
|
|
94
|
+
*/
|
|
95
|
+
onNodeComplete(runId, nodeId, success, durationMs) {
|
|
96
|
+
const event = {
|
|
97
|
+
runId,
|
|
98
|
+
nodeId,
|
|
99
|
+
success,
|
|
100
|
+
durationMs,
|
|
101
|
+
completedAt: Date.now()
|
|
102
|
+
};
|
|
103
|
+
l2L3Bridge.sendUp({
|
|
104
|
+
type: "node_complete",
|
|
105
|
+
event
|
|
106
|
+
});
|
|
107
|
+
recordNodeComplete(event);
|
|
108
|
+
const signalType = success ? "task_complete" : "task_failed";
|
|
109
|
+
getSignalBus().emit(signalType, "L2", "L3", {
|
|
110
|
+
runId,
|
|
111
|
+
nodeId,
|
|
112
|
+
durationMs
|
|
113
|
+
});
|
|
114
|
+
},
|
|
115
|
+
/**
|
|
116
|
+
* Notify mesh that a run has completed
|
|
117
|
+
*/
|
|
118
|
+
onRunComplete(runId, success, durationMs) {
|
|
119
|
+
const event = {
|
|
120
|
+
runId,
|
|
121
|
+
success,
|
|
122
|
+
durationMs,
|
|
123
|
+
completedAt: Date.now()
|
|
124
|
+
};
|
|
125
|
+
l2L3Bridge.sendUp({
|
|
126
|
+
type: "run_complete",
|
|
127
|
+
event
|
|
128
|
+
});
|
|
129
|
+
recordRunComplete(event);
|
|
130
|
+
const signalType = success ? "task_complete" : "task_failed";
|
|
131
|
+
getSignalBus().emit(signalType, "L2", "L3", {
|
|
132
|
+
action: "run_complete",
|
|
133
|
+
runId,
|
|
134
|
+
success,
|
|
135
|
+
durationMs
|
|
136
|
+
});
|
|
137
|
+
},
|
|
138
|
+
/**
|
|
139
|
+
* Notify mesh that system is pausing due to cognitive load
|
|
140
|
+
*/
|
|
141
|
+
onSystemPause(runId, reason) {
|
|
142
|
+
const event = {
|
|
143
|
+
runId,
|
|
144
|
+
reason,
|
|
145
|
+
pausedAt: Date.now()
|
|
146
|
+
};
|
|
147
|
+
l2L3Bridge.sendUp({
|
|
148
|
+
type: "system_pause",
|
|
149
|
+
event
|
|
150
|
+
});
|
|
151
|
+
recordSystemPause(event);
|
|
152
|
+
getSignalBus().emit("backpressure_warning", "L2", "L3", {
|
|
153
|
+
action: "system_pause",
|
|
154
|
+
runId,
|
|
155
|
+
reason
|
|
156
|
+
});
|
|
157
|
+
},
|
|
158
|
+
/**
|
|
159
|
+
* Notify mesh that system is resuming execution
|
|
160
|
+
*/
|
|
161
|
+
onSystemResume(runId) {
|
|
162
|
+
const event = {
|
|
163
|
+
runId,
|
|
164
|
+
resumedAt: Date.now()
|
|
165
|
+
};
|
|
166
|
+
l2L3Bridge.sendUp({
|
|
167
|
+
type: "system_resume",
|
|
168
|
+
event
|
|
169
|
+
});
|
|
170
|
+
recordSystemResume(event);
|
|
171
|
+
getSignalBus().emit("task_complete", "L2", "L3", {
|
|
172
|
+
action: "system_resume",
|
|
173
|
+
runId
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
};
|
|
177
|
+
function onOrchestratorEvent(handler) {
|
|
178
|
+
return l2L3Bridge.onUp(handler);
|
|
179
|
+
}
|
|
180
|
+
function onMeshFeedback(handler) {
|
|
181
|
+
return l2L3Bridge.onDown(handler);
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
export {
|
|
185
|
+
orchestratorToMesh,
|
|
186
|
+
onOrchestratorEvent,
|
|
187
|
+
onMeshFeedback
|
|
188
|
+
};
|