@grackle-ai/core 0.132.0 → 0.132.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/credential-bundle.d.ts +23 -2
- package/dist/credential-bundle.d.ts.map +1 -1
- package/dist/credential-bundle.js +18 -16
- package/dist/credential-bundle.js.map +1 -1
- package/dist/event-processor.d.ts +2 -2
- package/dist/event-processor.d.ts.map +1 -1
- package/dist/event-processor.js +41 -99
- package/dist/event-processor.js.map +1 -1
- package/dist/pipe-delivery.d.ts.map +1 -1
- package/dist/pipe-delivery.js +2 -7
- package/dist/pipe-delivery.js.map +1 -1
- package/dist/reanimate-agent.d.ts.map +1 -1
- package/dist/reanimate-agent.js +7 -9
- package/dist/reanimate-agent.js.map +1 -1
- package/dist/session-recovery.d.ts +1 -1
- package/dist/session-recovery.d.ts.map +1 -1
- package/dist/session-recovery.js +12 -11
- package/dist/session-recovery.js.map +1 -1
- package/dist/signals/signal-delivery.js +2 -2
- package/dist/signals/signal-delivery.js.map +1 -1
- package/dist/task-session.d.ts.map +1 -1
- package/dist/task-session.js +2 -4
- package/dist/task-session.js.map +1 -1
- package/dist/test-utils/mock-database.d.ts +0 -2
- package/dist/test-utils/mock-database.d.ts.map +1 -1
- package/dist/test-utils/mock-database.js +0 -2
- package/dist/test-utils/mock-database.js.map +1 -1
- package/dist/token-push.d.ts +3 -2
- package/dist/token-push.d.ts.map +1 -1
- package/dist/token-push.js +14 -21
- package/dist/token-push.js.map +1 -1
- package/package.json +9 -9
- package/dist/ahp-mapper.d.ts +0 -95
- package/dist/ahp-mapper.d.ts.map +0 -1
- package/dist/ahp-mapper.js +0 -499
- package/dist/ahp-mapper.js.map +0 -1
- package/dist/ahp-session-state.d.ts +0 -169
- package/dist/ahp-session-state.d.ts.map +0 -1
- package/dist/ahp-session-state.js +0 -474
- package/dist/ahp-session-state.js.map +0 -1
package/dist/ahp-mapper.js
DELETED
|
@@ -1,499 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AgentEvent → AHP SessionAction mapper (AHP HR1b / RFC #1292).
|
|
3
|
-
*
|
|
4
|
-
* Stateless function that translates a single PowerLine `AgentEvent` into one
|
|
5
|
-
* or more AHP `SessionAction` payloads. The mapper is stateless — it requires
|
|
6
|
-
* a `MapperContext` from the caller to track turn state and tool-call pairing.
|
|
7
|
-
*
|
|
8
|
-
* This mapper is an interim bridge while PowerLine still produces AgentEvents
|
|
9
|
-
* and the AHP host eventually takes over the transport (HR8).
|
|
10
|
-
*
|
|
11
|
-
* @module ahp-mapper
|
|
12
|
-
*/
|
|
13
|
-
import { ActionType, ToolCallConfirmationReason, ToolResultContentType, ResponsePartKind, } from "@grackle-ai/ahp";
|
|
14
|
-
/** Safely parse an event's content JSON, returning a record or undefined on failure. */
|
|
15
|
-
function safeParseContent(content) {
|
|
16
|
-
if (!content)
|
|
17
|
-
return undefined;
|
|
18
|
-
try {
|
|
19
|
-
return JSON.parse(content);
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
return undefined;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
/** Build an ErrorInfo from a message string. */
|
|
26
|
-
function makeErrorInfo(message) {
|
|
27
|
-
return { message, errorType: "unknown" };
|
|
28
|
-
}
|
|
29
|
-
/** Build a ToolResultContent from a string. */
|
|
30
|
-
function makeTextResult(text) {
|
|
31
|
-
return { type: ToolResultContentType.Text, text };
|
|
32
|
-
}
|
|
33
|
-
/** Check whether a system event is a diagnostic (HR7) that routes to OTLP. */
|
|
34
|
-
function isDiagnosticEvent(event) {
|
|
35
|
-
if (event.diagnostic)
|
|
36
|
-
return true;
|
|
37
|
-
const parsed = safeParseContent(event.content);
|
|
38
|
-
if (parsed) {
|
|
39
|
-
const keys = Object.keys(parsed);
|
|
40
|
-
if ((keys.includes("span") || keys.includes("trace") || keys.includes("level")) &&
|
|
41
|
-
!keys.some((k) => k === "text" || k === "content" || k === "tool_name")) {
|
|
42
|
-
return true;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
return false;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Get a string field from parsed JSON content with fallbacks.
|
|
49
|
-
* @param parsed - The parsed JSON object to look up.
|
|
50
|
-
* @param fields - Field names to try (in order).
|
|
51
|
-
* @param fallback - Literal fallback value if no field is found.
|
|
52
|
-
* @returns The first found field value as a string, or the fallback.
|
|
53
|
-
*/
|
|
54
|
-
function str(parsed, fields, fallback) {
|
|
55
|
-
for (const field of fields) {
|
|
56
|
-
const val = parsed[field];
|
|
57
|
-
if (val !== undefined)
|
|
58
|
-
return String(val);
|
|
59
|
-
}
|
|
60
|
-
return fallback;
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Map a PowerLine `AgentEvent` into AHP `SessionAction` payloads.
|
|
64
|
-
*
|
|
65
|
-
* | AgentEvent type | AHP action(s) | Disposition |
|
|
66
|
-
* |-----------------|---------------|-------------|
|
|
67
|
-
* | `turn_started` | `SessionTurnStarted` | mapped |
|
|
68
|
-
* | `turn_complete` | `SessionTurnComplete` | mapped |
|
|
69
|
-
* | `input_needed` | advisory only | dropped |
|
|
70
|
-
* | `text` | `SessionResponsePart(markdown)` | mapped |
|
|
71
|
-
* | `tool_use` | `SessionToolCallStart` + `SessionToolCallReady` | mapped |
|
|
72
|
-
* | `tool_result` | `SessionToolCallComplete` | mapped |
|
|
73
|
-
* | `usage` | (none — cost accumulated in `_meta`) | carried |
|
|
74
|
-
* | `error` (in-turn) | `SessionError` | mapped |
|
|
75
|
-
* | `error` (pre-turn) | `SessionCreationFailed` | mapped |
|
|
76
|
-
* | `status: failed` | `SessionError` or `SessionCreationFailed` | mapped |
|
|
77
|
-
* | `status: killed/terminated` | `SessionError` (abandoned turn) | conditional |
|
|
78
|
-
* | `status: completed/waiting_input/running` | dropped | dropped |
|
|
79
|
-
* | `system` (diagnostic) | dropped (OTLP telemetry) | carried |
|
|
80
|
-
* | `system` (non-diagnostic) | `SessionResponsePart(systemNotification)` | mapped |
|
|
81
|
-
* | `runtime_session_id` | `_meta.runtimeSessionId` | carried |
|
|
82
|
-
*/
|
|
83
|
-
export function mapAgentEvent(event, index, context) {
|
|
84
|
-
const actions = [];
|
|
85
|
-
let note;
|
|
86
|
-
const { type, content, toolCallId, turnId } = event;
|
|
87
|
-
// Proto string fields default to "", treat empty as undefined
|
|
88
|
-
const eventTurnId = turnId || undefined;
|
|
89
|
-
const parsed = safeParseContent(content);
|
|
90
|
-
const hasParsed = parsed !== undefined;
|
|
91
|
-
switch (type) {
|
|
92
|
-
// ─── Turn lifecycle ────────────────────────────────────────────
|
|
93
|
-
case "turn_started": {
|
|
94
|
-
const userMessage = hasParsed ? str(parsed, ["user_message"], content || "") : content || "";
|
|
95
|
-
// Always derive a fresh turnId when eventTurnId is absent — don't inherit stale context.turnId
|
|
96
|
-
const derivedTurnId = eventTurnId || `turn-${index}`;
|
|
97
|
-
actions.push({
|
|
98
|
-
type: ActionType.SessionTurnStarted,
|
|
99
|
-
turnId: derivedTurnId,
|
|
100
|
-
userMessage: { text: userMessage },
|
|
101
|
-
});
|
|
102
|
-
context.turnId = derivedTurnId;
|
|
103
|
-
context.openToolCalls = [];
|
|
104
|
-
// partCounter is NOT reset here — it increments across turns so part IDs
|
|
105
|
-
// are globally unique within a session (part-0, part-1, … across all turns).
|
|
106
|
-
note = {
|
|
107
|
-
index,
|
|
108
|
-
type: "turn_started",
|
|
109
|
-
disposition: "mapped",
|
|
110
|
-
detail: `Mapped to SessionTurnStarted (turnId=${context.turnId})`,
|
|
111
|
-
};
|
|
112
|
-
break;
|
|
113
|
-
}
|
|
114
|
-
case "turn_complete": {
|
|
115
|
-
const turnId = eventTurnId || context.turnId;
|
|
116
|
-
if (turnId) {
|
|
117
|
-
actions.push({
|
|
118
|
-
type: ActionType.SessionTurnComplete,
|
|
119
|
-
turnId,
|
|
120
|
-
});
|
|
121
|
-
context.turnId = undefined;
|
|
122
|
-
context.openToolCalls = [];
|
|
123
|
-
note = {
|
|
124
|
-
index,
|
|
125
|
-
type: "turn_complete",
|
|
126
|
-
disposition: "mapped",
|
|
127
|
-
detail: `Mapped to SessionTurnComplete (turnId=${turnId})`,
|
|
128
|
-
};
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
note = {
|
|
132
|
-
index,
|
|
133
|
-
type: "turn_complete",
|
|
134
|
-
disposition: "dropped",
|
|
135
|
-
detail: "No active turn to complete",
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
break;
|
|
139
|
-
}
|
|
140
|
-
// ─── Dropped: advisory only ────────────────────────────────────
|
|
141
|
-
case "input_needed": {
|
|
142
|
-
note = {
|
|
143
|
-
index,
|
|
144
|
-
type: "input_needed",
|
|
145
|
-
disposition: "dropped",
|
|
146
|
-
detail: "Advisory event — no structured elicitation content yet",
|
|
147
|
-
};
|
|
148
|
-
break;
|
|
149
|
-
}
|
|
150
|
-
// ─── Response parts ────────────────────────────────────────────
|
|
151
|
-
case "text": {
|
|
152
|
-
const turnId = eventTurnId || context.turnId;
|
|
153
|
-
if (!turnId) {
|
|
154
|
-
note = {
|
|
155
|
-
index,
|
|
156
|
-
type: "text",
|
|
157
|
-
disposition: "dropped",
|
|
158
|
-
detail: "No active turn for text part",
|
|
159
|
-
};
|
|
160
|
-
break;
|
|
161
|
-
}
|
|
162
|
-
const partId = `part-${context.partCounter++}`;
|
|
163
|
-
actions.push({
|
|
164
|
-
type: ActionType.SessionResponsePart,
|
|
165
|
-
turnId,
|
|
166
|
-
part: {
|
|
167
|
-
kind: ResponsePartKind.Markdown,
|
|
168
|
-
id: partId,
|
|
169
|
-
content: content || "",
|
|
170
|
-
},
|
|
171
|
-
});
|
|
172
|
-
note = {
|
|
173
|
-
index,
|
|
174
|
-
type: "text",
|
|
175
|
-
disposition: "mapped",
|
|
176
|
-
detail: `Mapped to SessionResponsePart (partId=${partId})`,
|
|
177
|
-
};
|
|
178
|
-
break;
|
|
179
|
-
}
|
|
180
|
-
// ─── Tool calls ────────────────────────────────────────────────
|
|
181
|
-
case "tool_use": {
|
|
182
|
-
const turnId = eventTurnId || context.turnId;
|
|
183
|
-
if (!turnId) {
|
|
184
|
-
note = {
|
|
185
|
-
index,
|
|
186
|
-
type: "tool_use",
|
|
187
|
-
disposition: "dropped",
|
|
188
|
-
detail: "No active turn for tool_use",
|
|
189
|
-
};
|
|
190
|
-
break;
|
|
191
|
-
}
|
|
192
|
-
const toolCallIdValue = toolCallId || `tc-${context.partCounter++}`;
|
|
193
|
-
const toolName = hasParsed
|
|
194
|
-
? str(parsed, ["tool_name", "name"], "unknown_tool")
|
|
195
|
-
: "unknown_tool";
|
|
196
|
-
const displayName = hasParsed ? str(parsed, ["display_name"], toolName) : toolName;
|
|
197
|
-
const invocationMessage = hasParsed
|
|
198
|
-
? str(parsed, ["invocation_message"], `Running ${toolName}`)
|
|
199
|
-
: `Running ${toolName}`;
|
|
200
|
-
// SessionToolCallStart
|
|
201
|
-
actions.push({
|
|
202
|
-
type: ActionType.SessionToolCallStart,
|
|
203
|
-
turnId,
|
|
204
|
-
toolCallId: toolCallIdValue,
|
|
205
|
-
toolName,
|
|
206
|
-
displayName,
|
|
207
|
-
});
|
|
208
|
-
// SessionToolCallReady with auto-confirmation
|
|
209
|
-
actions.push({
|
|
210
|
-
type: ActionType.SessionToolCallReady,
|
|
211
|
-
turnId,
|
|
212
|
-
toolCallId: toolCallIdValue,
|
|
213
|
-
invocationMessage,
|
|
214
|
-
confirmed: ToolCallConfirmationReason.NotNeeded,
|
|
215
|
-
});
|
|
216
|
-
context.openToolCalls.push(toolCallIdValue);
|
|
217
|
-
note = {
|
|
218
|
-
index,
|
|
219
|
-
type: "tool_use",
|
|
220
|
-
disposition: "mapped",
|
|
221
|
-
detail: `Mapped to SessionToolCallStart + SessionToolCallReady (toolCallId=${toolCallIdValue})`,
|
|
222
|
-
};
|
|
223
|
-
break;
|
|
224
|
-
}
|
|
225
|
-
case "tool_result": {
|
|
226
|
-
const turnId = eventTurnId || context.turnId;
|
|
227
|
-
if (!turnId) {
|
|
228
|
-
note = {
|
|
229
|
-
index,
|
|
230
|
-
type: "tool_result",
|
|
231
|
-
disposition: "dropped",
|
|
232
|
-
detail: "No active turn for tool_result",
|
|
233
|
-
};
|
|
234
|
-
break;
|
|
235
|
-
}
|
|
236
|
-
// Pair by first-class toolCallId (HR3), with LIFO stack fallback
|
|
237
|
-
const pairedToolCallId = toolCallId || context.openToolCalls.pop() || "";
|
|
238
|
-
// Remove matched id from stack when first-class toolCallId is provided
|
|
239
|
-
if (toolCallId) {
|
|
240
|
-
const idx = context.openToolCalls.indexOf(toolCallId);
|
|
241
|
-
if (idx !== -1) {
|
|
242
|
-
context.openToolCalls.splice(idx, 1);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
if (!pairedToolCallId) {
|
|
246
|
-
note = {
|
|
247
|
-
index,
|
|
248
|
-
type: "tool_result",
|
|
249
|
-
disposition: "dropped",
|
|
250
|
-
detail: "No matching tool call for result",
|
|
251
|
-
};
|
|
252
|
-
break;
|
|
253
|
-
}
|
|
254
|
-
const isOk = hasParsed
|
|
255
|
-
? "is_ok" in parsed
|
|
256
|
-
? parsed.is_ok === true
|
|
257
|
-
: "success" in parsed
|
|
258
|
-
? parsed.success === true
|
|
259
|
-
: true
|
|
260
|
-
: true;
|
|
261
|
-
const pastTenseMessage = hasParsed
|
|
262
|
-
? str(parsed, ["past_tense_message"], content || "")
|
|
263
|
-
: content || "";
|
|
264
|
-
const resultText = hasParsed ? str(parsed, ["content"], content || "") : content || "";
|
|
265
|
-
actions.push({
|
|
266
|
-
type: ActionType.SessionToolCallComplete,
|
|
267
|
-
turnId,
|
|
268
|
-
toolCallId: pairedToolCallId,
|
|
269
|
-
result: {
|
|
270
|
-
success: isOk,
|
|
271
|
-
pastTenseMessage,
|
|
272
|
-
content: isOk ? [makeTextResult(resultText)] : undefined,
|
|
273
|
-
error: isOk ? undefined : { message: pastTenseMessage },
|
|
274
|
-
},
|
|
275
|
-
});
|
|
276
|
-
// System notification for successful result
|
|
277
|
-
if (isOk && content) {
|
|
278
|
-
const displayText = resultText.length > 200 ? resultText.slice(0, 200) + "..." : resultText;
|
|
279
|
-
actions.push({
|
|
280
|
-
type: ActionType.SessionResponsePart,
|
|
281
|
-
turnId,
|
|
282
|
-
part: {
|
|
283
|
-
kind: ResponsePartKind.SystemNotification,
|
|
284
|
-
content: displayText,
|
|
285
|
-
},
|
|
286
|
-
});
|
|
287
|
-
}
|
|
288
|
-
note = {
|
|
289
|
-
index,
|
|
290
|
-
type: "tool_result",
|
|
291
|
-
disposition: "mapped",
|
|
292
|
-
detail: `Mapped to SessionToolCallComplete (toolCallId=${pairedToolCallId})`,
|
|
293
|
-
};
|
|
294
|
-
break;
|
|
295
|
-
}
|
|
296
|
-
// ─── Usage (carried via _meta) ─────────────────────────────────
|
|
297
|
-
case "usage": {
|
|
298
|
-
const rawCost = hasParsed ? parsed.cost_millicents : undefined;
|
|
299
|
-
// eslint-disable-next-line eqeqeq -- `!= null` checks both null and undefined in one expression
|
|
300
|
-
if (rawCost != null && Number.isFinite(Number(rawCost))) {
|
|
301
|
-
const prevCost = context.metaAccumulator.costMillicents ?? 0;
|
|
302
|
-
const cost = Number(rawCost);
|
|
303
|
-
context.metaAccumulator.costMillicents = Math.max(0, prevCost + Math.trunc(cost));
|
|
304
|
-
}
|
|
305
|
-
note = {
|
|
306
|
-
index,
|
|
307
|
-
type: "usage",
|
|
308
|
-
disposition: "carried",
|
|
309
|
-
detail: `Usage tracked — costMillicents now ${context.metaAccumulator.costMillicents ?? 0}`,
|
|
310
|
-
};
|
|
311
|
-
break;
|
|
312
|
-
}
|
|
313
|
-
// ─── Errors ────────────────────────────────────────────────────
|
|
314
|
-
case "error": {
|
|
315
|
-
const turnId = eventTurnId || context.turnId;
|
|
316
|
-
const errorDetail = content || "Unknown error";
|
|
317
|
-
if (turnId) {
|
|
318
|
-
actions.push({
|
|
319
|
-
type: ActionType.SessionError,
|
|
320
|
-
turnId,
|
|
321
|
-
error: makeErrorInfo(errorDetail),
|
|
322
|
-
});
|
|
323
|
-
note = {
|
|
324
|
-
index,
|
|
325
|
-
type: "error",
|
|
326
|
-
disposition: "mapped",
|
|
327
|
-
detail: `Mapped to SessionError (turnId=${turnId})`,
|
|
328
|
-
};
|
|
329
|
-
context.turnId = undefined;
|
|
330
|
-
}
|
|
331
|
-
else {
|
|
332
|
-
actions.push({
|
|
333
|
-
type: ActionType.SessionCreationFailed,
|
|
334
|
-
error: makeErrorInfo(errorDetail),
|
|
335
|
-
});
|
|
336
|
-
note = {
|
|
337
|
-
index,
|
|
338
|
-
type: "error",
|
|
339
|
-
disposition: "mapped",
|
|
340
|
-
detail: "Mapped to SessionCreationFailed (no active turn)",
|
|
341
|
-
};
|
|
342
|
-
}
|
|
343
|
-
break;
|
|
344
|
-
}
|
|
345
|
-
// ─── Status events ─────────────────────────────────────────────
|
|
346
|
-
case "status": {
|
|
347
|
-
const statusContent = content || "";
|
|
348
|
-
const turnId = eventTurnId || context.turnId;
|
|
349
|
-
switch (statusContent) {
|
|
350
|
-
case "failed": {
|
|
351
|
-
if (turnId) {
|
|
352
|
-
actions.push({
|
|
353
|
-
type: ActionType.SessionError,
|
|
354
|
-
turnId,
|
|
355
|
-
error: makeErrorInfo("Session failed during turn"),
|
|
356
|
-
});
|
|
357
|
-
context.turnId = undefined;
|
|
358
|
-
note = {
|
|
359
|
-
index,
|
|
360
|
-
type: "status",
|
|
361
|
-
disposition: "mapped",
|
|
362
|
-
detail: `Mapped to SessionError (status=failed, turnId=${turnId})`,
|
|
363
|
-
};
|
|
364
|
-
}
|
|
365
|
-
else {
|
|
366
|
-
actions.push({
|
|
367
|
-
type: ActionType.SessionCreationFailed,
|
|
368
|
-
error: makeErrorInfo("Session creation failed"),
|
|
369
|
-
});
|
|
370
|
-
note = {
|
|
371
|
-
index,
|
|
372
|
-
type: "status",
|
|
373
|
-
disposition: "mapped",
|
|
374
|
-
detail: "Mapped to SessionCreationFailed (status=failed)",
|
|
375
|
-
};
|
|
376
|
-
}
|
|
377
|
-
break;
|
|
378
|
-
}
|
|
379
|
-
case "killed":
|
|
380
|
-
case "terminated": {
|
|
381
|
-
if (turnId) {
|
|
382
|
-
actions.push({
|
|
383
|
-
type: ActionType.SessionError,
|
|
384
|
-
turnId,
|
|
385
|
-
error: makeErrorInfo(`Session ${statusContent} during turn`),
|
|
386
|
-
});
|
|
387
|
-
context.turnId = undefined;
|
|
388
|
-
context.openToolCalls = [];
|
|
389
|
-
note = {
|
|
390
|
-
index,
|
|
391
|
-
type: "status",
|
|
392
|
-
disposition: "mapped",
|
|
393
|
-
detail: `Mapped to SessionError (status=${statusContent})`,
|
|
394
|
-
};
|
|
395
|
-
}
|
|
396
|
-
else {
|
|
397
|
-
note = {
|
|
398
|
-
index,
|
|
399
|
-
type: "status",
|
|
400
|
-
disposition: "dropped",
|
|
401
|
-
detail: `No active turn for status=${statusContent}`,
|
|
402
|
-
};
|
|
403
|
-
}
|
|
404
|
-
break;
|
|
405
|
-
}
|
|
406
|
-
case "completed":
|
|
407
|
-
case "waiting_input":
|
|
408
|
-
case "running": {
|
|
409
|
-
note = {
|
|
410
|
-
index,
|
|
411
|
-
type: "status",
|
|
412
|
-
disposition: "dropped",
|
|
413
|
-
detail: `Dropped — redundant with turn_* events (status=${statusContent})`,
|
|
414
|
-
};
|
|
415
|
-
break;
|
|
416
|
-
}
|
|
417
|
-
default: {
|
|
418
|
-
note = {
|
|
419
|
-
index,
|
|
420
|
-
type: "status",
|
|
421
|
-
disposition: "dropped",
|
|
422
|
-
detail: `Dropped — unrecognized status (${statusContent})`,
|
|
423
|
-
};
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
break;
|
|
427
|
-
}
|
|
428
|
-
// ─── System events ─────────────────────────────────────────────
|
|
429
|
-
case "system": {
|
|
430
|
-
const turnId = eventTurnId || context.turnId;
|
|
431
|
-
if (isDiagnosticEvent(event)) {
|
|
432
|
-
note = {
|
|
433
|
-
index,
|
|
434
|
-
type: "system",
|
|
435
|
-
disposition: "carried",
|
|
436
|
-
detail: "Dropped — diagnostic event routes to ahp-otlp telemetry",
|
|
437
|
-
};
|
|
438
|
-
break;
|
|
439
|
-
}
|
|
440
|
-
if (turnId) {
|
|
441
|
-
actions.push({
|
|
442
|
-
type: ActionType.SessionResponsePart,
|
|
443
|
-
turnId,
|
|
444
|
-
part: {
|
|
445
|
-
kind: ResponsePartKind.SystemNotification,
|
|
446
|
-
content: content || "",
|
|
447
|
-
},
|
|
448
|
-
});
|
|
449
|
-
note = {
|
|
450
|
-
index,
|
|
451
|
-
type: "system",
|
|
452
|
-
disposition: "mapped",
|
|
453
|
-
detail: "Mapped to SessionResponsePart(systemNotification)",
|
|
454
|
-
};
|
|
455
|
-
}
|
|
456
|
-
else {
|
|
457
|
-
note = {
|
|
458
|
-
index,
|
|
459
|
-
type: "system",
|
|
460
|
-
disposition: "dropped",
|
|
461
|
-
detail: "No active turn for system event",
|
|
462
|
-
};
|
|
463
|
-
}
|
|
464
|
-
break;
|
|
465
|
-
}
|
|
466
|
-
// ─── Internal control events ───────────────────────────────────
|
|
467
|
-
case "runtime_session_id": {
|
|
468
|
-
if (content) {
|
|
469
|
-
context.metaAccumulator.runtimeSessionId = content;
|
|
470
|
-
note = {
|
|
471
|
-
index,
|
|
472
|
-
type: "runtime_session_id",
|
|
473
|
-
disposition: "carried",
|
|
474
|
-
detail: "Carried as _meta.runtimeSessionId",
|
|
475
|
-
};
|
|
476
|
-
}
|
|
477
|
-
else {
|
|
478
|
-
note = {
|
|
479
|
-
index,
|
|
480
|
-
type: "runtime_session_id",
|
|
481
|
-
disposition: "dropped",
|
|
482
|
-
detail: "No content to carry",
|
|
483
|
-
};
|
|
484
|
-
}
|
|
485
|
-
break;
|
|
486
|
-
}
|
|
487
|
-
// ─── Unknown event types ───────────────────────────────────────
|
|
488
|
-
default: {
|
|
489
|
-
note = {
|
|
490
|
-
index,
|
|
491
|
-
type,
|
|
492
|
-
disposition: "dropped",
|
|
493
|
-
detail: `Unrecognized event type: ${type}`,
|
|
494
|
-
};
|
|
495
|
-
}
|
|
496
|
-
}
|
|
497
|
-
return { actions, note };
|
|
498
|
-
}
|
|
499
|
-
//# sourceMappingURL=ahp-mapper.js.map
|
package/dist/ahp-mapper.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ahp-mapper.js","sourceRoot":"","sources":["../src/ahp-mapper.ts"],"names":[],"mappings":"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"}
|