@agimon-ai/po-log 0.0.0-alpha.86 → 0.0.0-alpha.88
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.
|
@@ -361,6 +361,25 @@ function usageAttributes(message) {
|
|
|
361
361
|
if (typeof cost === "number" && Number.isFinite(cost) && cost >= 0) attributes["gen_ai.usage.cost"] = cost;
|
|
362
362
|
return attributes;
|
|
363
363
|
}
|
|
364
|
+
async function shortHash(value) {
|
|
365
|
+
if (value === void 0) return void 0;
|
|
366
|
+
const bytes = new TextEncoder().encode(typeof value === "string" ? value : JSON.stringify(value));
|
|
367
|
+
const digest = new Uint8Array(await globalThis.crypto.subtle.digest("SHA-256", bytes));
|
|
368
|
+
return Array.from(digest.subarray(0, 6), (byte) => byte.toString(16).padStart(2, "0")).join("");
|
|
369
|
+
}
|
|
370
|
+
/** Cache-identity fingerprints of a Responses payload: which of key, instructions, or tools changed. Never content. */
|
|
371
|
+
async function requestShapeAttributes(payload) {
|
|
372
|
+
const attributes = {
|
|
373
|
+
"pi.request.cache_key_version": await shortHash(payload.prompt_cache_key),
|
|
374
|
+
"pi.request.instructions_version": await shortHash(payload.instructions ?? payload.system),
|
|
375
|
+
"pi.request.tools_version": await shortHash(payload.tools),
|
|
376
|
+
"pi.request.wire_model": typeof payload.model === "string" ? payload.model : void 0,
|
|
377
|
+
"pi.request.input_count": Array.isArray(payload.input) ? payload.input.length : void 0,
|
|
378
|
+
"pi.request.tool_count": Array.isArray(payload.tools) ? payload.tools.length : void 0
|
|
379
|
+
};
|
|
380
|
+
for (const key of Object.keys(attributes)) if (attributes[key] === void 0) delete attributes[key];
|
|
381
|
+
return attributes;
|
|
382
|
+
}
|
|
364
383
|
function createServerTelemetry(options = {}) {
|
|
365
384
|
const workflow = options.workflowContext;
|
|
366
385
|
const workflowAttributes = workflow === void 0 ? {} : {
|
|
@@ -386,7 +405,9 @@ function createServerTelemetry(options = {}) {
|
|
|
386
405
|
const diagnose = () => {
|
|
387
406
|
try {
|
|
388
407
|
options.onDiagnostic?.("Telemetry operation failed");
|
|
389
|
-
} catch {
|
|
408
|
+
} catch (error) {
|
|
409
|
+
console.warn(`po-log telemetry diagnostic failed (${error instanceof Error ? error.name : typeof error})`);
|
|
410
|
+
}
|
|
390
411
|
};
|
|
391
412
|
const enqueue = (operation) => {
|
|
392
413
|
const pending = queue.then(operation);
|
|
@@ -714,6 +735,23 @@ function createServerTelemetry(options = {}) {
|
|
|
714
735
|
});
|
|
715
736
|
};
|
|
716
737
|
}
|
|
738
|
+
hooks.push({
|
|
739
|
+
event: "before_provider_request",
|
|
740
|
+
handle(event, execution) {
|
|
741
|
+
if (!active || !(0, _agimon_ai_po_core_runtimeJson.isRecord)(event.payload)) return;
|
|
742
|
+
const payload = { ...event.payload };
|
|
743
|
+
const model = event.model;
|
|
744
|
+
enqueue(async () => {
|
|
745
|
+
await telemetry?.recordDebug("pi.provider.request", {
|
|
746
|
+
...sessionAttributes(execution),
|
|
747
|
+
"gen_ai.provider.name": model.provider,
|
|
748
|
+
"gen_ai.request.model": model.id,
|
|
749
|
+
...model.api === void 0 ? {} : { "pi.request.api_type": model.api },
|
|
750
|
+
...await requestShapeAttributes(payload)
|
|
751
|
+
});
|
|
752
|
+
}).catch(() => void 0);
|
|
753
|
+
}
|
|
754
|
+
});
|
|
717
755
|
return {
|
|
718
756
|
activities: [activity],
|
|
719
757
|
commands: [command],
|
|
@@ -1207,6 +1245,9 @@ var agent_settled_server_default = (0, _agimon_ai_po_core_extensionFile.defineHo
|
|
|
1207
1245
|
//#region src/extensions/workspaces/sessions/(backend)/hook/agent-start.server.ts
|
|
1208
1246
|
var agent_start_server_default = (0, _agimon_ai_po_core_extensionFile.defineHook)((context) => context.root.hooks[7]);
|
|
1209
1247
|
//#endregion
|
|
1248
|
+
//#region src/extensions/workspaces/sessions/(backend)/hook/before-provider-request.server.ts
|
|
1249
|
+
var before_provider_request_server_default = (0, _agimon_ai_po_core_extensionFile.defineHook)((context) => context.root.hooks[10]);
|
|
1250
|
+
//#endregion
|
|
1210
1251
|
//#region src/extensions/workspaces/sessions/(backend)/hook/model-select.server.ts
|
|
1211
1252
|
var model_select_server_default = (0, _agimon_ai_po_core_extensionFile.defineHook)((context) => context.root.hooks[8]);
|
|
1212
1253
|
//#endregion
|
|
@@ -1495,6 +1536,7 @@ const serverPlugin = (0, _agimon_ai_po_core_serverPlugin.defineServerPlugin)({
|
|
|
1495
1536
|
via({ event: "agent_end" }, at(agent_end_server_default, contextSession)),
|
|
1496
1537
|
via({ event: "agent_settled" }, at(agent_settled_server_default, contextSession)),
|
|
1497
1538
|
via({ event: "agent_start" }, at(agent_start_server_default, contextSession)),
|
|
1539
|
+
via({ event: "before_provider_request" }, at(before_provider_request_server_default, contextSession)),
|
|
1498
1540
|
via({ event: "model_select" }, at(model_select_server_default, contextSession)),
|
|
1499
1541
|
via({ event: "session_shutdown" }, at(session_shutdown_server_default, contextSession)),
|
|
1500
1542
|
via({ event: "session_start" }, at(session_start_server_default, contextSession)),
|