@superblocksteam/vite-plugin-file-sync 2.0.156 → 2.0.157-next.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/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts +9 -2
- package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js +34 -6
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/prompts/build-security-scan-prompt.d.ts +2 -1
- package/dist/ai-service/agent/prompts/build-security-scan-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/build-security-scan-prompt.js +52 -9
- package/dist/ai-service/agent/prompts/build-security-scan-prompt.js.map +1 -1
- package/dist/ai-service/agent/tool-permission-delivery-metrics.d.ts +3 -0
- package/dist/ai-service/agent/tool-permission-delivery-metrics.d.ts.map +1 -0
- package/dist/ai-service/agent/tool-permission-delivery-metrics.js +23 -0
- package/dist/ai-service/agent/tool-permission-delivery-metrics.js.map +1 -0
- package/dist/ai-service/agent/tool-permission-delivery.d.ts +25 -16
- package/dist/ai-service/agent/tool-permission-delivery.d.ts.map +1 -1
- package/dist/ai-service/agent/tool-permission-delivery.js +384 -38
- package/dist/ai-service/agent/tool-permission-delivery.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.d.ts +9 -35
- package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js +71 -98
- package/dist/ai-service/agent/tools/apis/get-sdk-api-docs.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.js +3 -2
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
- package/dist/ai-service/agent/tools/app-environment/update-app-environment.d.ts +1 -1
- package/dist/ai-service/agent/tools/app-environment/update-app-environment.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/app-environment/update-app-environment.js +13 -1
- package/dist/ai-service/agent/tools/app-environment/update-app-environment.js.map +1 -1
- package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-capture-screenshot.js +8 -3
- package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
- package/dist/ai-service/agent/tools/build-navigate-preview.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-navigate-preview.js +4 -2
- package/dist/ai-service/agent/tools/build-navigate-preview.js.map +1 -1
- package/dist/ai-service/agent/tools/build-reload-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-reload-file.js +4 -2
- package/dist/ai-service/agent/tools/build-reload-file.js.map +1 -1
- package/dist/ai-service/agent/tools/get-logs.d.ts +2 -2
- package/dist/ai-service/agent/tools/integrations/delete-integration.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/delete-integration.js +6 -3
- package/dist/ai-service/agent/tools/integrations/delete-integration.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +13 -13
- package/dist/ai-service/agent/tools/integrations/integration-setup.d.ts +18 -6
- package/dist/ai-service/agent/tools/integrations/integration-setup.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/integration-setup.js +41 -15
- package/dist/ai-service/agent/tools/integrations/integration-setup.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/internal.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/internal.js +4 -2
- package/dist/ai-service/agent/tools/integrations/internal.js.map +1 -1
- package/dist/ai-service/agent/tools/report-security-findings.d.ts +23 -23
- package/dist/ai-service/agent/tools.d.ts +4 -2
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +21 -14
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/git.d.ts +2 -2
- package/dist/ai-service/index.d.ts +26 -25
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +340 -121
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/integrations/store.d.ts +2 -1
- package/dist/ai-service/integrations/store.d.ts.map +1 -1
- package/dist/ai-service/integrations/store.js +3 -2
- package/dist/ai-service/integrations/store.js.map +1 -1
- package/dist/ai-service/judge/tools/playwright-action.d.ts +1 -1
- package/dist/ai-service/judge/tools/submit-feedback.d.ts +1 -1
- package/dist/ai-service/llm/client.d.ts +9 -3
- package/dist/ai-service/llm/client.d.ts.map +1 -1
- package/dist/ai-service/llm/client.js +10 -3
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/context-v2/context-metrics.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/context-metrics.js +3 -0
- package/dist/ai-service/llm/context-v2/context-metrics.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.d.ts +6 -6
- package/dist/ai-service/llm/stream/observers/llmobs.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.js +10 -9
- package/dist/ai-service/llm/stream/observers/llmobs.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/step-token-usage.d.ts +15 -0
- package/dist/ai-service/llm/stream/observers/step-token-usage.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/observers/step-token-usage.js +88 -0
- package/dist/ai-service/llm/stream/observers/step-token-usage.js.map +1 -0
- package/dist/ai-service/llm/stream/orchestrator.d.ts +4 -0
- package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.js +19 -41
- package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.d.ts +1 -1
- package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.js +26 -1
- package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
- package/dist/ai-service/llm/stream/terminal-reason.d.ts +6 -0
- package/dist/ai-service/llm/stream/terminal-reason.d.ts.map +1 -0
- package/dist/ai-service/llm/stream/terminal-reason.js +73 -0
- package/dist/ai-service/llm/stream/terminal-reason.js.map +1 -0
- package/dist/ai-service/policy-agent-metrics.d.ts +10 -0
- package/dist/ai-service/policy-agent-metrics.d.ts.map +1 -1
- package/dist/ai-service/policy-agent-metrics.js +33 -0
- package/dist/ai-service/policy-agent-metrics.js.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +29 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +3 -1
- package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.js +7 -6
- package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.js +18 -5
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/fetch-with-reconnect-retry.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/fetch-with-reconnect-retry.js +8 -6
- package/dist/ai-service/state-machine/helpers/fetch-with-reconnect-retry.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/policy-gate-usage-metrics.d.ts +0 -14
- package/dist/ai-service/state-machine/helpers/policy-gate-usage-metrics.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/policy-gate-usage-metrics.js +0 -36
- package/dist/ai-service/state-machine/helpers/policy-gate-usage-metrics.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/pre-session-metrics.d.ts +2 -0
- package/dist/ai-service/state-machine/helpers/pre-session-metrics.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/pre-session-metrics.js +3 -0
- package/dist/ai-service/state-machine/helpers/pre-session-metrics.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/prompt-degradation-metrics.d.ts +28 -0
- package/dist/ai-service/state-machine/helpers/prompt-degradation-metrics.d.ts.map +1 -0
- package/dist/ai-service/state-machine/helpers/prompt-degradation-metrics.js +254 -0
- package/dist/ai-service/state-machine/helpers/prompt-degradation-metrics.js.map +1 -0
- package/dist/ai-service/state-machine/helpers/prompt-request-metrics.d.ts +1 -0
- package/dist/ai-service/state-machine/helpers/prompt-request-metrics.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/prompt-request-metrics.js +60 -27
- package/dist/ai-service/state-machine/helpers/prompt-request-metrics.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/stable-peer.d.ts +12 -1
- package/dist/ai-service/state-machine/helpers/stable-peer.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/stable-peer.js +42 -9
- package/dist/ai-service/state-machine/helpers/stable-peer.js.map +1 -1
- package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
- package/dist/ai-service/state-machine/mocks.js +6 -0
- package/dist/ai-service/state-machine/mocks.js.map +1 -1
- package/dist/ai-service/util/call-peer.d.ts +11 -0
- package/dist/ai-service/util/call-peer.d.ts.map +1 -0
- package/dist/ai-service/util/call-peer.js +47 -0
- package/dist/ai-service/util/call-peer.js.map +1 -0
- package/dist/ai-service/util/peer-liveness.d.ts +23 -0
- package/dist/ai-service/util/peer-liveness.d.ts.map +1 -0
- package/dist/ai-service/util/peer-liveness.js +42 -0
- package/dist/ai-service/util/peer-liveness.js.map +1 -0
- package/dist/ai-service/util/rpc-timeout.d.ts +12 -5
- package/dist/ai-service/util/rpc-timeout.d.ts.map +1 -1
- package/dist/ai-service/util/rpc-timeout.js +12 -5
- package/dist/ai-service/util/rpc-timeout.js.map +1 -1
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +8 -21
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/lock-service/activity-tracker.d.ts +0 -5
- package/dist/lock-service/activity-tracker.d.ts.map +1 -1
- package/dist/lock-service/activity-tracker.js +0 -13
- package/dist/lock-service/activity-tracker.js.map +1 -1
- package/dist/lock-service/index.d.ts +308 -27
- package/dist/lock-service/index.d.ts.map +1 -1
- package/dist/lock-service/index.js +680 -156
- package/dist/lock-service/index.js.map +1 -1
- package/dist/policy-gate-callback-mapper.d.ts +3 -2
- package/dist/policy-gate-callback-mapper.d.ts.map +1 -1
- package/dist/policy-gate-callback-mapper.js.map +1 -1
- package/dist/policy-gate-runner.d.ts +4 -2
- package/dist/policy-gate-runner.d.ts.map +1 -1
- package/dist/policy-gate-runner.js +31 -8
- package/dist/policy-gate-runner.js.map +1 -1
- package/dist/scan-scope-merge.d.ts +16 -0
- package/dist/scan-scope-merge.d.ts.map +1 -0
- package/dist/scan-scope-merge.js +90 -0
- package/dist/scan-scope-merge.js.map +1 -0
- package/dist/socket-manager.d.ts +47 -6
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +283 -66
- package/dist/socket-manager.js.map +1 -1
- package/dist/sync-service/index.d.ts.map +1 -1
- package/dist/sync-service/index.js +3 -3
- package/dist/sync-service/index.js.map +1 -1
- package/dist/test-setup.d.ts +2 -0
- package/dist/test-setup.d.ts.map +1 -0
- package/dist/test-setup.js +21 -0
- package/dist/test-setup.js.map +1 -0
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-with-reconnect-retry.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/fetch-with-reconnect-retry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"fetch-with-reconnect-retry.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/fetch-with-reconnect-retry.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,UAAU,8BAA8B;IACtC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,wBAAsB,uBAAuB,CAAC,CAAC,EAC7C,IAAI,EAAE,iBAAiB,GAAG,SAAS,EACnC,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACzB,OAAO,EAAE,8BAA8B,GACtC,OAAO,CAAC,CAAC,CAAC,CA6CZ"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { getLogger } from "../../../util/logger.js";
|
|
2
|
+
import { isGuardedPeerUnavailableError } from "../../util/call-peer.js";
|
|
2
3
|
import { RpcTimeoutError } from "../../util/rpc-timeout.js";
|
|
3
|
-
import {
|
|
4
|
+
import { isPeerUnavailableError } from "./stable-peer.js";
|
|
4
5
|
export async function fetchWithReconnectRetry(peer, fetcher, options) {
|
|
5
6
|
const generation = peer?.connectionGeneration;
|
|
6
7
|
try {
|
|
7
8
|
return await fetcher();
|
|
8
9
|
}
|
|
9
10
|
catch (err) {
|
|
10
|
-
const
|
|
11
|
+
const refusedBeforeDispatch = isGuardedPeerUnavailableError(err);
|
|
12
|
+
const shouldRetry = err instanceof RpcTimeoutError || isPeerUnavailableError(err);
|
|
11
13
|
if (!shouldRetry || !peer)
|
|
12
14
|
throw err;
|
|
13
15
|
// If a newer generation already arrived while the original request was
|
|
@@ -17,7 +19,9 @@ export async function fetchWithReconnectRetry(peer, fetcher, options) {
|
|
|
17
19
|
const operationName = err instanceof RpcTimeoutError ? err.operationName : "browser RPC";
|
|
18
20
|
const errorDescription = err instanceof RpcTimeoutError
|
|
19
21
|
? `${err.operationName} timed out after ${err.timeoutMs}ms`
|
|
20
|
-
:
|
|
22
|
+
: refusedBeforeDispatch
|
|
23
|
+
? "browser RPC refused because no peer route was available"
|
|
24
|
+
: "browser RPC dropped by transport close";
|
|
21
25
|
getLogger().warn(`[fetch-with-reconnect-retry] ${errorDescription}; waiting up to ${options.reconnectBudgetMs}ms for peer reconnect before retrying`);
|
|
22
26
|
peer.invalidateConnection(timedOutGeneration);
|
|
23
27
|
const reconnected = await peer.whenConnectedAfter(timedOutGeneration, options.reconnectBudgetMs);
|
|
@@ -26,9 +30,7 @@ export async function fetchWithReconnectRetry(peer, fetcher, options) {
|
|
|
26
30
|
throw err;
|
|
27
31
|
}
|
|
28
32
|
getLogger().info(`[fetch-with-reconnect-retry] peer reconnected; retrying ${operationName}`);
|
|
29
|
-
//
|
|
30
|
-
// failing in-flight), that queued call also flushes on reconnect, so the
|
|
31
|
-
// browser may receive this operation twice. Callers must keep the fetcher
|
|
33
|
+
// The retry is a second dispatch. Callers must keep the fetcher
|
|
32
34
|
// idempotent; `fetchIntegrations` upserts, so a duplicate is harmless.
|
|
33
35
|
return await fetcher();
|
|
34
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-with-reconnect-retry.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/fetch-with-reconnect-retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"fetch-with-reconnect-retry.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/fetch-with-reconnect-retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAO1D,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,IAAmC,EACnC,OAAyB,EACzB,OAAuC;IAEvC,MAAM,UAAU,GAAG,IAAI,EAAE,oBAAoB,CAAC;IAC9C,IAAI,CAAC;QACH,OAAO,MAAM,OAAO,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,qBAAqB,GAAG,6BAA6B,CAAC,GAAG,CAAC,CAAC;QACjE,MAAM,WAAW,GACf,GAAG,YAAY,eAAe,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAC;QAChE,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI;YAAE,MAAM,GAAG,CAAC;QACrC,uEAAuE;QACvE,wEAAwE;QACxE,0CAA0C;QAC1C,MAAM,kBAAkB,GAAG,UAAU,IAAI,IAAI,CAAC,oBAAoB,CAAC;QACnE,MAAM,aAAa,GACjB,GAAG,YAAY,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;QACrE,MAAM,gBAAgB,GACpB,GAAG,YAAY,eAAe;YAC5B,CAAC,CAAC,GAAG,GAAG,CAAC,aAAa,oBAAoB,GAAG,CAAC,SAAS,IAAI;YAC3D,CAAC,CAAC,qBAAqB;gBACrB,CAAC,CAAC,yDAAyD;gBAC3D,CAAC,CAAC,wCAAwC,CAAC;QAEjD,SAAS,EAAE,CAAC,IAAI,CACd,gCAAgC,gBAAgB,mBAAmB,OAAO,CAAC,iBAAiB,uCAAuC,CACpI,CAAC;QAEF,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC/C,kBAAkB,EAClB,OAAO,CAAC,iBAAiB,CAC1B,CAAC;QACF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,SAAS,EAAE,CAAC,IAAI,CACd,8DAA8D,OAAO,CAAC,iBAAiB,qCAAqC,aAAa,EAAE,CAC5I,CAAC;YACF,MAAM,GAAG,CAAC;QACZ,CAAC;QAED,SAAS,EAAE,CAAC,IAAI,CACd,2DAA2D,aAAa,EAAE,CAC3E,CAAC;QACF,gEAAgE;QAChE,uEAAuE;QACvE,OAAO,MAAM,OAAO,EAAE,CAAC;IACzB,CAAC;AACH,CAAC"}
|
|
@@ -1,24 +1,10 @@
|
|
|
1
1
|
import type { AiPromptCostUsageEntry } from "@superblocksteam/shared";
|
|
2
2
|
import type { ChatSessionStore } from "../../chat/chat-session-store.js";
|
|
3
|
-
import { extractPromptCostTokens } from "../../llm/stream/observers/workflow-usage.js";
|
|
4
3
|
import { type PromptFailure } from "./prompt-request-metrics.js";
|
|
5
4
|
export declare function recordPolicyGateAttempt(params: {
|
|
6
5
|
coreModel?: string;
|
|
7
6
|
}): void;
|
|
8
7
|
export declare function policyGateFailureFromStream(streamErrors: Record<string, unknown>[]): PromptFailure;
|
|
9
|
-
export declare function collectPolicyGateLlmUsage(params: {
|
|
10
|
-
modelName: string;
|
|
11
|
-
providerName: string;
|
|
12
|
-
result: {
|
|
13
|
-
steps: PromiseLike<Array<{
|
|
14
|
-
response?: {
|
|
15
|
-
modelId?: string;
|
|
16
|
-
};
|
|
17
|
-
usage?: Parameters<typeof extractPromptCostTokens>[0];
|
|
18
|
-
}>>;
|
|
19
|
-
totalUsage: PromiseLike<Parameters<typeof extractPromptCostTokens>[0]>;
|
|
20
|
-
};
|
|
21
|
-
}): Promise<AiPromptCostUsageEntry[]>;
|
|
22
8
|
export declare function finalizePolicyGateUsageMetrics(params: {
|
|
23
9
|
aiAgentRunId: string;
|
|
24
10
|
chatSessionStore: ChatSessionStore;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-gate-usage-metrics.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/policy-gate-usage-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,
|
|
1
|
+
{"version":3,"file":"policy-gate-usage-metrics.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/policy-gate-usage-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAEtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAML,KAAK,aAAa,EAEnB,MAAM,6BAA6B,CAAC;AAIrC,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAE5E;AAaD,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GACtC,aAAa,CAKf;AAED,wBAAsB,8BAA8B,CAAC,MAAM,EAAE;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,EAAE,sBAAsB,EAAE,CAAC;IACnC,MAAM,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAA;KAAE,CAAC;IAC/C,OAAO,EAAE,SAAS,GAAG,SAAS,CAAC;CAChC,GAAG,OAAO,CAAC,IAAI,CAAC,CAwChB"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { extractPromptCostTokens } from "../../llm/stream/observers/workflow-usage.js";
|
|
2
1
|
import { promptFailureLlmProviderUnknown, promptFailurePlatform, recordPromptAttempt, recordPromptCredits, recordPromptOutcome, } from "./prompt-request-metrics.js";
|
|
3
2
|
const POLICY_GATE_SURFACE = "policy_gate";
|
|
4
3
|
export function recordPolicyGateAttempt(params) {
|
|
@@ -17,41 +16,6 @@ export function policyGateFailureFromStream(streamErrors) {
|
|
|
17
16
|
}
|
|
18
17
|
return promptFailurePlatform("handler_error");
|
|
19
18
|
}
|
|
20
|
-
export async function collectPolicyGateLlmUsage(params) {
|
|
21
|
-
const entries = [];
|
|
22
|
-
try {
|
|
23
|
-
const steps = await params.result.steps;
|
|
24
|
-
for (const step of steps) {
|
|
25
|
-
if (!step.usage) {
|
|
26
|
-
continue;
|
|
27
|
-
}
|
|
28
|
-
entries.push({
|
|
29
|
-
model: step.response?.modelId ?? params.modelName,
|
|
30
|
-
provider: params.providerName,
|
|
31
|
-
...extractPromptCostTokens(step.usage),
|
|
32
|
-
});
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
catch {
|
|
36
|
-
// Fall through to totalUsage.
|
|
37
|
-
}
|
|
38
|
-
if (entries.length > 0) {
|
|
39
|
-
return entries;
|
|
40
|
-
}
|
|
41
|
-
try {
|
|
42
|
-
const totalUsage = await params.result.totalUsage;
|
|
43
|
-
return [
|
|
44
|
-
{
|
|
45
|
-
model: params.modelName,
|
|
46
|
-
provider: params.providerName,
|
|
47
|
-
...extractPromptCostTokens(totalUsage ?? {}),
|
|
48
|
-
},
|
|
49
|
-
];
|
|
50
|
-
}
|
|
51
|
-
catch {
|
|
52
|
-
return [];
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
19
|
export async function finalizePolicyGateUsageMetrics(params) {
|
|
56
20
|
const labels = policyGateMetricLabels(params);
|
|
57
21
|
recordPromptOutcome({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy-gate-usage-metrics.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/policy-gate-usage-metrics.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"policy-gate-usage-metrics.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/policy-gate-usage-metrics.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,+BAA+B,EAC/B,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,GAGpB,MAAM,6BAA6B,CAAC;AAErC,MAAM,mBAAmB,GAAG,aAAsB,CAAC;AAEnD,MAAM,UAAU,uBAAuB,CAAC,MAA8B;IACpE,mBAAmB,CAAC,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,sBAAsB,CAAC,MAG/B;IACC,OAAO;QACL,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,WAAW,EAAE,MAAM,CAAC,WAAW,IAAI,KAAK;QACxC,OAAO,EAAE,mBAAmB;KAC7B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,YAAuC;IAEvC,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,+BAA+B,EAAE,CAAC;IAC3C,CAAC;IACD,OAAO,qBAAqB,CAAC,eAAe,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,MASpD;IACC,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,CAAC;IAE9C,mBAAmB,CAAC;QAClB,GAAG,MAAM;QACT,SAAS,EAAE,MAAM,CAAC,YAAY;QAC9B,OAAO,EAAE,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;QAClE,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,0EAA0E;QAC1E,oEAAoE;QACpE,uDAAuD;QACvD,cAAc,EAAE,KAAK;KACtB,CAAC,CAAC;IAEH,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IAED,IAAI,gBAAoC,CAAC;IACzC,IAAI,CAAC;QACH,gBAAgB,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,mBAAmB,CAClE,MAAM,CAAC,YAAY,EACnB,MAAM,CAAC,QAAQ,CAChB,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,MAAM,CAAC,IAAI,CAChB,oEAAoE,EACpE;YACE,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;SAC9D,CACF,CAAC;QACF,OAAO;IACT,CAAC;IAED,mBAAmB,CAAC;QAClB,GAAG,MAAM;QACT,OAAO,EAAE,gBAAgB;QACzB,SAAS,EAAE,MAAM,CAAC,YAAY;KAC/B,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -15,6 +15,8 @@ export declare function _resetPreSessionMetricsForTesting(): void;
|
|
|
15
15
|
interface PreSessionWatchOptions {
|
|
16
16
|
applicationId?: string;
|
|
17
17
|
budgetMs?: number;
|
|
18
|
+
/** Frozen prompt dedupe key; stall notes this bucket instead of activeKey. */
|
|
19
|
+
degradationKey?: string;
|
|
18
20
|
logger: Pick<Logger, "warn" | "warnStructured">;
|
|
19
21
|
organizationId?: string;
|
|
20
22
|
/** Injectable clock for tests. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-session-metrics.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/pre-session-metrics.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAiB,MAAM,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"pre-session-metrics.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/pre-session-metrics.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAiB,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAQrE,eAAO,MAAM,2BAA2B,0DACiB,CAAC;AAC1D,eAAO,MAAM,8BAA8B,qDACS,CAAC;AAErD,KAAK,iBAAiB,GAAG,UAAU,GAAG,IAAI,CAAC;AAE3C,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,wDAEvC,CAAC;AAEX,eAAO,MAAM,uBAAuB,YAAY,CAAC;AAwDjD,wBAAgB,iCAAiC,IAAI,IAAI,CAExD;AAED,UAAU,sBAAsB;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,CAAC;IAChD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IACrB,kCAAkC;IAClC,QAAQ,CAAC,EAAE,CACT,QAAQ,EAAE,MAAM,IAAI,EACpB,EAAE,EAAE,MAAM,KACP,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC;IACnC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,KAAK,IAAI,CAAC;CAC9D;AAED,UAAU,eAAe;IACvB,yEAAyE;IACzE,QAAQ,EAAE,CAAC,OAAO,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAChD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,sBAAsB,GAC9B,eAAe,CAuDjB"}
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* Structured warn: `event: "pre_session_stall"` (queryable like stream_stall).
|
|
13
13
|
*/
|
|
14
14
|
import { metrics } from "@opentelemetry/api";
|
|
15
|
+
import { degradationKeyLogAttribute, notePromptDegradationForKey, } from "./prompt-degradation-metrics.js";
|
|
15
16
|
const METER_NAME = "superblocks.clark.prompt";
|
|
16
17
|
export const METRIC_PRE_SESSION_DURATION = "superblocks.clark.prompt.pre_session_duration_seconds";
|
|
17
18
|
export const METRIC_PRE_SESSION_STALL_TOTAL = "superblocks.clark.prompt.pre_session_stall_total";
|
|
@@ -85,6 +86,7 @@ export function startPreSessionWatch(options) {
|
|
|
85
86
|
const elapsedMs = nowMs() - startedAtMs;
|
|
86
87
|
try {
|
|
87
88
|
preSessionMetrics.recordStall();
|
|
89
|
+
notePromptDegradationForKey(options.degradationKey, "pre_session_stall");
|
|
88
90
|
}
|
|
89
91
|
catch {
|
|
90
92
|
// Structured warn below remains the diagnostic source of truth.
|
|
@@ -93,6 +95,7 @@ export function startPreSessionWatch(options) {
|
|
|
93
95
|
event: "pre_session_stall",
|
|
94
96
|
elapsed_ms: elapsedMs,
|
|
95
97
|
budget_ms: budgetMs,
|
|
98
|
+
...degradationKeyLogAttribute(options.degradationKey),
|
|
96
99
|
};
|
|
97
100
|
if (options.organizationId) {
|
|
98
101
|
attributes.organization_id = options.organizationId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pre-session-metrics.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/pre-session-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,OAAO,EAAc,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"pre-session-metrics.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/pre-session-metrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { PromptOutcome } from "./prompt-request-metrics.js";
|
|
2
|
+
import { type PromptRequestMetricIdentity } from "./prompt-request-metrics.js";
|
|
3
|
+
export declare const DEGRADATION_REASONS: readonly ["context_documents_dropped", "context_restore_empty", "empty_tool_call", "pre_session_stall", "provider_fallback", "stall_retried", "tool_timeout"];
|
|
4
|
+
export type DegradationReason = (typeof DEGRADATION_REASONS)[number];
|
|
5
|
+
export declare const DEGRADATION_NOTE_DROP_REASONS: readonly ["evicted", "missing_key", "unknown_key"];
|
|
6
|
+
export type DegradationNoteDropReason = (typeof DEGRADATION_NOTE_DROP_REASONS)[number];
|
|
7
|
+
export declare const DEGRADATION_REASON_TAG = "degradation_reason";
|
|
8
|
+
export declare const DEGRADATION_NOTE_DROP_REASON_TAG = "drop_reason";
|
|
9
|
+
export declare const PROMPT_DEGRADATION_OUTCOME_TAG = "outcome";
|
|
10
|
+
export declare function degradationKeyLogAttribute(degradationKey: string | undefined): {
|
|
11
|
+
degradation_key: string;
|
|
12
|
+
} | Record<string, never>;
|
|
13
|
+
export declare const METRIC_DEGRADED_TOTAL = "superblocks.clark.prompt.degraded_total";
|
|
14
|
+
export declare const METRIC_DEGRADATIONS_TOTAL = "superblocks.clark.prompt.degradations_total";
|
|
15
|
+
export declare const METRIC_DEGRADATION_NOTES_DROPPED_TOTAL = "superblocks.clark.prompt.degradation_notes_dropped_total";
|
|
16
|
+
/** Max in-flight prompt buckets per process. Oldest un-emitted entries are evicted. */
|
|
17
|
+
export declare const DEGRADATION_BUCKET_CAP = 256;
|
|
18
|
+
export declare function setPromptDegradationMetricIdentity(identity: PromptRequestMetricIdentity): void;
|
|
19
|
+
export declare function beginPromptDegradation(dedupeKey: string): void;
|
|
20
|
+
export declare function notePromptDegradation(reason: DegradationReason): void;
|
|
21
|
+
export declare function notePromptDegradationForKey(dedupeKey: string | undefined, reason: DegradationReason): void;
|
|
22
|
+
export declare function emitPromptDegradation(params: {
|
|
23
|
+
dedupeKey: string;
|
|
24
|
+
outcome: PromptOutcome;
|
|
25
|
+
}): void;
|
|
26
|
+
export declare function _resetPromptDegradationMetricsForTesting(): void;
|
|
27
|
+
export declare function _setPromptDegradationBucketCapForTesting(cap: number): void;
|
|
28
|
+
//# sourceMappingURL=prompt-degradation-metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-degradation-metrics.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/prompt-degradation-metrics.ts"],"names":[],"mappings":"AA4BA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAGL,KAAK,2BAA2B,EACjC,MAAM,6BAA6B,CAAC;AAErC,eAAO,MAAM,mBAAmB,+JAQtB,CAAC;AACX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,eAAO,MAAM,6BAA6B,oDAIhC,CAAC;AACX,MAAM,MAAM,yBAAyB,GACnC,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAC3D,eAAO,MAAM,gCAAgC,gBAAgB,CAAC;AAC9D,eAAO,MAAM,8BAA8B,YAAY,CAAC;AAUxD,wBAAgB,0BAA0B,CACxC,cAAc,EAAE,MAAM,GAAG,SAAS,GACjC;IAAE,eAAe,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAQrD;AAGD,eAAO,MAAM,qBAAqB,4CAA4C,CAAC;AAC/E,eAAO,MAAM,yBAAyB,gDACS,CAAC;AAChD,eAAO,MAAM,sCAAsC,6DACS,CAAC;AAE7D,uFAAuF;AACvF,eAAO,MAAM,sBAAsB,MAAM,CAAC;AA2L1C,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,2BAA2B,GACpC,IAAI,CAEN;AAUD,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAI9D;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAIrE;AAED,wBAAgB,2BAA2B,CACzC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,MAAM,EAAE,iBAAiB,GACxB,IAAI,CAIN;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE;IAC5C,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,aAAa,CAAC;CACxB,GAAG,IAAI,CAIP;AAED,wBAAgB,wCAAwC,IAAI,IAAI,CAE/D;AAED,wBAAgB,wCAAwC,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE1E"}
|
|
@@ -0,0 +1,254 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clark prompt degradation metrics (APPS-5473).
|
|
3
|
+
*
|
|
4
|
+
* Per-prompt accumulator keyed by the same dedupe string as prompt outcomes.
|
|
5
|
+
* Each unique degradation_reason is counted at most once per prompt so
|
|
6
|
+
* degradations_total is prompt-weighted rather than event-weighted.
|
|
7
|
+
*
|
|
8
|
+
* Metrics:
|
|
9
|
+
* - `superblocks.clark.prompt.degraded_total` {outcome}
|
|
10
|
+
* - `superblocks.clark.prompt.degradations_total` {outcome, degradation_reason}
|
|
11
|
+
* - `superblocks.clark.prompt.degradation_notes_dropped_total` {drop_reason}
|
|
12
|
+
*
|
|
13
|
+
* Begin on recordPromptAttempt; emit at a genuine recordPromptOutcome
|
|
14
|
+
* terminal, using the first outcomes_total label for that key so a later
|
|
15
|
+
* cancel cannot retag the bucket. Mid-prompt `countsAsPromptSuccess`
|
|
16
|
+
* handoffs (tool permission, plan approval) record outcomes_total but keep
|
|
17
|
+
* the bucket so continuation notes still attribute. Handoff dismiss
|
|
18
|
+
* (cancel / new-prompt) flushes with that stored outcome. Stream and
|
|
19
|
+
* pre-session pass an explicit frozen key; context notes still use
|
|
20
|
+
* activeKey (single-flight residual overlap accepted for v1).
|
|
21
|
+
* Notes that cannot be attributed increment the dropped counter instead of
|
|
22
|
+
* silently no-oping. `missing_key` includes intentional omit from
|
|
23
|
+
* judge and editor one-shots, so a non-zero baseline is expected. Subagent
|
|
24
|
+
* streams inherit the parent Clark key. Eviction only
|
|
25
|
+
* increments when the dropped bucket had notes.
|
|
26
|
+
*/
|
|
27
|
+
import { metrics } from "@opentelemetry/api";
|
|
28
|
+
import { PROMPT_APPLICATION_ID_TAG, PROMPT_ORGANIZATION_ID_TAG, } from "./prompt-request-metrics.js";
|
|
29
|
+
export const DEGRADATION_REASONS = [
|
|
30
|
+
"context_documents_dropped",
|
|
31
|
+
"context_restore_empty",
|
|
32
|
+
"empty_tool_call",
|
|
33
|
+
"pre_session_stall",
|
|
34
|
+
"provider_fallback",
|
|
35
|
+
"stall_retried",
|
|
36
|
+
"tool_timeout",
|
|
37
|
+
];
|
|
38
|
+
export const DEGRADATION_NOTE_DROP_REASONS = [
|
|
39
|
+
"evicted",
|
|
40
|
+
"missing_key",
|
|
41
|
+
"unknown_key",
|
|
42
|
+
];
|
|
43
|
+
export const DEGRADATION_REASON_TAG = "degradation_reason";
|
|
44
|
+
export const DEGRADATION_NOTE_DROP_REASON_TAG = "drop_reason";
|
|
45
|
+
export const PROMPT_DEGRADATION_OUTCOME_TAG = "outcome";
|
|
46
|
+
/**
|
|
47
|
+
* Dedupe keys are also log fields, and the outcome-key fallback is
|
|
48
|
+
* `ephemeral:<prompt>`. Prompts are user content, so that fallback is
|
|
49
|
+
* dropped rather than logged.
|
|
50
|
+
*/
|
|
51
|
+
const EPHEMERAL_DEDUPE_KEY_PREFIX = "ephemeral:";
|
|
52
|
+
const DEGRADATION_KEY_LOG_ATTRIBUTE = "degradation_key";
|
|
53
|
+
export function degradationKeyLogAttribute(degradationKey) {
|
|
54
|
+
if (!degradationKey ||
|
|
55
|
+
degradationKey.startsWith(EPHEMERAL_DEDUPE_KEY_PREFIX)) {
|
|
56
|
+
return {};
|
|
57
|
+
}
|
|
58
|
+
return { [DEGRADATION_KEY_LOG_ATTRIBUTE]: degradationKey };
|
|
59
|
+
}
|
|
60
|
+
const METER_NAME = "superblocks.clark.prompt";
|
|
61
|
+
export const METRIC_DEGRADED_TOTAL = "superblocks.clark.prompt.degraded_total";
|
|
62
|
+
export const METRIC_DEGRADATIONS_TOTAL = "superblocks.clark.prompt.degradations_total";
|
|
63
|
+
export const METRIC_DEGRADATION_NOTES_DROPPED_TOTAL = "superblocks.clark.prompt.degradation_notes_dropped_total";
|
|
64
|
+
/** Max in-flight prompt buckets per process. Oldest un-emitted entries are evicted. */
|
|
65
|
+
export const DEGRADATION_BUCKET_CAP = 256;
|
|
66
|
+
class PromptDegradationMetrics {
|
|
67
|
+
cachedMeter;
|
|
68
|
+
cachedInstruments;
|
|
69
|
+
applicationId;
|
|
70
|
+
organizationId;
|
|
71
|
+
activeKey;
|
|
72
|
+
bucketCap = DEGRADATION_BUCKET_CAP;
|
|
73
|
+
buckets = new Map();
|
|
74
|
+
setIdentity(identity) {
|
|
75
|
+
this.applicationId = identity.applicationId;
|
|
76
|
+
this.organizationId = identity.organizationId;
|
|
77
|
+
}
|
|
78
|
+
baseAttributes() {
|
|
79
|
+
const attributes = {};
|
|
80
|
+
if (this.applicationId) {
|
|
81
|
+
attributes[PROMPT_APPLICATION_ID_TAG] = this.applicationId;
|
|
82
|
+
}
|
|
83
|
+
if (this.organizationId) {
|
|
84
|
+
attributes[PROMPT_ORGANIZATION_ID_TAG] = this.organizationId;
|
|
85
|
+
}
|
|
86
|
+
return attributes;
|
|
87
|
+
}
|
|
88
|
+
getInstruments() {
|
|
89
|
+
const meter = metrics.getMeter(METER_NAME);
|
|
90
|
+
if (meter === this.cachedMeter && this.cachedInstruments) {
|
|
91
|
+
return this.cachedInstruments;
|
|
92
|
+
}
|
|
93
|
+
this.cachedMeter = meter;
|
|
94
|
+
this.cachedInstruments = {
|
|
95
|
+
degradedCounter: meter.createCounter(METRIC_DEGRADED_TOTAL, {
|
|
96
|
+
description: "Prompts that experienced at least one degradation, counted once per prompt regardless of how many reasons fired. Tagged with terminal outcome so the SLO can restrict to successes.",
|
|
97
|
+
unit: "1",
|
|
98
|
+
}),
|
|
99
|
+
degradationsCounter: meter.createCounter(METRIC_DEGRADATIONS_TOTAL, {
|
|
100
|
+
description: "Per-prompt degradation breakdown by reason. Each reason increments at most once per prompt even when the underlying event fires multiple times.",
|
|
101
|
+
unit: "1",
|
|
102
|
+
}),
|
|
103
|
+
droppedNotesCounter: meter.createCounter(METRIC_DEGRADATION_NOTES_DROPPED_TOTAL, {
|
|
104
|
+
description: "Degradation notes that could not be attributed to an in-flight prompt bucket. Coverage signal for missing or stale keys; missing_key includes intentional omit from judge and editor one-shots so a non-zero baseline is expected. Subagent streams inherit the parent Clark key. Evicted only counts buckets that had notes. No org/app labels.",
|
|
105
|
+
unit: "1",
|
|
106
|
+
}),
|
|
107
|
+
};
|
|
108
|
+
return this.cachedInstruments;
|
|
109
|
+
}
|
|
110
|
+
recordDroppedNote(dropReason) {
|
|
111
|
+
this.getInstruments().droppedNotesCounter.add(1, {
|
|
112
|
+
[DEGRADATION_NOTE_DROP_REASON_TAG]: dropReason,
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
evictOldestUntilRoom() {
|
|
116
|
+
while (this.buckets.size >= this.bucketCap) {
|
|
117
|
+
let oldestKey;
|
|
118
|
+
let oldestAt = Number.POSITIVE_INFINITY;
|
|
119
|
+
for (const [key, bucket] of this.buckets) {
|
|
120
|
+
if (bucket.createdAt < oldestAt) {
|
|
121
|
+
oldestAt = bucket.createdAt;
|
|
122
|
+
oldestKey = key;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (oldestKey === undefined) {
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const evicted = this.buckets.get(oldestKey);
|
|
129
|
+
this.buckets.delete(oldestKey);
|
|
130
|
+
if (this.activeKey === oldestKey) {
|
|
131
|
+
this.activeKey = undefined;
|
|
132
|
+
}
|
|
133
|
+
if (evicted && evicted.reasons.size > 0) {
|
|
134
|
+
this.recordDroppedNote("evicted");
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
begin(dedupeKey) {
|
|
139
|
+
this.activeKey = dedupeKey;
|
|
140
|
+
const existing = this.buckets.get(dedupeKey);
|
|
141
|
+
if (existing) {
|
|
142
|
+
existing.reasons.clear();
|
|
143
|
+
existing.createdAt = Date.now();
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
this.evictOldestUntilRoom();
|
|
147
|
+
this.buckets.set(dedupeKey, {
|
|
148
|
+
createdAt: Date.now(),
|
|
149
|
+
reasons: new Set(),
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
note(reason) {
|
|
153
|
+
if (!this.activeKey) {
|
|
154
|
+
this.recordDroppedNote("missing_key");
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
const bucket = this.buckets.get(this.activeKey);
|
|
158
|
+
if (!bucket) {
|
|
159
|
+
this.recordDroppedNote("missing_key");
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
bucket.reasons.add(reason);
|
|
163
|
+
}
|
|
164
|
+
noteForKey(dedupeKey, reason) {
|
|
165
|
+
if (!dedupeKey) {
|
|
166
|
+
this.recordDroppedNote("missing_key");
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
const bucket = this.buckets.get(dedupeKey);
|
|
170
|
+
if (!bucket) {
|
|
171
|
+
this.recordDroppedNote("unknown_key");
|
|
172
|
+
return;
|
|
173
|
+
}
|
|
174
|
+
bucket.reasons.add(reason);
|
|
175
|
+
}
|
|
176
|
+
emit(params) {
|
|
177
|
+
const bucket = this.buckets.get(params.dedupeKey);
|
|
178
|
+
if (!bucket || bucket.reasons.size === 0) {
|
|
179
|
+
this.buckets.delete(params.dedupeKey);
|
|
180
|
+
if (this.activeKey === params.dedupeKey) {
|
|
181
|
+
this.activeKey = undefined;
|
|
182
|
+
}
|
|
183
|
+
return;
|
|
184
|
+
}
|
|
185
|
+
const baseAttributes = this.baseAttributes();
|
|
186
|
+
const outcomeAttributes = {
|
|
187
|
+
...baseAttributes,
|
|
188
|
+
[PROMPT_DEGRADATION_OUTCOME_TAG]: params.outcome,
|
|
189
|
+
};
|
|
190
|
+
const instruments = this.getInstruments();
|
|
191
|
+
instruments.degradedCounter.add(1, outcomeAttributes);
|
|
192
|
+
for (const reason of bucket.reasons) {
|
|
193
|
+
instruments.degradationsCounter.add(1, {
|
|
194
|
+
...outcomeAttributes,
|
|
195
|
+
[DEGRADATION_REASON_TAG]: reason,
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
this.buckets.delete(params.dedupeKey);
|
|
199
|
+
if (this.activeKey === params.dedupeKey) {
|
|
200
|
+
this.activeKey = undefined;
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
_setBucketCapForTesting(cap) {
|
|
204
|
+
this.bucketCap = cap;
|
|
205
|
+
}
|
|
206
|
+
_resetForTesting() {
|
|
207
|
+
this.cachedMeter = undefined;
|
|
208
|
+
this.cachedInstruments = undefined;
|
|
209
|
+
this.applicationId = undefined;
|
|
210
|
+
this.organizationId = undefined;
|
|
211
|
+
this.activeKey = undefined;
|
|
212
|
+
this.bucketCap = DEGRADATION_BUCKET_CAP;
|
|
213
|
+
this.buckets.clear();
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
const promptDegradationMetrics = new PromptDegradationMetrics();
|
|
217
|
+
export function setPromptDegradationMetricIdentity(identity) {
|
|
218
|
+
promptDegradationMetrics.setIdentity(identity);
|
|
219
|
+
}
|
|
220
|
+
function neverFailPrompt(work) {
|
|
221
|
+
try {
|
|
222
|
+
work();
|
|
223
|
+
}
|
|
224
|
+
catch {
|
|
225
|
+
// Degradation metrics must never fail the prompt.
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
export function beginPromptDegradation(dedupeKey) {
|
|
229
|
+
neverFailPrompt(() => {
|
|
230
|
+
promptDegradationMetrics.begin(dedupeKey);
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
export function notePromptDegradation(reason) {
|
|
234
|
+
neverFailPrompt(() => {
|
|
235
|
+
promptDegradationMetrics.note(reason);
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
export function notePromptDegradationForKey(dedupeKey, reason) {
|
|
239
|
+
neverFailPrompt(() => {
|
|
240
|
+
promptDegradationMetrics.noteForKey(dedupeKey, reason);
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
export function emitPromptDegradation(params) {
|
|
244
|
+
neverFailPrompt(() => {
|
|
245
|
+
promptDegradationMetrics.emit(params);
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
export function _resetPromptDegradationMetricsForTesting() {
|
|
249
|
+
promptDegradationMetrics._resetForTesting();
|
|
250
|
+
}
|
|
251
|
+
export function _setPromptDegradationBucketCapForTesting(cap) {
|
|
252
|
+
promptDegradationMetrics._setBucketCapForTesting(cap);
|
|
253
|
+
}
|
|
254
|
+
//# sourceMappingURL=prompt-degradation-metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-degradation-metrics.js","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/prompt-degradation-metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,EAAE,OAAO,EAAc,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EACL,yBAAyB,EACzB,0BAA0B,GAE3B,MAAM,6BAA6B,CAAC;AAErC,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,2BAA2B;IAC3B,uBAAuB;IACvB,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;IACnB,eAAe;IACf,cAAc;CACN,CAAC;AAGX,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC3C,SAAS;IACT,aAAa;IACb,aAAa;CACL,CAAC;AAIX,MAAM,CAAC,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AAC3D,MAAM,CAAC,MAAM,gCAAgC,GAAG,aAAa,CAAC;AAC9D,MAAM,CAAC,MAAM,8BAA8B,GAAG,SAAS,CAAC;AAExD;;;;GAIG;AACH,MAAM,2BAA2B,GAAG,YAAY,CAAC;AACjD,MAAM,6BAA6B,GAAG,iBAAiB,CAAC;AAExD,MAAM,UAAU,0BAA0B,CACxC,cAAkC;IAElC,IACE,CAAC,cAAc;QACf,cAAc,CAAC,UAAU,CAAC,2BAA2B,CAAC,EACtD,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,EAAE,CAAC,6BAA6B,CAAC,EAAE,cAAc,EAAE,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,GAAG,0BAA0B,CAAC;AAC9C,MAAM,CAAC,MAAM,qBAAqB,GAAG,yCAAyC,CAAC;AAC/E,MAAM,CAAC,MAAM,yBAAyB,GACpC,6CAA6C,CAAC;AAChD,MAAM,CAAC,MAAM,sCAAsC,GACjD,0DAA0D,CAAC;AAE7D,uFAAuF;AACvF,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAe1C,MAAM,wBAAwB;IACpB,WAAW,CAAoB;IAC/B,iBAAiB,CAA0B;IAC3C,aAAa,CAAqB;IAClC,cAAc,CAAqB;IACnC,SAAS,CAAqB;IAC9B,SAAS,GAAG,sBAAsB,CAAC;IAC1B,OAAO,GAAG,IAAI,GAAG,EAA6B,CAAC;IAEhE,WAAW,CAAC,QAAqC;QAC/C,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC,aAAa,CAAC;QAC5C,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,cAAc,CAAC;IAChD,CAAC;IAEO,cAAc;QACpB,MAAM,UAAU,GAA2B,EAAE,CAAC;QAC9C,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,UAAU,CAAC,yBAAyB,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;QAC7D,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,UAAU,CAAC,0BAA0B,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC;QAC/D,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,cAAc;QACpB,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,KAAK,KAAK,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAChC,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,iBAAiB,GAAG;YACvB,eAAe,EAAE,KAAK,CAAC,aAAa,CAAC,qBAAqB,EAAE;gBAC1D,WAAW,EACT,qLAAqL;gBACvL,IAAI,EAAE,GAAG;aACV,CAAC;YACF,mBAAmB,EAAE,KAAK,CAAC,aAAa,CAAC,yBAAyB,EAAE;gBAClE,WAAW,EACT,iJAAiJ;gBACnJ,IAAI,EAAE,GAAG;aACV,CAAC;YACF,mBAAmB,EAAE,KAAK,CAAC,aAAa,CACtC,sCAAsC,EACtC;gBACE,WAAW,EACT,kVAAkV;gBACpV,IAAI,EAAE,GAAG;aACV,CACF;SACF,CAAC;QACF,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAEO,iBAAiB,CAAC,UAAqC;QAC7D,IAAI,CAAC,cAAc,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE;YAC/C,CAAC,gCAAgC,CAAC,EAAE,UAAU;SAC/C,CAAC,CAAC;IACL,CAAC;IAEO,oBAAoB;QAC1B,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3C,IAAI,SAA6B,CAAC;YAClC,IAAI,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC;YACxC,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACzC,IAAI,MAAM,CAAC,SAAS,GAAG,QAAQ,EAAE,CAAC;oBAChC,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;oBAC5B,SAAS,GAAG,GAAG,CAAC;gBAClB,CAAC;YACH,CAAC;YACD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO;YACT,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC/B,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,CAAC;YACD,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,SAAiB;QACrB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YACzB,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAChC,OAAO;QACT,CAAC;QACD,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE;YAC1B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,OAAO,EAAE,IAAI,GAAG,EAAE;SACnB,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,MAAyB;QAC5B,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,UAAU,CAAC,SAA6B,EAAE,MAAyB;QACjE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;YACtC,OAAO;QACT,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI,CAAC,MAAqD;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACtC,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;gBACxC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC7B,CAAC;YACD,OAAO;QACT,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC7C,MAAM,iBAAiB,GAAG;YACxB,GAAG,cAAc;YACjB,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC,OAAO;SACjD,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,WAAW,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACtD,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACpC,WAAW,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,EAAE;gBACrC,GAAG,iBAAiB;gBACpB,CAAC,sBAAsB,CAAC,EAAE,MAAM;aACjC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,uBAAuB,CAAC,GAAW;QACjC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;IACvB,CAAC;IAED,gBAAgB;QACd,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,sBAAsB,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACF;AAED,MAAM,wBAAwB,GAAG,IAAI,wBAAwB,EAAE,CAAC;AAEhE,MAAM,UAAU,kCAAkC,CAChD,QAAqC;IAErC,wBAAwB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,eAAe,CAAC,IAAgB;IACvC,IAAI,CAAC;QACH,IAAI,EAAE,CAAC;IACT,CAAC;IAAC,MAAM,CAAC;QACP,kDAAkD;IACpD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,eAAe,CAAC,GAAG,EAAE;QACnB,wBAAwB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAAyB;IAC7D,eAAe,CAAC,GAAG,EAAE;QACnB,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,SAA6B,EAC7B,MAAyB;IAEzB,eAAe,CAAC,GAAG,EAAE;QACnB,wBAAwB,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,MAGrC;IACC,eAAe,CAAC,GAAG,EAAE;QACnB,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,wCAAwC;IACtD,wBAAwB,CAAC,gBAAgB,EAAE,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,wCAAwC,CAAC,GAAW;IAClE,wBAAwB,CAAC,uBAAuB,CAAC,GAAG,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-request-metrics.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/prompt-request-metrics.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt-request-metrics.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/state-machine/helpers/prompt-request-metrics.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAe/E,OAAO,EAOL,KAAK,aAAa,EACnB,MAAM,qBAAqB,CAAC;AAE7B,eAAO,MAAM,eAAe,iCAAkC,CAAC;AAC/D,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,8BAA8B,EAC9B,+BAA+B,EAC/B,sBAAsB,EACtB,yBAAyB,EACzB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,4BAA4B,EAC5B,+BAA+B,EAC/B,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,EACzB,KAAK,2BAA2B,EAChC,KAAK,mBAAmB,EACxB,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,EAC5B,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAK7B,eAAO,MAAM,8BAA8B,2DACe,CAAC;AAC3D,eAAO,MAAM,oCAAoC,iEACe,CAAC;AACjE,eAAO,MAAM,wBAAwB,qDACe,CAAC;AACrD;;;;;;;GAOG;AACH,eAAO,MAAM,iCAAiC,IAAI,CAAC;AACnD,eAAO,MAAM,4BAA4B,mDACS,CAAC;AACnD;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,mCAAmC,CAAC;AAC3E,4EAA4E;AAC5E,eAAO,MAAM,2BAA2B,eAAe,CAAC;AACxD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;CAYuC,CAAC;AAClE,eAAO,MAAM,8BAA8B,6LAEA,CAAC;AAC5C,eAAO,MAAM,6BAA6B,mCAAoC,CAAC;AAC/E,MAAM,MAAM,yBAAyB,GACnC,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,CAAC,CAAC;AACjD,eAAO,MAAM,gCAAgC,mBAAmB,CAAC;AACjE,eAAO,MAAM,yBAAyB,mBAAmB,CAAC;AAC1D,eAAO,MAAM,qBAAqB,eAAe,CAAC;AAClD,eAAO,MAAM,uBAAuB,iBAAiB,CAAC;AACtD,eAAO,MAAM,0BAA0B,oBAAoB,CAAC;AAC5D,eAAO,MAAM,kBAAkB,YAAY,CAAC;AAC5C;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB;;;;CAIrB,CAAC;AACX,MAAM,MAAM,gBAAgB,GAC1B,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,OAAO,kBAAkB,CAAC,CAAC;AAC/D;;;;;GAKG;AACH,eAAO,MAAM,6BAA6B,eAAe,CAAC;AAC1D,eAAO,MAAM,yBAAyB;;CAE5B,CAAC;AACX,MAAM,MAAM,uBAAuB,GACjC,CAAC,OAAO,yBAAyB,CAAC,CAAC,MAAM,OAAO,yBAAyB,CAAC,CAAC;AAC7E,eAAO,MAAM,cAAc,qCAAqC,CAAC;AACjE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,wDAEzB,CAAC;AAIX,eAAO,MAAM,qCAAqC,+CAGxC,CAAC;AACX,MAAM,MAAM,gCAAgC,GAC1C,CAAC,OAAO,qCAAqC,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,eAAO,MAAM,wCAAwC,WAAW,CAAC;AAIjE,eAAO,MAAM,kDAAkD,4BACpC,CAAC;AAE5B,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IACjD,SAAS,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,aAAa,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,eAAe,CAAC,EAAE;QAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IACpD,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,GAAG,kBAAkB,GAAG;IAAE,cAAc,EAAE,OAAO,CAAA;CAAE,CAYnD;AAiCD,MAAM,WAAW,2BAA2B;IAC1C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AA2aD,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,2BAA2B,GACpC,IAAI,CAEN;AAID,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,uBAAuB,CAAC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,GAAG,IAAI,CAUP;AAED,wBAAgB,gCAAgC,CAAC,MAAM,EAAE;IACvD,MAAM,EAAE,gCAAgC,CAAC;IACzC,qBAAqB,EAAE,OAAO,CAAC;CAChC,GAAG,IAAI,CAEP;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,GAAG,MAAM,GAAG,SAAS,CAErB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,GAAG,IAAI,CAiBP;AASD,wBAAgB,mBAAmB,CACjC,MAAM,EAAE;IACN,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,GAAG,kBAAkB,GACrB,IAAI,CAaN;AAED,wBAAgB,6BAA6B,CAAC,OAAO,EAAE;IACrD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,MAAM,CAET;AAED;;;GAGG;AACH,wBAAgB,kCAAkC,CAAC,KAAK,EAAE;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmBzB;AAED,wBAAgB,wCAAwC,CAAC,KAAK,EAAE;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB,CAAC,EAAE,OAAO,CAAC;CACjC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQzB;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE;IAClD,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,MAAM,EAAE,yBAAyB,CAAC;CACnC,GAAG,IAAI,CAQP;AAED,wBAAgB,wCAAwC,CAAC,MAAM,EAAE;IAC/D,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GAAG,OAAO,CAKV;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE;IACpD,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC,GAAG,MAAM,GAAG,SAAS,CAKrB;AAED,wBAAgB,kCAAkC,CAAC,MAAM,EAAE;IACzD,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,MAAM,EAAE,yBAAyB,CAAC;CACnC,GAAG,IAAI,CAUP;AAED,wBAAgB,+BAA+B,CAAC,MAAM,EAAE;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;;OAGG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GAAG,OAAO,CAqCV;AAED,yFAAyF;AACzF,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B,GAAG,IAAI,CAaP;AAED,wBAAgB,oCAAoC,IAAI,IAAI,CAE3D"}
|