@agimon-ai/doompi-log 0.0.1-alpha.80 → 0.0.1-alpha.81
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/{src/schemas/apiContracts.cjs → apiContracts.cjs} +8 -6
- package/dist/apiContracts.cjs.map +1 -0
- package/dist/{src/schemas/apiContracts.d.mts.map → apiContracts.d.mts.map} +1 -1
- package/dist/{src/schemas/apiContracts.mjs → apiContracts.mjs} +2 -2
- package/dist/apiContracts.mjs.map +1 -0
- package/dist/extensions/pi.cjs +411 -32
- package/dist/extensions/pi.cjs.map +1 -1
- package/dist/extensions/pi.d.mts +2 -3
- package/dist/extensions/pi.d.mts.map +1 -1
- package/dist/extensions/pi.mjs +395 -16
- package/dist/extensions/pi.mjs.map +1 -1
- package/dist/extensions/server.cjs +656 -18
- package/dist/extensions/server.cjs.map +1 -1
- package/dist/extensions/server.d.mts +1 -1
- package/dist/extensions/server.d.mts.map +1 -1
- package/dist/extensions/server.mjs +624 -9
- package/dist/extensions/server.mjs.map +1 -1
- package/dist/extensions/web.mjs +7 -10
- package/dist/extensions/web.mjs.map +1 -1
- package/dist/{src/services/findings/index.cjs → findings-Bo4IHNpr.cjs} +7 -2
- package/dist/findings-Bo4IHNpr.cjs.map +1 -0
- package/dist/{src/services/findings/index.mjs → findings-DAKeRG4O.mjs} +2 -2
- package/dist/findings-DAKeRG4O.mjs.map +1 -0
- package/dist/{src/services/metrics/index.d.cts → index-BTk12VKU.d.mts} +21 -20
- package/dist/index-BTk12VKU.d.mts.map +1 -0
- package/dist/{src/types/piTelemetry.d.mts → index-Bxykybjr.d.mts} +12 -6
- package/dist/index-Bxykybjr.d.mts.map +1 -0
- package/dist/{src/services/findings/index.d.cts → index-CLHBiYfn.d.mts} +6 -5
- package/dist/index-CLHBiYfn.d.mts.map +1 -0
- package/dist/index.cjs +15 -15
- package/dist/index.d.mts +4 -6
- package/dist/index.mjs +4 -4
- package/dist/{src/tui/logMetricsOverlay.cjs → logMetricsOverlay-Bj9L8YLJ.cjs} +170 -7
- package/dist/logMetricsOverlay-Bj9L8YLJ.cjs.map +1 -0
- package/dist/logMetricsOverlay-Cd_D2KeU.d.mts +151 -0
- package/dist/logMetricsOverlay-Cd_D2KeU.d.mts.map +1 -0
- package/dist/{src/tui/logMetricsOverlay.mjs → logMetricsOverlay-osmlxd12.mjs} +162 -4
- package/dist/logMetricsOverlay-osmlxd12.mjs.map +1 -0
- package/dist/{src/tui/logRuntime.mjs → logRuntime-CCVbCzaK.mjs} +7 -8
- package/dist/logRuntime-CCVbCzaK.mjs.map +1 -0
- package/dist/{src/tui/logRuntime.cjs → logRuntime-DcD32EjA.cjs} +27 -19
- package/dist/logRuntime-DcD32EjA.cjs.map +1 -0
- package/dist/{src/services/metrics/index.cjs → metrics-C7vwHHjG.cjs} +61 -11
- package/dist/metrics-C7vwHHjG.cjs.map +1 -0
- package/dist/{src/services/metrics/index.mjs → metrics-DXTxQN4U.mjs} +2 -2
- package/dist/metrics-DXTxQN4U.mjs.map +1 -0
- package/dist/metrics.cjs +13 -13
- package/dist/metrics.d.mts +2 -2
- package/dist/metrics.mjs +2 -2
- package/dist/{metrics-overlay.cjs → metricsOverlay.cjs} +1 -1
- package/dist/metricsOverlay.d.mts +2 -0
- package/dist/metricsOverlay.mjs +2 -0
- package/dist/{src/services/metricsSource/index.mjs → metricsSource-DXZLawQu.mjs} +2 -2
- package/dist/metricsSource-DXZLawQu.mjs.map +1 -0
- package/dist/{src/services/metricsSource/index.cjs → metricsSource-DdwQNzoY.cjs} +7 -2
- package/dist/metricsSource-DdwQNzoY.cjs.map +1 -0
- package/dist/{src/types/metricsSource.d.cts → metricsSource-cZnErdv4.d.mts} +8 -7
- package/dist/metricsSource-cZnErdv4.d.mts.map +1 -0
- package/dist/metricsSource.cjs +3 -0
- package/dist/{src/services/metricsSource/index.d.cts → metricsSource.d.mts} +4 -3
- package/dist/metricsSource.d.mts.map +1 -0
- package/dist/metricsSource.mjs +2 -0
- package/dist/{src/constants/telemetry.cjs → telemetryEnabled-B6g7R7BP.mjs} +7 -9
- package/dist/telemetryEnabled-B6g7R7BP.mjs.map +1 -0
- package/dist/telemetryEnabled-BJ2BKyps.cjs +73 -0
- package/dist/telemetryEnabled-BJ2BKyps.cjs.map +1 -0
- package/package.json +25 -25
- package/dist/_virtual/_rolldown/runtime.cjs +0 -23
- package/dist/api-contracts.cjs +0 -7
- package/dist/api-contracts.d.cts +0 -2
- package/dist/api-contracts.d.mts +0 -2
- package/dist/api-contracts.mjs +0 -2
- package/dist/extensions/pi.d.cts +0 -7
- package/dist/extensions/pi.d.cts.map +0 -1
- package/dist/extensions/server.d.cts +0 -5
- package/dist/extensions/server.d.cts.map +0 -1
- package/dist/index.d.cts +0 -7
- package/dist/metrics-overlay.d.cts +0 -3
- package/dist/metrics-overlay.d.mts +0 -3
- package/dist/metrics-overlay.mjs +0 -2
- package/dist/metrics-source.cjs +0 -3
- package/dist/metrics-source.d.cts +0 -3
- package/dist/metrics-source.d.mts +0 -3
- package/dist/metrics-source.mjs +0 -2
- package/dist/metrics.d.cts +0 -3
- package/dist/src/constants/telemetry.cjs.map +0 -1
- package/dist/src/constants/telemetry.mjs +0 -15
- package/dist/src/constants/telemetry.mjs.map +0 -1
- package/dist/src/extensions/(backend)/api/log/route.server.cjs +0 -7
- package/dist/src/extensions/(backend)/api/log/route.server.cjs.map +0 -1
- package/dist/src/extensions/(backend)/api/log/route.server.mjs +0 -8
- package/dist/src/extensions/(backend)/api/log/route.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/piRoot.cjs +0 -25
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/piRoot.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/piRoot.mjs +0 -25
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/piRoot.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.cjs +0 -13
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.mjs +0 -13
- package/dist/src/extensions/workspaces/sessions/(backend)/_lib/serverRoot.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/command/log-metrics.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/command/log-metrics.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/command/log-metrics.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/command/log-metrics.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/command/log-metrics.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/command/log-metrics.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/command/log-metrics.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/command/log-metrics.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/after-provider-response.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/after-provider-response.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/after-provider-response.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/after-provider-response.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-end.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-end.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-end.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-end.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-settled.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-settled.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-settled.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-settled.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-settled.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-settled.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-settled.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-settled.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-start.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-start.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-start.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/agent-start.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/model-select.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/model-select.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/model-select.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/model-select.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.server.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.server.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/session-start.server.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-start.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-start.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-start.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/tool-execution-start.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/turn-end.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/turn-end.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/turn-end.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/turn-end.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/turn-start.cli.cjs +0 -6
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/turn-start.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/turn-start.cli.mjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/hook/turn-start.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs +0 -8
- package/dist/src/extensions/workspaces/sessions/(backend)/root.cli.mjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs +0 -7
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.cjs.map +0 -1
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs +0 -8
- package/dist/src/extensions/workspaces/sessions/(backend)/root.server.mjs.map +0 -1
- package/dist/src/schemas/apiContracts.cjs.map +0 -1
- package/dist/src/schemas/apiContracts.d.cts +0 -53
- package/dist/src/schemas/apiContracts.d.cts.map +0 -1
- package/dist/src/schemas/apiContracts.mjs.map +0 -1
- package/dist/src/services/findings/index.cjs.map +0 -1
- package/dist/src/services/findings/index.d.cts.map +0 -1
- package/dist/src/services/findings/index.d.mts +0 -22
- package/dist/src/services/findings/index.d.mts.map +0 -1
- package/dist/src/services/findings/index.mjs.map +0 -1
- package/dist/src/services/hubApi/index.cjs +0 -203
- package/dist/src/services/hubApi/index.cjs.map +0 -1
- package/dist/src/services/hubApi/index.mjs +0 -202
- package/dist/src/services/hubApi/index.mjs.map +0 -1
- package/dist/src/services/issuesSource/index.cjs +0 -113
- package/dist/src/services/issuesSource/index.cjs.map +0 -1
- package/dist/src/services/issuesSource/index.mjs +0 -111
- package/dist/src/services/issuesSource/index.mjs.map +0 -1
- package/dist/src/services/metrics/index.cjs.map +0 -1
- package/dist/src/services/metrics/index.d.cts.map +0 -1
- package/dist/src/services/metrics/index.d.mts +0 -164
- package/dist/src/services/metrics/index.d.mts.map +0 -1
- package/dist/src/services/metrics/index.mjs.map +0 -1
- package/dist/src/services/metricsSource/index.cjs.map +0 -1
- package/dist/src/services/metricsSource/index.d.cts.map +0 -1
- package/dist/src/services/metricsSource/index.d.mts +0 -17
- package/dist/src/services/metricsSource/index.d.mts.map +0 -1
- package/dist/src/services/metricsSource/index.mjs.map +0 -1
- package/dist/src/services/piTelemetry/index.cjs +0 -334
- package/dist/src/services/piTelemetry/index.cjs.map +0 -1
- package/dist/src/services/piTelemetry/index.mjs +0 -334
- package/dist/src/services/piTelemetry/index.mjs.map +0 -1
- package/dist/src/services/serverTelemetry/index.cjs +0 -65
- package/dist/src/services/serverTelemetry/index.cjs.map +0 -1
- package/dist/src/services/serverTelemetry/index.mjs +0 -65
- package/dist/src/services/serverTelemetry/index.mjs.map +0 -1
- package/dist/src/services/telemetryEnabled/index.cjs +0 -8
- package/dist/src/services/telemetryEnabled/index.cjs.map +0 -1
- package/dist/src/services/telemetryEnabled/index.mjs +0 -8
- package/dist/src/services/telemetryEnabled/index.mjs.map +0 -1
- package/dist/src/tui/doomOverlay.cjs +0 -149
- package/dist/src/tui/doomOverlay.cjs.map +0 -1
- package/dist/src/tui/doomOverlay.d.cts +0 -62
- package/dist/src/tui/doomOverlay.d.cts.map +0 -1
- package/dist/src/tui/doomOverlay.d.mts +0 -62
- package/dist/src/tui/doomOverlay.d.mts.map +0 -1
- package/dist/src/tui/doomOverlay.mjs +0 -148
- package/dist/src/tui/doomOverlay.mjs.map +0 -1
- package/dist/src/tui/logMetricsOverlay.cjs.map +0 -1
- package/dist/src/tui/logMetricsOverlay.d.cts +0 -82
- package/dist/src/tui/logMetricsOverlay.d.cts.map +0 -1
- package/dist/src/tui/logMetricsOverlay.d.mts +0 -82
- package/dist/src/tui/logMetricsOverlay.d.mts.map +0 -1
- package/dist/src/tui/logMetricsOverlay.mjs.map +0 -1
- package/dist/src/tui/logRuntime.cjs.map +0 -1
- package/dist/src/tui/logRuntime.d.cts +0 -10
- package/dist/src/tui/logRuntime.d.cts.map +0 -1
- package/dist/src/tui/logRuntime.d.mts +0 -10
- package/dist/src/tui/logRuntime.d.mts.map +0 -1
- package/dist/src/tui/logRuntime.mjs.map +0 -1
- package/dist/src/tui/rendering.cjs +0 -22
- package/dist/src/tui/rendering.cjs.map +0 -1
- package/dist/src/tui/rendering.mjs +0 -20
- package/dist/src/tui/rendering.mjs.map +0 -1
- package/dist/src/types/apiRoutes.cjs +0 -41
- package/dist/src/types/apiRoutes.cjs.map +0 -1
- package/dist/src/types/apiRoutes.mjs +0 -41
- package/dist/src/types/apiRoutes.mjs.map +0 -1
- package/dist/src/types/metricsSource.d.cts.map +0 -1
- package/dist/src/types/metricsSource.d.mts +0 -50
- package/dist/src/types/metricsSource.d.mts.map +0 -1
- package/dist/src/types/piTelemetry.d.cts +0 -26
- package/dist/src/types/piTelemetry.d.cts.map +0 -1
- package/dist/src/types/piTelemetry.d.mts.map +0 -1
- package/dist/src/types/sinkStatus.d.cts +0 -12
- package/dist/src/types/sinkStatus.d.cts.map +0 -1
- package/dist/src/types/sinkStatus.d.mts +0 -12
- package/dist/src/types/sinkStatus.d.mts.map +0 -1
- package/dist/src/types/webMetrics.cjs +0 -41
- package/dist/src/types/webMetrics.cjs.map +0 -1
- package/dist/src/types/webMetrics.mjs +0 -37
- package/dist/src/types/webMetrics.mjs.map +0 -1
- /package/dist/{src/schemas/apiContracts.d.mts → apiContracts.d.mts} +0 -0
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
Object.defineProperties(exports, {
|
|
2
|
+
__esModule: { value: true },
|
|
3
|
+
[Symbol.toStringTag]: { value: "Module" }
|
|
4
|
+
});
|
|
5
|
+
let _agimon_ai_doompi_core_apiContracts = require("@agimon-ai/doompi-core/apiContracts");
|
|
2
6
|
let typebox = require("typebox");
|
|
3
7
|
//#region src/schemas/apiContracts.ts
|
|
4
8
|
const S = typebox.Type.String();
|
|
@@ -84,7 +88,7 @@ const IssuesResponseSchema = typebox.Type.Union([Unavailable, typebox.Type.Objec
|
|
|
84
88
|
statusCode: Nullable
|
|
85
89
|
}))
|
|
86
90
|
})]);
|
|
87
|
-
const apiContracts = (0,
|
|
91
|
+
const apiContracts = (0, _agimon_ai_doompi_core_apiContracts.defineApiContract)({
|
|
88
92
|
version: 1,
|
|
89
93
|
sockets: [],
|
|
90
94
|
dynamic: [],
|
|
@@ -116,7 +120,7 @@ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)
|
|
|
116
120
|
schema: S
|
|
117
121
|
}
|
|
118
122
|
],
|
|
119
|
-
responses: (0,
|
|
123
|
+
responses: (0, _agimon_ai_doompi_core_apiContracts.jsonApiResponses)(MetricsResponseSchema)
|
|
120
124
|
}, {
|
|
121
125
|
id: "log.issues",
|
|
122
126
|
scope,
|
|
@@ -131,12 +135,10 @@ const apiContracts = (0, _agimon_ai_doompi_core_api_contracts.defineApiContract)
|
|
|
131
135
|
required: false,
|
|
132
136
|
schema: S
|
|
133
137
|
}],
|
|
134
|
-
responses: (0,
|
|
138
|
+
responses: (0, _agimon_ai_doompi_core_apiContracts.jsonApiResponses)(IssuesResponseSchema)
|
|
135
139
|
}])
|
|
136
140
|
});
|
|
137
141
|
//#endregion
|
|
138
|
-
exports.IssuesResponseSchema = IssuesResponseSchema;
|
|
139
|
-
exports.MetricsResponseSchema = MetricsResponseSchema;
|
|
140
142
|
exports.apiContracts = apiContracts;
|
|
141
143
|
exports.default = apiContracts;
|
|
142
144
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiContracts.cjs","names":["Type","defineApiContract","jsonApiResponses"],"sources":["../src/schemas/apiContracts.ts"],"sourcesContent":["import { defineApiContract, jsonApiResponses } from '@agimon-ai/doompi-core/apiContracts';\nimport { Type } from 'typebox';\n\nconst S = Type.String();\nconst N = Type.Number();\nconst B = Type.Boolean();\nconst O = Type.Optional;\nconst literals = <T extends string>(values: T[]) => Type.Union(values.map((value) => Type.Literal(value)));\nconst Dimension = literals(['session', 'agent', 'model', 'provider']);\nconst Period = literals(['day', 'week', 'month', 'all']);\nconst Unavailable = Type.Object({ unavailable: literals(['no-sink', 'no-data', 'no-api']), detail: S });\nconst Tokens = { totalTokens: N, inputTokens: N, outputTokens: N };\nexport const MetricsResponseSchema = Type.Union([\n Unavailable,\n Type.Object({\n generatedAt: S,\n dimension: Dimension,\n period: Period,\n bucketUnit: S,\n focus: O(S),\n transport: O(literals(['http', 'cli'])),\n totals: Type.Object({\n ...Tokens,\n cachedTokens: N,\n reasoningTokens: N,\n groupCount: N,\n failedGroups: N,\n issueCount: N,\n }),\n timeline: Type.Array(Type.Object({ label: S, ...Tokens })),\n groups: Type.Array(Type.Object({ key: S, ...Tokens, issueCount: N, failed: B })),\n tools: Type.Array(Type.Object({ name: S, calls: N, p90TotalTokens: N })),\n }),\n]);\nconst Nullable = Type.Union([S, Type.Null()]);\nexport const IssuesResponseSchema = Type.Union([\n Unavailable,\n Type.Object({\n totalIssues: N,\n uniqueIncidents: N,\n byCategory: Type.Record(S, N),\n byTool: Type.Record(S, N),\n byErrorType: Type.Record(S, N),\n samples: Type.Array(\n Type.Object({\n fingerprint: S,\n occurrenceCount: N,\n category: S,\n timestamp: S,\n level: S,\n message: S,\n detail: S,\n tool: Nullable,\n errorType: Nullable,\n agentName: Nullable,\n model: Nullable,\n statusCode: Nullable,\n }),\n ),\n }),\n]);\nexport const apiContracts = defineApiContract({\n version: 1,\n sockets: [],\n dynamic: [],\n http: (['global', 'workspace'] as const).flatMap((scope) => [\n {\n id: 'log.metrics',\n scope,\n basePath: 'log',\n path: '/metrics',\n method: 'GET',\n authentication: 'owner',\n description: 'Read usage metrics from the configured log sink.',\n parameters: [\n { name: 'dimension', in: 'query', required: false, schema: Dimension },\n { name: 'period', in: 'query', required: false, schema: Period },\n { name: 'focus', in: 'query', required: false, schema: S },\n ],\n responses: jsonApiResponses(MetricsResponseSchema),\n },\n {\n id: 'log.issues',\n scope,\n basePath: 'log',\n path: '/issues',\n method: 'GET',\n authentication: 'owner',\n description: 'Read log issue details.',\n parameters: [{ name: 'focus', in: 'query', required: false, schema: S }],\n responses: jsonApiResponses(IssuesResponseSchema),\n },\n ]),\n});\nexport default apiContracts;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiContracts.d.mts","names":[],"sources":["
|
|
1
|
+
{"version":3,"file":"apiContracts.d.mts","names":[],"sources":["../src/schemas/apiContracts.ts"],"mappings":";;qBA6Da"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineApiContract, jsonApiResponses } from "@agimon-ai/doompi-core/
|
|
1
|
+
import { defineApiContract, jsonApiResponses } from "@agimon-ai/doompi-core/apiContracts";
|
|
2
2
|
import { Type } from "typebox";
|
|
3
3
|
//#region src/schemas/apiContracts.ts
|
|
4
4
|
const S = Type.String();
|
|
@@ -135,6 +135,6 @@ const apiContracts = defineApiContract({
|
|
|
135
135
|
}])
|
|
136
136
|
});
|
|
137
137
|
//#endregion
|
|
138
|
-
export {
|
|
138
|
+
export { apiContracts, apiContracts as default };
|
|
139
139
|
|
|
140
140
|
//# sourceMappingURL=apiContracts.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apiContracts.mjs","names":[],"sources":["../src/schemas/apiContracts.ts"],"sourcesContent":["import { defineApiContract, jsonApiResponses } from '@agimon-ai/doompi-core/apiContracts';\nimport { Type } from 'typebox';\n\nconst S = Type.String();\nconst N = Type.Number();\nconst B = Type.Boolean();\nconst O = Type.Optional;\nconst literals = <T extends string>(values: T[]) => Type.Union(values.map((value) => Type.Literal(value)));\nconst Dimension = literals(['session', 'agent', 'model', 'provider']);\nconst Period = literals(['day', 'week', 'month', 'all']);\nconst Unavailable = Type.Object({ unavailable: literals(['no-sink', 'no-data', 'no-api']), detail: S });\nconst Tokens = { totalTokens: N, inputTokens: N, outputTokens: N };\nexport const MetricsResponseSchema = Type.Union([\n Unavailable,\n Type.Object({\n generatedAt: S,\n dimension: Dimension,\n period: Period,\n bucketUnit: S,\n focus: O(S),\n transport: O(literals(['http', 'cli'])),\n totals: Type.Object({\n ...Tokens,\n cachedTokens: N,\n reasoningTokens: N,\n groupCount: N,\n failedGroups: N,\n issueCount: N,\n }),\n timeline: Type.Array(Type.Object({ label: S, ...Tokens })),\n groups: Type.Array(Type.Object({ key: S, ...Tokens, issueCount: N, failed: B })),\n tools: Type.Array(Type.Object({ name: S, calls: N, p90TotalTokens: N })),\n }),\n]);\nconst Nullable = Type.Union([S, Type.Null()]);\nexport const IssuesResponseSchema = Type.Union([\n Unavailable,\n Type.Object({\n totalIssues: N,\n uniqueIncidents: N,\n byCategory: Type.Record(S, N),\n byTool: Type.Record(S, N),\n byErrorType: Type.Record(S, N),\n samples: Type.Array(\n Type.Object({\n fingerprint: S,\n occurrenceCount: N,\n category: S,\n timestamp: S,\n level: S,\n message: S,\n detail: S,\n tool: Nullable,\n errorType: Nullable,\n agentName: Nullable,\n model: Nullable,\n statusCode: Nullable,\n }),\n ),\n }),\n]);\nexport const apiContracts = defineApiContract({\n version: 1,\n sockets: [],\n dynamic: [],\n http: (['global', 'workspace'] as const).flatMap((scope) => [\n {\n id: 'log.metrics',\n scope,\n basePath: 'log',\n path: '/metrics',\n method: 'GET',\n authentication: 'owner',\n description: 'Read usage metrics from the configured log sink.',\n parameters: [\n { name: 'dimension', in: 'query', required: false, schema: Dimension },\n { name: 'period', in: 'query', required: false, schema: Period },\n { name: 'focus', in: 'query', required: false, schema: S },\n ],\n responses: jsonApiResponses(MetricsResponseSchema),\n },\n {\n id: 'log.issues',\n scope,\n basePath: 'log',\n path: '/issues',\n method: 'GET',\n authentication: 'owner',\n description: 'Read log issue details.',\n parameters: [{ name: 'focus', in: 'query', required: false, schema: S }],\n responses: jsonApiResponses(IssuesResponseSchema),\n },\n ]),\n});\nexport default apiContracts;\n"],"mappings":";;;AAGA,MAAM,IAAI,KAAK,OAAO;AACtB,MAAM,IAAI,KAAK,OAAO;AACtB,MAAM,IAAI,KAAK,QAAQ;AACvB,MAAM,IAAI,KAAK;AACf,MAAM,YAA8B,WAAgB,KAAK,MAAM,OAAO,KAAK,UAAU,KAAK,QAAQ,KAAK,CAAC,CAAC;AACzG,MAAM,YAAY,SAAS;CAAC;CAAW;CAAS;CAAS;AAAU,CAAC;AACpE,MAAM,SAAS,SAAS;CAAC;CAAO;CAAQ;CAAS;AAAK,CAAC;AACvD,MAAM,cAAc,KAAK,OAAO;CAAE,aAAa,SAAS;EAAC;EAAW;EAAW;CAAQ,CAAC;CAAG,QAAQ;AAAE,CAAC;AACtG,MAAM,SAAS;CAAE,aAAa;CAAG,aAAa;CAAG,cAAc;AAAE;AACjE,MAAa,wBAAwB,KAAK,MAAM,CAC9C,aACA,KAAK,OAAO;CACV,aAAa;CACb,WAAW;CACX,QAAQ;CACR,YAAY;CACZ,OAAO,EAAE,CAAC;CACV,WAAW,EAAE,SAAS,CAAC,QAAQ,KAAK,CAAC,CAAC;CACtC,QAAQ,KAAK,OAAO;EAClB,GAAG;EACH,cAAc;EACd,iBAAiB;EACjB,YAAY;EACZ,cAAc;EACd,YAAY;CACd,CAAC;CACD,UAAU,KAAK,MAAM,KAAK,OAAO;EAAE,OAAO;EAAG,GAAG;CAAO,CAAC,CAAC;CACzD,QAAQ,KAAK,MAAM,KAAK,OAAO;EAAE,KAAK;EAAG,GAAG;EAAQ,YAAY;EAAG,QAAQ;CAAE,CAAC,CAAC;CAC/E,OAAO,KAAK,MAAM,KAAK,OAAO;EAAE,MAAM;EAAG,OAAO;EAAG,gBAAgB;CAAE,CAAC,CAAC;AACzE,CAAC,CACH,CAAC;AACD,MAAM,WAAW,KAAK,MAAM,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC;AAC5C,MAAa,uBAAuB,KAAK,MAAM,CAC7C,aACA,KAAK,OAAO;CACV,aAAa;CACb,iBAAiB;CACjB,YAAY,KAAK,OAAO,GAAG,CAAC;CAC5B,QAAQ,KAAK,OAAO,GAAG,CAAC;CACxB,aAAa,KAAK,OAAO,GAAG,CAAC;CAC7B,SAAS,KAAK,MACZ,KAAK,OAAO;EACV,aAAa;EACb,iBAAiB;EACjB,UAAU;EACV,WAAW;EACX,OAAO;EACP,SAAS;EACT,QAAQ;EACR,MAAM;EACN,WAAW;EACX,WAAW;EACX,OAAO;EACP,YAAY;CACd,CAAC,CACH;AACF,CAAC,CACH,CAAC;AACD,MAAa,eAAe,kBAAkB;CAC5C,SAAS;CACT,SAAS,CAAC;CACV,SAAS,CAAC;CACV,MAAO,CAAC,UAAU,WAAW,CAAC,CAAW,SAAS,UAAU,CAC1D;EACE,IAAI;EACJ;EACA,UAAU;EACV,MAAM;EACN,QAAQ;EACR,gBAAgB;EAChB,aAAa;EACb,YAAY;GACV;IAAE,MAAM;IAAa,IAAI;IAAS,UAAU;IAAO,QAAQ;GAAU;GACrE;IAAE,MAAM;IAAU,IAAI;IAAS,UAAU;IAAO,QAAQ;GAAO;GAC/D;IAAE,MAAM;IAAS,IAAI;IAAS,UAAU;IAAO,QAAQ;GAAE;EAC3D;EACA,WAAW,iBAAiB,qBAAqB;CACnD,GACA;EACE,IAAI;EACJ;EACA,UAAU;EACV,MAAM;EACN,QAAQ;EACR,gBAAgB;EAChB,aAAa;EACb,YAAY,CAAC;GAAE,MAAM;GAAS,IAAI;GAAS,UAAU;GAAO,QAAQ;EAAE,CAAC;EACvE,WAAW,iBAAiB,oBAAoB;CAClD,CACF,CAAC;AACH,CAAC"}
|
package/dist/extensions/pi.cjs
CHANGED
|
@@ -2,52 +2,431 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
5
|
+
const require_telemetryEnabled = require("../telemetryEnabled-BJ2BKyps.cjs");
|
|
6
|
+
const require_logRuntime = require("../logRuntime-DcD32EjA.cjs");
|
|
7
|
+
let _agimon_ai_doompi_core_piExtension = require("@agimon-ai/doompi-core/piExtension");
|
|
8
|
+
let _agimon_ai_doompi_core_extensionFile = require("@agimon-ai/doompi-core/extensionFile");
|
|
9
|
+
let _agimon_ai_doompi_core_readiness = require("@agimon-ai/doompi-core/readiness");
|
|
10
|
+
let _agimon_ai_doompi_telemetry = require("@agimon-ai/doompi-telemetry");
|
|
11
|
+
//#region src/services/piTelemetry/index.ts
|
|
12
|
+
function contextAttributes(ctx) {
|
|
13
|
+
const attributes = {
|
|
14
|
+
"pi.mode": ctx.mode,
|
|
15
|
+
"pi.session.id": ctx.sessionManager.getSessionId()
|
|
16
|
+
};
|
|
17
|
+
if (ctx.thinkingLevel) attributes["pi.thinking_level"] = ctx.thinkingLevel;
|
|
18
|
+
if (ctx.model) {
|
|
19
|
+
attributes["gen_ai.provider.name"] = ctx.model.provider;
|
|
20
|
+
attributes["gen_ai.request.model"] = ctx.model.id;
|
|
21
|
+
}
|
|
22
|
+
return attributes;
|
|
23
|
+
}
|
|
24
|
+
function usageAttributes(message) {
|
|
25
|
+
if (message.role !== "assistant") return void 0;
|
|
26
|
+
const attributes = {
|
|
27
|
+
"gen_ai.response.model": message.responseModel ?? message.model,
|
|
28
|
+
"gen_ai.response.finish_reasons": message.stopReason,
|
|
29
|
+
"gen_ai.usage.input_tokens": message.usage.input,
|
|
30
|
+
"gen_ai.usage.output_tokens": message.usage.output,
|
|
31
|
+
"gen_ai.usage.cache_read_tokens": message.usage.cacheRead,
|
|
32
|
+
"gen_ai.usage.cache_write_tokens": message.usage.cacheWrite,
|
|
33
|
+
"gen_ai.usage.total_tokens": message.usage.totalTokens,
|
|
34
|
+
"gen_ai.usage.cost": message.usage.cost.total
|
|
35
|
+
};
|
|
36
|
+
if (message.usage.reasoning !== void 0) attributes["gen_ai.usage.reasoning_tokens"] = message.usage.reasoning;
|
|
37
|
+
return attributes;
|
|
38
|
+
}
|
|
39
|
+
function failureAttributes(message) {
|
|
40
|
+
if (message.role !== "assistant") return {
|
|
41
|
+
"error.type": "AgentError",
|
|
42
|
+
outcome: "error"
|
|
43
|
+
};
|
|
44
|
+
const aborted = message.stopReason === "aborted";
|
|
45
|
+
return {
|
|
46
|
+
"error.type": "ProviderError",
|
|
47
|
+
"error.code": message.stopReason,
|
|
48
|
+
outcome: aborted ? "aborted" : "error"
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
function statusFromTelemetry(status) {
|
|
52
|
+
return {
|
|
53
|
+
service: status.serviceName,
|
|
54
|
+
backend: status.backend,
|
|
55
|
+
endpoint: status.endpoint ?? "none",
|
|
56
|
+
endpointSource: status.endpointSource,
|
|
57
|
+
traces: status.traces,
|
|
58
|
+
redaction: true,
|
|
59
|
+
fileFallback: status.fileFallback
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function createPiTelemetryRuntime(cordis, options = {}, splitReadiness = false) {
|
|
63
|
+
const env = options.env ?? process.env;
|
|
64
|
+
const metrics = options.metrics;
|
|
65
|
+
const toolStartedAt = /* @__PURE__ */ new Map();
|
|
66
|
+
const turnStartedAt = /* @__PURE__ */ new Map();
|
|
67
|
+
let active = true;
|
|
68
|
+
let sessionGeneration = 0;
|
|
69
|
+
let agentStartedAt;
|
|
70
|
+
let telemetry;
|
|
71
|
+
let telemetrySessionId;
|
|
72
|
+
let sessionReadiness;
|
|
73
|
+
let backgroundQueue = Promise.resolve();
|
|
74
|
+
const enqueue = (operation) => {
|
|
75
|
+
backgroundQueue = backgroundQueue.then(operation).catch(() => void 0);
|
|
76
|
+
};
|
|
77
|
+
const emit = async (level, name, attributes) => {
|
|
78
|
+
if (!active || !telemetry) return;
|
|
79
|
+
if (level === "debug") await telemetry.recordDebug(name, attributes);
|
|
80
|
+
else if (level === "warn") await telemetry.recordWarning(name, void 0, attributes);
|
|
81
|
+
else if (level === "error") await telemetry.recordError(name, void 0, attributes);
|
|
82
|
+
else await telemetry.recordEvent(name, attributes);
|
|
83
|
+
};
|
|
84
|
+
const getTelemetry = (ctx) => {
|
|
85
|
+
if (!active) throw new Error("Log telemetry runtime is disposed.");
|
|
86
|
+
const sessionId = ctx.sessionManager.getSessionId();
|
|
87
|
+
if (telemetry && telemetrySessionId !== sessionId) {
|
|
88
|
+
const staleTelemetry = telemetry;
|
|
89
|
+
telemetry = void 0;
|
|
90
|
+
telemetrySessionId = void 0;
|
|
91
|
+
enqueue(() => staleTelemetry.shutdown());
|
|
92
|
+
}
|
|
93
|
+
if (!telemetry) {
|
|
94
|
+
telemetrySessionId = sessionId;
|
|
95
|
+
telemetry = (0, _agimon_ai_doompi_telemetry.createDoomTelemetry)({
|
|
96
|
+
serviceName: options.serviceName ?? "pi",
|
|
97
|
+
packageName: require_telemetryEnabled.PACKAGE_NAME,
|
|
98
|
+
cwd: ctx.cwd,
|
|
99
|
+
env: {
|
|
100
|
+
...env,
|
|
101
|
+
PI_SESSION_ID: sessionId
|
|
102
|
+
},
|
|
103
|
+
allowFileFallback: options.allowFileFallback,
|
|
104
|
+
telemetryFactory: options.telemetryFactory,
|
|
105
|
+
warn: options.onDiagnostic,
|
|
106
|
+
enableLogs: true,
|
|
107
|
+
enableTraces: env.AGENT_OTEL_TRACES === void 0 || require_telemetryEnabled.isEnabled(env.AGENT_OTEL_TRACES),
|
|
108
|
+
onRecord: (record) => {
|
|
109
|
+
if (active) metrics?.record(record.event, record.attributes);
|
|
110
|
+
},
|
|
111
|
+
onStatus: (status) => {
|
|
112
|
+
if (active) options.onSinkStatus?.(statusFromTelemetry(status));
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
if (active) options.onSinkStatus?.(statusFromTelemetry(telemetry.status()));
|
|
117
|
+
return telemetry;
|
|
118
|
+
};
|
|
119
|
+
const waitForSession = async (ctx) => {
|
|
120
|
+
const current = sessionReadiness;
|
|
121
|
+
if (!current) return;
|
|
122
|
+
if (current.sessionManager !== ctx.sessionManager) throw new Error("Log readiness belongs to a stale Pi session.");
|
|
123
|
+
await current.operation;
|
|
124
|
+
if (!active || current !== sessionReadiness) throw new Error("Log readiness belongs to a stale extension generation.");
|
|
125
|
+
};
|
|
126
|
+
const enqueueForSession = (ctx, operation) => {
|
|
127
|
+
const expected = sessionReadiness;
|
|
128
|
+
const run = async () => {
|
|
129
|
+
if (expected) {
|
|
130
|
+
if (!await expected.operation.then(() => true, () => false) || !active || expected !== sessionReadiness || expected.sessionManager !== ctx.sessionManager) return;
|
|
131
|
+
} else if (!active) return;
|
|
132
|
+
await operation();
|
|
133
|
+
};
|
|
134
|
+
if (!splitReadiness) return run();
|
|
135
|
+
enqueue(run);
|
|
136
|
+
};
|
|
137
|
+
return {
|
|
138
|
+
events: {
|
|
139
|
+
session_start: (event, ctx) => {
|
|
140
|
+
if (!active) return void 0;
|
|
141
|
+
const ownGeneration = ++sessionGeneration;
|
|
142
|
+
toolStartedAt.clear();
|
|
143
|
+
turnStartedAt.clear();
|
|
144
|
+
agentStartedAt = void 0;
|
|
145
|
+
const initialize = async (signal) => {
|
|
146
|
+
signal?.throwIfAborted();
|
|
147
|
+
getTelemetry(ctx);
|
|
148
|
+
await emit("info", "pi.session.started", {
|
|
149
|
+
...contextAttributes(ctx),
|
|
150
|
+
"pi.session.reason": event.reason,
|
|
151
|
+
"pi.session.previous": event.previousSessionFile !== void 0
|
|
152
|
+
});
|
|
153
|
+
signal?.throwIfAborted();
|
|
154
|
+
};
|
|
155
|
+
const coordinator = splitReadiness ? (0, _agimon_ai_doompi_core_readiness.readDoomReadinessCoordinator)(cordis) : void 0;
|
|
156
|
+
if (!coordinator) return initialize();
|
|
157
|
+
const previous = sessionReadiness;
|
|
158
|
+
const operation = (async () => {
|
|
159
|
+
if (previous?.coordinator === coordinator) await previous.operation.catch(() => void 0);
|
|
160
|
+
if (!active || ownGeneration !== sessionGeneration) return;
|
|
161
|
+
await coordinator.start(require_telemetryEnabled.PACKAGE_NAME, `${ctx.sessionManager.getSessionId()}:${ownGeneration}`, async (signal) => {
|
|
162
|
+
await initialize(signal);
|
|
163
|
+
return { value: void 0 };
|
|
164
|
+
}).wait();
|
|
165
|
+
})();
|
|
166
|
+
operation.catch(() => void 0);
|
|
167
|
+
sessionReadiness = {
|
|
168
|
+
sessionManager: ctx.sessionManager,
|
|
169
|
+
coordinator,
|
|
170
|
+
operation
|
|
171
|
+
};
|
|
172
|
+
},
|
|
173
|
+
before_agent_start: (event, ctx) => {
|
|
174
|
+
if (!active) return;
|
|
175
|
+
return enqueueForSession(ctx, async () => {
|
|
176
|
+
getTelemetry(ctx);
|
|
177
|
+
await emit("info", "pi.user_prompt", {
|
|
178
|
+
...contextAttributes(ctx),
|
|
179
|
+
"pi.user_message.length": event.prompt.length,
|
|
180
|
+
"pi.user_message.image_count": event.images?.length ?? 0
|
|
181
|
+
});
|
|
182
|
+
});
|
|
183
|
+
},
|
|
184
|
+
agent_start: (_event, ctx) => {
|
|
185
|
+
if (!active) return;
|
|
186
|
+
return enqueueForSession(ctx, async () => {
|
|
187
|
+
agentStartedAt = Date.now();
|
|
188
|
+
getTelemetry(ctx);
|
|
189
|
+
await emit("info", "pi.agent.started", contextAttributes(ctx));
|
|
190
|
+
});
|
|
191
|
+
},
|
|
192
|
+
turn_start: (event, ctx) => {
|
|
193
|
+
if (!active) return;
|
|
194
|
+
turnStartedAt.set(event.turnIndex, Date.now());
|
|
195
|
+
return enqueueForSession(ctx, async () => {
|
|
196
|
+
getTelemetry(ctx);
|
|
197
|
+
await emit("debug", "pi.turn.started", {
|
|
198
|
+
...contextAttributes(ctx),
|
|
199
|
+
"pi.turn.index": event.turnIndex
|
|
200
|
+
});
|
|
201
|
+
});
|
|
202
|
+
},
|
|
203
|
+
turn_end: (event, ctx) => {
|
|
204
|
+
if (!active) return;
|
|
205
|
+
const turnStart = turnStartedAt.get(event.turnIndex);
|
|
206
|
+
turnStartedAt.delete(event.turnIndex);
|
|
207
|
+
const turnDurationMs = turnStart === void 0 ? void 0 : Date.now() - turnStart;
|
|
208
|
+
return enqueueForSession(ctx, async () => {
|
|
209
|
+
getTelemetry(ctx);
|
|
210
|
+
const usage = usageAttributes(event.message);
|
|
211
|
+
await emit("info", "pi.turn.finished", {
|
|
212
|
+
...contextAttributes(ctx),
|
|
213
|
+
"pi.turn.index": event.turnIndex,
|
|
214
|
+
"pi.tool_result.count": event.toolResults.length,
|
|
215
|
+
...turnDurationMs === void 0 ? {} : { "pi.turn.duration_ms": turnDurationMs },
|
|
216
|
+
...usage
|
|
217
|
+
});
|
|
218
|
+
if (event.message.role === "assistant" && require_telemetryEnabled.FAILURE_STOP_REASONS.includes(event.message.stopReason)) await emit(event.message.stopReason === "aborted" ? "warn" : "error", "pi.turn.failed", {
|
|
219
|
+
...contextAttributes(ctx),
|
|
220
|
+
"pi.turn.index": event.turnIndex,
|
|
221
|
+
...failureAttributes(event.message),
|
|
222
|
+
...usage
|
|
223
|
+
});
|
|
224
|
+
if (!usage) return;
|
|
225
|
+
for (const result of event.toolResults) await emit("debug", "pi.tool_token_sample", {
|
|
226
|
+
...contextAttributes(ctx),
|
|
227
|
+
...usage,
|
|
228
|
+
"tool.name": result.toolName,
|
|
229
|
+
token_attribution: "toolCallTurn"
|
|
230
|
+
});
|
|
231
|
+
});
|
|
232
|
+
},
|
|
233
|
+
tool_execution_start: (event, ctx) => {
|
|
234
|
+
if (!active) return;
|
|
235
|
+
return enqueueForSession(ctx, async () => {
|
|
236
|
+
toolStartedAt.set(event.toolCallId, Date.now());
|
|
237
|
+
getTelemetry(ctx);
|
|
238
|
+
await emit("debug", "pi.tool_call", {
|
|
239
|
+
...contextAttributes(ctx),
|
|
240
|
+
"tool.name": event.toolName,
|
|
241
|
+
"tool.call.id": event.toolCallId
|
|
242
|
+
});
|
|
243
|
+
});
|
|
244
|
+
},
|
|
245
|
+
tool_execution_end: (event, ctx) => {
|
|
246
|
+
if (!active) return;
|
|
247
|
+
return enqueueForSession(ctx, async () => {
|
|
248
|
+
const startedAt = toolStartedAt.get(event.toolCallId);
|
|
249
|
+
toolStartedAt.delete(event.toolCallId);
|
|
250
|
+
getTelemetry(ctx);
|
|
251
|
+
await emit("info", "pi.tool_result", {
|
|
252
|
+
...contextAttributes(ctx),
|
|
253
|
+
success: !event.isError,
|
|
254
|
+
"tool.name": event.toolName,
|
|
255
|
+
"tool.call.id": event.toolCallId,
|
|
256
|
+
"tool.result.error": event.isError,
|
|
257
|
+
...startedAt === void 0 ? {} : { "tool.duration_ms": Date.now() - startedAt }
|
|
258
|
+
});
|
|
259
|
+
});
|
|
260
|
+
},
|
|
261
|
+
after_provider_response: (event, ctx) => {
|
|
262
|
+
if (!active) return;
|
|
263
|
+
return enqueueForSession(ctx, async () => {
|
|
264
|
+
getTelemetry(ctx);
|
|
265
|
+
const attributes = {
|
|
266
|
+
...contextAttributes(ctx),
|
|
267
|
+
"http.response.status_code": event.status
|
|
268
|
+
};
|
|
269
|
+
if (event.status >= 400) await emit("error", "pi.api_error", attributes);
|
|
270
|
+
else await emit("debug", "pi.api_response", attributes);
|
|
271
|
+
});
|
|
272
|
+
},
|
|
273
|
+
model_select: (event, ctx) => {
|
|
274
|
+
if (!active) return;
|
|
275
|
+
return enqueueForSession(ctx, async () => {
|
|
276
|
+
getTelemetry(ctx);
|
|
277
|
+
await emit("info", "pi.model.selected", {
|
|
278
|
+
...contextAttributes(ctx),
|
|
279
|
+
"pi.model.source": event.source,
|
|
280
|
+
"gen_ai.provider.name": event.model.provider,
|
|
281
|
+
"gen_ai.request.model": event.model.id
|
|
282
|
+
});
|
|
283
|
+
});
|
|
284
|
+
},
|
|
285
|
+
agent_end: (event, ctx) => {
|
|
286
|
+
if (!active) return;
|
|
287
|
+
const generation = sessionGeneration;
|
|
288
|
+
return enqueueForSession(ctx, async () => {
|
|
289
|
+
getTelemetry(ctx);
|
|
290
|
+
await emit("info", "pi.agent.finished", {
|
|
291
|
+
...contextAttributes(ctx),
|
|
292
|
+
"pi.message.count": event.messages.length,
|
|
293
|
+
...agentStartedAt === void 0 ? {} : { "pi.agent.duration_ms": Date.now() - agentStartedAt }
|
|
294
|
+
});
|
|
295
|
+
if (!active || generation !== sessionGeneration) return;
|
|
296
|
+
agentStartedAt = void 0;
|
|
297
|
+
await telemetry?.flush();
|
|
298
|
+
});
|
|
299
|
+
},
|
|
300
|
+
agent_settled: (_event, ctx) => {
|
|
301
|
+
if (!active) return;
|
|
302
|
+
return enqueueForSession(ctx, async () => {
|
|
303
|
+
getTelemetry(ctx);
|
|
304
|
+
await emit("debug", "pi.agent.settled", contextAttributes(ctx));
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
},
|
|
308
|
+
onDispose: async () => {
|
|
309
|
+
active = false;
|
|
310
|
+
sessionGeneration += 1;
|
|
311
|
+
sessionReadiness = void 0;
|
|
312
|
+
toolStartedAt.clear();
|
|
313
|
+
turnStartedAt.clear();
|
|
314
|
+
agentStartedAt = void 0;
|
|
315
|
+
const ownedTelemetry = telemetry;
|
|
316
|
+
telemetry = void 0;
|
|
317
|
+
telemetrySessionId = void 0;
|
|
318
|
+
await ownedTelemetry?.shutdown();
|
|
319
|
+
},
|
|
320
|
+
waitForSession,
|
|
321
|
+
async finishSession(reason, ctx) {
|
|
322
|
+
if (!active) return;
|
|
323
|
+
await backgroundQueue;
|
|
324
|
+
const current = sessionReadiness;
|
|
325
|
+
if (current) await current.operation.catch(() => void 0);
|
|
326
|
+
if (!active) return;
|
|
327
|
+
if (current && current !== sessionReadiness) return;
|
|
328
|
+
if (!telemetry) return;
|
|
329
|
+
getTelemetry(ctx);
|
|
330
|
+
await emit("info", "pi.session.finished", {
|
|
331
|
+
...contextAttributes(ctx),
|
|
332
|
+
"pi.session.reason": reason
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
};
|
|
336
|
+
}
|
|
337
|
+
//#endregion
|
|
338
|
+
//#region src/extensions/workspaces/sessions/(backend)/_lib/piRoot.ts
|
|
339
|
+
const createLogPiRoot = ({ context, options }) => {
|
|
340
|
+
let telemetry;
|
|
341
|
+
const view = require_logRuntime.createLogViewRuntime((ctx) => telemetry.waitForSession(ctx), options);
|
|
342
|
+
telemetry = createPiTelemetryRuntime(context, view.telemetryOptions, true);
|
|
343
|
+
let shutdown;
|
|
344
|
+
return {
|
|
345
|
+
value: {
|
|
346
|
+
telemetry,
|
|
347
|
+
view,
|
|
348
|
+
sessionShutdown: (event, ctx) => shutdown ??= telemetry.finishSession(event.reason, ctx)
|
|
349
|
+
},
|
|
350
|
+
services: view.services,
|
|
351
|
+
async onDispose() {
|
|
352
|
+
await view.onDispose();
|
|
353
|
+
await telemetry.onDispose();
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
};
|
|
357
|
+
//#endregion
|
|
358
|
+
//#region src/extensions/workspaces/sessions/(backend)/root.cli.ts
|
|
359
|
+
var root_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineRoot)(createLogPiRoot);
|
|
360
|
+
//#endregion
|
|
361
|
+
//#region src/extensions/workspaces/sessions/(backend)/command/log-metrics.cli.ts
|
|
362
|
+
var log_metrics_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineRoutedContribution)((context) => [context.root.view.commands[0]], { cardinality: "many" });
|
|
363
|
+
//#endregion
|
|
364
|
+
//#region src/extensions/workspaces/sessions/(backend)/hook/after-provider-response.cli.ts
|
|
365
|
+
var after_provider_response_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.after_provider_response);
|
|
366
|
+
//#endregion
|
|
367
|
+
//#region src/extensions/workspaces/sessions/(backend)/hook/agent-end.cli.ts
|
|
368
|
+
var agent_end_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.agent_end);
|
|
369
|
+
//#endregion
|
|
370
|
+
//#region src/extensions/workspaces/sessions/(backend)/hook/agent-settled.cli.ts
|
|
371
|
+
var agent_settled_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.agent_settled);
|
|
372
|
+
//#endregion
|
|
373
|
+
//#region src/extensions/workspaces/sessions/(backend)/hook/agent-start.cli.ts
|
|
374
|
+
var agent_start_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.agent_start);
|
|
375
|
+
//#endregion
|
|
376
|
+
//#region src/extensions/workspaces/sessions/(backend)/hook/before-agent-start.cli.ts
|
|
377
|
+
var before_agent_start_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.before_agent_start);
|
|
378
|
+
//#endregion
|
|
379
|
+
//#region src/extensions/workspaces/sessions/(backend)/hook/model-select.cli.ts
|
|
380
|
+
var model_select_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.model_select);
|
|
381
|
+
//#endregion
|
|
382
|
+
//#region src/extensions/workspaces/sessions/(backend)/hook/session-shutdown.cli.ts
|
|
383
|
+
var session_shutdown_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.sessionShutdown);
|
|
384
|
+
//#endregion
|
|
385
|
+
//#region src/extensions/workspaces/sessions/(backend)/hook/session-start.cli.ts
|
|
386
|
+
var session_start_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.session_start);
|
|
387
|
+
//#endregion
|
|
388
|
+
//#region src/extensions/workspaces/sessions/(backend)/hook/tool-execution-end.cli.ts
|
|
389
|
+
var tool_execution_end_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.tool_execution_end);
|
|
390
|
+
//#endregion
|
|
391
|
+
//#region src/extensions/workspaces/sessions/(backend)/hook/tool-execution-start.cli.ts
|
|
392
|
+
var tool_execution_start_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.tool_execution_start);
|
|
393
|
+
//#endregion
|
|
394
|
+
//#region src/extensions/workspaces/sessions/(backend)/hook/turn-end.cli.ts
|
|
395
|
+
var turn_end_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.turn_end);
|
|
396
|
+
//#endregion
|
|
397
|
+
//#region src/extensions/workspaces/sessions/(backend)/hook/turn-start.cli.ts
|
|
398
|
+
var turn_start_cli_default = (0, _agimon_ai_doompi_core_extensionFile.defineCliHook)((context) => context.root.telemetry.events.turn_start);
|
|
399
|
+
//#endregion
|
|
21
400
|
//#region generated/pi.ts
|
|
22
401
|
const at = (value, context) => typeof value === "function" ? value(context) : value;
|
|
23
402
|
const many = (value, context) => {
|
|
24
403
|
const resolved = typeof value === "function" ? value(context) : value;
|
|
25
404
|
return Array.isArray(resolved) ? resolved : [resolved];
|
|
26
405
|
};
|
|
27
|
-
const extension = (0,
|
|
28
|
-
const scopeSession = await
|
|
406
|
+
const extension = (0, _agimon_ai_doompi_core_piExtension.definePiExtension)("@agimon-ai/doompi-log", async (context) => {
|
|
407
|
+
const scopeSession = await root_cli_default(context);
|
|
29
408
|
const contextSession = {
|
|
30
409
|
...context,
|
|
31
410
|
root: scopeSession.value
|
|
32
411
|
};
|
|
33
412
|
return {
|
|
34
|
-
...(0,
|
|
413
|
+
...(0, _agimon_ai_doompi_core_extensionFile.composeRootHooks)(scopeSession),
|
|
35
414
|
get commands() {
|
|
36
|
-
return [...many(
|
|
415
|
+
return [...many(log_metrics_cli_default, contextSession)];
|
|
37
416
|
},
|
|
38
417
|
events: {
|
|
39
|
-
after_provider_response: at(
|
|
40
|
-
agent_end: at(
|
|
41
|
-
agent_settled: at(
|
|
42
|
-
agent_start: at(
|
|
43
|
-
before_agent_start: at(
|
|
44
|
-
model_select: at(
|
|
45
|
-
session_shutdown: at(
|
|
46
|
-
session_start: at(
|
|
47
|
-
tool_execution_end: at(
|
|
48
|
-
tool_execution_start: at(
|
|
49
|
-
turn_end: at(
|
|
50
|
-
turn_start: at(
|
|
418
|
+
after_provider_response: at(after_provider_response_cli_default, contextSession),
|
|
419
|
+
agent_end: at(agent_end_cli_default, contextSession),
|
|
420
|
+
agent_settled: at(agent_settled_cli_default, contextSession),
|
|
421
|
+
agent_start: at(agent_start_cli_default, contextSession),
|
|
422
|
+
before_agent_start: at(before_agent_start_cli_default, contextSession),
|
|
423
|
+
model_select: at(model_select_cli_default, contextSession),
|
|
424
|
+
session_shutdown: at(session_shutdown_cli_default, contextSession),
|
|
425
|
+
session_start: at(session_start_cli_default, contextSession),
|
|
426
|
+
tool_execution_end: at(tool_execution_end_cli_default, contextSession),
|
|
427
|
+
tool_execution_start: at(tool_execution_start_cli_default, contextSession),
|
|
428
|
+
turn_end: at(turn_end_cli_default, contextSession),
|
|
429
|
+
turn_start: at(turn_start_cli_default, contextSession)
|
|
51
430
|
},
|
|
52
431
|
services: [...scopeSession.services ?? []]
|
|
53
432
|
};
|