@mupt-ai/dari-gateway 0.1.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -1
- package/dist/bun.d.ts +2 -0
- package/dist/bun.js +4 -0
- package/dist/context/eval_catalog.d.ts +3 -0
- package/dist/context/eval_catalog.js +7 -0
- package/dist/context/interaction_fingerprint.d.ts +27 -0
- package/dist/context/interaction_fingerprint.js +519 -0
- package/dist/context/interaction_fingerprint_format.d.ts +42 -0
- package/dist/context/interaction_fingerprint_format.js +113 -0
- package/dist/context/interaction_lease_depth.d.ts +2 -0
- package/dist/context/interaction_lease_depth.js +110 -0
- package/dist/context/lease_history.d.ts +7 -0
- package/dist/context/lease_history.js +158 -0
- package/dist/context/pricing.d.ts +4 -0
- package/dist/context/pricing.js +23 -0
- package/dist/context/provider_prompt_accounting.d.ts +14 -0
- package/dist/context/provider_prompt_accounting.js +187 -0
- package/dist/context/routing_context.d.ts +40 -0
- package/dist/context/routing_context.js +211 -0
- package/dist/http/auth.d.ts +2 -0
- package/dist/http/auth.js +35 -0
- package/dist/http/errors.d.ts +19 -0
- package/dist/http/errors.js +89 -0
- package/dist/http/handler.d.ts +12 -0
- package/dist/http/handler.js +81 -0
- package/dist/http/http2_server.d.ts +6 -0
- package/dist/http/http2_server.js +103 -0
- package/dist/http/serve.d.ts +20 -0
- package/dist/http/serve.js +78 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +8 -0
- package/dist/ingress/anthropic_messages.d.ts +3 -0
- package/dist/ingress/anthropic_messages.js +122 -0
- package/dist/ingress/anthropic_models.d.ts +1 -0
- package/dist/ingress/anthropic_models.js +23 -0
- package/dist/ingress/chat_completions.d.ts +2 -0
- package/dist/ingress/chat_completions.js +37 -0
- package/dist/ingress/claude_code/request_context.d.ts +2 -0
- package/dist/ingress/claude_code/request_context.js +31 -0
- package/dist/ingress/codex.d.ts +3 -0
- package/dist/ingress/codex.js +65 -0
- package/dist/ingress/codex_models.d.ts +2 -0
- package/dist/ingress/codex_models.js +89 -0
- package/dist/ingress/json.d.ts +1 -0
- package/dist/ingress/json.js +95 -0
- package/dist/ingress/models.d.ts +1 -0
- package/dist/ingress/models.js +53 -0
- package/dist/interaction/capabilities.d.ts +3 -0
- package/dist/interaction/capabilities.js +24 -0
- package/dist/interaction/image.d.ts +4 -0
- package/dist/interaction/image.js +13 -0
- package/dist/interaction/portable_reasoning_state.d.ts +4 -0
- package/dist/interaction/portable_reasoning_state.js +18 -0
- package/dist/interaction/provider_continuation_state.d.ts +6 -0
- package/dist/interaction/provider_continuation_state.js +27 -0
- package/dist/interaction/tool_identity.d.ts +10 -0
- package/dist/interaction/tool_identity.js +41 -0
- package/dist/interaction/types.d.ts +203 -0
- package/dist/interaction/types.js +5 -0
- package/dist/models/context_limits.d.ts +2 -0
- package/dist/models/context_limits.js +7 -0
- package/dist/models/execution_provider.d.ts +8 -0
- package/dist/models/execution_provider.js +13 -0
- package/dist/models/gateways.d.ts +11 -0
- package/dist/models/gateways.js +45 -0
- package/dist/models/ids.d.ts +1 -0
- package/dist/models/ids.js +15 -0
- package/dist/models/provider_defaults.d.ts +4 -0
- package/dist/models/provider_defaults.js +41 -0
- package/dist/models/runtime_overrides.d.ts +4 -0
- package/dist/models/runtime_overrides.js +209 -0
- package/dist/observability/errors.d.ts +8 -0
- package/dist/observability/errors.js +11 -0
- package/dist/platform/platform.d.ts +152 -0
- package/dist/platform/platform.js +11 -0
- package/dist/platform/routing_contract.d.ts +2 -0
- package/dist/platform/routing_contract.js +5 -0
- package/dist/protocol/input/anthropic_messages.d.ts +2 -0
- package/dist/protocol/input/anthropic_messages.js +494 -0
- package/dist/protocol/input/chat_completions.d.ts +4 -0
- package/dist/protocol/input/chat_completions.js +212 -0
- package/dist/protocol/input/chat_completions_validation.d.ts +2 -0
- package/dist/protocol/input/chat_completions_validation.js +257 -0
- package/dist/protocol/input/openai_responses.d.ts +2 -0
- package/dist/protocol/input/openai_responses.js +666 -0
- package/dist/protocol/input/router_model.d.ts +7 -0
- package/dist/protocol/input/router_model.js +43 -0
- package/dist/protocol/output/anthropic_messages.d.ts +10 -0
- package/dist/protocol/output/anthropic_messages.js +15 -0
- package/dist/protocol/output/anthropic_messages_output.d.ts +10 -0
- package/dist/protocol/output/anthropic_messages_output.js +124 -0
- package/dist/protocol/output/anthropic_messages_stream.d.ts +16 -0
- package/dist/protocol/output/anthropic_messages_stream.js +267 -0
- package/dist/protocol/output/chat_completions.d.ts +29 -0
- package/dist/protocol/output/chat_completions.js +406 -0
- package/dist/protocol/output/chat_reasoning_detail.d.ts +2 -0
- package/dist/protocol/output/chat_reasoning_detail.js +13 -0
- package/dist/protocol/output/delivered_stream_snapshot.d.ts +10 -0
- package/dist/protocol/output/delivered_stream_snapshot.js +31 -0
- package/dist/protocol/output/openai_responses.d.ts +10 -0
- package/dist/protocol/output/openai_responses.js +14 -0
- package/dist/protocol/output/openai_responses_output.d.ts +14 -0
- package/dist/protocol/output/openai_responses_output.js +125 -0
- package/dist/protocol/output/openai_responses_stream.d.ts +18 -0
- package/dist/protocol/output/openai_responses_stream.js +546 -0
- package/dist/protocol/output/sse_stream.d.ts +31 -0
- package/dist/protocol/output/sse_stream.js +67 -0
- package/dist/providers/anthropic_safeguards.d.ts +11 -0
- package/dist/providers/anthropic_safeguards.js +81 -0
- package/dist/providers/aws_assume_role.d.ts +17 -0
- package/dist/providers/aws_assume_role.js +107 -0
- package/dist/providers/cancel_estimate.d.ts +43 -0
- package/dist/providers/cancel_estimate.js +89 -0
- package/dist/providers/execution.d.ts +72 -0
- package/dist/providers/execution.js +491 -0
- package/dist/providers/model_capabilities.d.ts +11 -0
- package/dist/providers/model_capabilities.js +29 -0
- package/dist/providers/pi.d.ts +65 -0
- package/dist/providers/pi.js +319 -0
- package/dist/providers/pi_context.d.ts +7 -0
- package/dist/providers/pi_context.js +405 -0
- package/dist/providers/pi_options.d.ts +11 -0
- package/dist/providers/pi_options.js +398 -0
- package/dist/providers/pi_output.d.ts +2 -0
- package/dist/providers/pi_output.js +453 -0
- package/dist/providers/provider_attempt_runner.d.ts +55 -0
- package/dist/providers/provider_attempt_runner.js +90 -0
- package/dist/providers/provider_call.d.ts +77 -0
- package/dist/providers/provider_call.js +292 -0
- package/dist/providers/provider_reported_cost.d.ts +10 -0
- package/dist/providers/provider_reported_cost.js +123 -0
- package/dist/providers/reasoning.d.ts +12 -0
- package/dist/providers/reasoning.js +30 -0
- package/dist/providers/response_capture.d.ts +23 -0
- package/dist/providers/response_capture.js +47 -0
- package/dist/providers/stream_finalization.d.ts +46 -0
- package/dist/providers/stream_finalization.js +165 -0
- package/dist/providers/subscription_limits.d.ts +31 -0
- package/dist/providers/subscription_limits.js +163 -0
- package/dist/providers/subscription_usage.d.ts +10 -0
- package/dist/providers/subscription_usage.js +79 -0
- package/dist/runtime/claude_code/auxiliary_routing.d.ts +3 -0
- package/dist/runtime/claude_code/auxiliary_routing.js +60 -0
- package/dist/runtime/customer_disconnect.d.ts +20 -0
- package/dist/runtime/customer_disconnect.js +49 -0
- package/dist/runtime/explicit_model.d.ts +4 -0
- package/dist/runtime/explicit_model.js +53 -0
- package/dist/runtime/harness_identity/conversation.d.ts +33 -0
- package/dist/runtime/harness_identity/conversation.js +39 -0
- package/dist/runtime/harness_identity/extract.d.ts +8 -0
- package/dist/runtime/harness_identity/extract.js +214 -0
- package/dist/runtime/harness_identity/index.d.ts +2 -0
- package/dist/runtime/harness_identity/index.js +2 -0
- package/dist/runtime/prepare_routed_completion.d.ts +33 -0
- package/dist/runtime/prepare_routed_completion.js +167 -0
- package/dist/runtime/provider_stream_lifecycle.d.ts +31 -0
- package/dist/runtime/provider_stream_lifecycle.js +88 -0
- package/dist/runtime/provider_stream_outcome.d.ts +23 -0
- package/dist/runtime/provider_stream_outcome.js +55 -0
- package/dist/runtime/request_tags.d.ts +7 -0
- package/dist/runtime/request_tags.js +33 -0
- package/dist/runtime/routed_completion.d.ts +17 -0
- package/dist/runtime/routed_completion.js +80 -0
- package/dist/runtime/routed_protocol.d.ts +30 -0
- package/dist/runtime/routed_protocol.js +1 -0
- package/dist/runtime/routed_runtime.d.ts +40 -0
- package/dist/runtime/routed_runtime.js +535 -0
- package/dist/runtime/routing_lease.d.ts +26 -0
- package/dist/runtime/routing_lease.js +210 -0
- package/dist/runtime/runtime_reporter.d.ts +71 -0
- package/dist/runtime/runtime_reporter.js +35 -0
- package/dist/self_host/config.d.ts +46 -0
- package/dist/self_host/config.js +105 -0
- package/dist/self_host/main.d.ts +16 -0
- package/dist/self_host/main.js +95 -0
- package/dist/self_host/platform.d.ts +13 -0
- package/dist/self_host/platform.js +50 -0
- package/dist/self_host/prefix_store.d.ts +46 -0
- package/dist/self_host/prefix_store.js +261 -0
- package/dist/self_host/resolve.d.ts +28 -0
- package/dist/self_host/resolve.js +171 -0
- package/dist/self_host/subscriptions/access.d.ts +10 -0
- package/dist/self_host/subscriptions/access.js +37 -0
- package/dist/self_host/subscriptions/http.d.ts +15 -0
- package/dist/self_host/subscriptions/http.js +187 -0
- package/dist/self_host/subscriptions/index.d.ts +24 -0
- package/dist/self_host/subscriptions/index.js +24 -0
- package/dist/self_host/subscriptions/oauth.d.ts +55 -0
- package/dist/self_host/subscriptions/oauth.js +281 -0
- package/dist/self_host/subscriptions/store.d.ts +78 -0
- package/dist/self_host/subscriptions/store.js +235 -0
- package/dist/strategies/auto_routing_selector.d.ts +12 -0
- package/dist/strategies/auto_routing_selector.js +61 -0
- package/dist/strategies/eval_relevance.d.ts +17 -0
- package/dist/strategies/eval_relevance.js +32 -0
- package/dist/strategies/fallback_decision.d.ts +8 -0
- package/dist/strategies/fallback_decision.js +17 -0
- package/dist/strategies/priority_selector.d.ts +7 -0
- package/dist/strategies/priority_selector.js +37 -0
- package/dist/strategies/route_decision.d.ts +22 -0
- package/dist/strategies/route_decision.js +65 -0
- package/dist/strategies/routing.d.ts +74 -0
- package/dist/strategies/routing.js +280 -0
- package/dist/strategies/selector_projection.d.ts +15 -0
- package/dist/strategies/selector_projection.js +161 -0
- package/dist/telemetry/background.d.ts +7 -0
- package/dist/telemetry/background.js +33 -0
- package/dist/telemetry/benchmark_replay.d.ts +37 -0
- package/dist/telemetry/benchmark_replay.js +108 -0
- package/dist/telemetry/billing_finalization.d.ts +64 -0
- package/dist/telemetry/billing_finalization.js +96 -0
- package/dist/telemetry/ingest_values.d.ts +4 -0
- package/dist/telemetry/ingest_values.js +12 -0
- package/dist/telemetry/model_cost.d.ts +3 -0
- package/dist/telemetry/model_cost.js +15 -0
- package/dist/telemetry/prefix_state.d.ts +47 -0
- package/dist/telemetry/prefix_state.js +116 -0
- package/dist/telemetry/report.d.ts +88 -0
- package/dist/telemetry/report.js +621 -0
- package/dist/telemetry/requests/interaction_observability.d.ts +45 -0
- package/dist/telemetry/requests/interaction_observability.js +180 -0
- package/dist/telemetry/requests/retained_interaction_request.d.ts +8 -0
- package/dist/telemetry/requests/retained_interaction_request.js +10 -0
- package/dist/telemetry/scrub.d.ts +2 -0
- package/dist/telemetry/scrub.js +31 -0
- package/dist/telemetry/skills/claude/catalog.d.ts +6 -0
- package/dist/telemetry/skills/claude/catalog.js +99 -0
- package/dist/telemetry/skills/claude/file_reads.d.ts +4 -0
- package/dist/telemetry/skills/claude/file_reads.js +110 -0
- package/dist/telemetry/skills/claude/observations.d.ts +3 -0
- package/dist/telemetry/skills/claude/observations.js +366 -0
- package/dist/telemetry/skills/codex/catalog.d.ts +11 -0
- package/dist/telemetry/skills/codex/catalog.js +138 -0
- package/dist/telemetry/skills/codex/exec_file_reads.d.ts +9 -0
- package/dist/telemetry/skills/codex/exec_file_reads.js +36 -0
- package/dist/telemetry/skills/codex/explicit.d.ts +3 -0
- package/dist/telemetry/skills/codex/explicit.js +90 -0
- package/dist/telemetry/skills/codex/file_reads.d.ts +4 -0
- package/dist/telemetry/skills/codex/file_reads.js +37 -0
- package/dist/telemetry/skills/codex/identity.d.ts +2 -0
- package/dist/telemetry/skills/codex/identity.js +20 -0
- package/dist/telemetry/skills/observations.d.ts +21 -0
- package/dist/telemetry/skills/observations.js +41 -0
- package/dist/telemetry/skills/paths.d.ts +11 -0
- package/dist/telemetry/skills/paths.js +61 -0
- package/dist/telemetry/skills/pi.d.ts +6 -0
- package/dist/telemetry/skills/pi.js +223 -0
- package/dist/telemetry/skills/shell_file_reads.d.ts +7 -0
- package/dist/telemetry/skills/shell_file_reads.js +226 -0
- package/dist/telemetry/skills/shell_words.d.ts +13 -0
- package/dist/telemetry/skills/shell_words.js +189 -0
- package/dist/telemetry/tools/input.d.ts +2 -0
- package/dist/telemetry/tools/input.js +14 -0
- package/dist/telemetry/tools/observations.d.ts +29 -0
- package/dist/telemetry/tools/observations.js +247 -0
- package/dist/telemetry/usage.d.ts +57 -0
- package/dist/telemetry/usage.js +136 -0
- package/dist/types.d.ts +94 -0
- package/dist/types.js +1 -0
- package/package.json +22 -5
- package/src/bun.ts +4 -0
- package/src/context/eval_catalog.ts +1 -1
- package/src/context/interaction_fingerprint.ts +9 -9
- package/src/context/interaction_fingerprint_format.ts +1 -1
- package/src/context/interaction_lease_depth.ts +1 -1
- package/src/context/pricing.ts +1 -1
- package/src/context/provider_prompt_accounting.ts +5 -5
- package/src/context/routing_context.ts +17 -17
- package/src/http/auth.ts +1 -1
- package/src/http/handler.ts +8 -8
- package/src/http/serve.ts +3 -3
- package/src/index.ts +10 -9
- package/src/ingress/anthropic_messages.ts +12 -12
- package/src/ingress/anthropic_models.ts +1 -1
- package/src/ingress/chat_completions.ts +9 -9
- package/src/ingress/claude_code/request_context.ts +2 -2
- package/src/ingress/codex.ts +10 -10
- package/src/ingress/codex_models.ts +4 -4
- package/src/ingress/json.ts +1 -1
- package/src/ingress/models.ts +10 -10
- package/src/interaction/capabilities.ts +1 -1
- package/src/interaction/portable_reasoning_state.ts +1 -1
- package/src/interaction/provider_continuation_state.ts +1 -1
- package/src/interaction/tool_identity.ts +2 -2
- package/src/interaction/types.ts +3 -0
- package/src/models/context_limits.ts +1 -1
- package/src/models/execution_provider.ts +1 -1
- package/src/models/ids.ts +1 -1
- package/src/models/provider_defaults.ts +1 -1
- package/src/models/runtime_overrides.ts +1 -1
- package/src/observability/errors.ts +2 -2
- package/src/platform/platform.ts +36 -4
- package/src/protocol/input/anthropic_messages.ts +7 -7
- package/src/protocol/input/chat_completions.ts +5 -5
- package/src/protocol/input/chat_completions_validation.ts +4 -4
- package/src/protocol/input/openai_responses.ts +6 -6
- package/src/protocol/output/anthropic_messages.ts +3 -3
- package/src/protocol/output/anthropic_messages_output.ts +6 -4
- package/src/protocol/output/anthropic_messages_stream.ts +7 -7
- package/src/protocol/output/chat_completions.ts +13 -13
- package/src/protocol/output/chat_reasoning_detail.ts +1 -1
- package/src/protocol/output/openai_responses.ts +3 -3
- package/src/protocol/output/openai_responses_output.ts +4 -2
- package/src/protocol/output/openai_responses_stream.ts +6 -6
- package/src/protocol/output/sse_stream.ts +3 -3
- package/src/providers/anthropic_safeguards.ts +2 -2
- package/src/providers/aws_assume_role.ts +2 -2
- package/src/providers/cancel_estimate.ts +1 -1
- package/src/providers/execution.ts +17 -17
- package/src/providers/pi.ts +115 -41
- package/src/providers/pi_context.ts +6 -6
- package/src/providers/pi_options.ts +283 -453
- package/src/providers/pi_output.ts +6 -5
- package/src/providers/provider_attempt_runner.ts +1 -1
- package/src/providers/provider_call.ts +37 -18
- package/src/providers/provider_reported_cost.ts +138 -0
- package/src/providers/reasoning.ts +2 -2
- package/src/providers/stream_finalization.ts +10 -10
- package/src/providers/subscription_limits.ts +3 -3
- package/src/runtime/claude_code/auxiliary_routing.ts +5 -5
- package/src/runtime/customer_disconnect.ts +1 -1
- package/src/runtime/explicit_model.ts +31 -4
- package/src/runtime/harness_identity/conversation.ts +1 -1
- package/src/runtime/harness_identity/extract.ts +3 -3
- package/src/runtime/harness_identity/index.ts +2 -2
- package/src/runtime/prepare_routed_completion.ts +46 -10
- package/src/runtime/provider_stream_lifecycle.ts +1 -1
- package/src/runtime/provider_stream_outcome.ts +2 -2
- package/src/runtime/request_tags.ts +34 -0
- package/src/runtime/routed_completion.ts +13 -11
- package/src/runtime/routed_protocol.ts +2 -2
- package/src/runtime/routed_runtime.ts +38 -20
- package/src/runtime/routing_lease.ts +7 -7
- package/src/runtime/runtime_reporter.ts +3 -3
- package/src/self_host/main.ts +19 -14
- package/src/self_host/platform.ts +5 -5
- package/src/self_host/prefix_store.ts +2 -2
- package/src/self_host/resolve.ts +11 -11
- package/src/self_host/subscriptions/access.ts +2 -2
- package/src/self_host/subscriptions/http.ts +2 -2
- package/src/self_host/subscriptions/index.ts +4 -4
- package/src/self_host/subscriptions/store.ts +1 -1
- package/src/strategies/auto_routing_selector.ts +2 -2
- package/src/strategies/eval_relevance.ts +3 -3
- package/src/strategies/priority_selector.ts +1 -1
- package/src/strategies/route_decision.ts +7 -7
- package/src/strategies/routing.ts +11 -11
- package/src/strategies/selector_projection.ts +2 -2
- package/src/telemetry/billing_finalization.ts +3 -3
- package/src/telemetry/model_cost.ts +1 -1
- package/src/telemetry/prefix_state.ts +4 -4
- package/src/telemetry/report.ts +30 -25
- package/src/telemetry/requests/interaction_observability.ts +1 -1
- package/src/telemetry/requests/retained_interaction_request.ts +1 -1
- package/src/telemetry/skills/claude/catalog.ts +1 -1
- package/src/telemetry/skills/claude/file_reads.ts +6 -6
- package/src/telemetry/skills/claude/observations.ts +3 -3
- package/src/telemetry/skills/codex/catalog.ts +3 -3
- package/src/telemetry/skills/codex/exec_file_reads.ts +4 -4
- package/src/telemetry/skills/codex/explicit.ts +3 -3
- package/src/telemetry/skills/codex/file_reads.ts +5 -5
- package/src/telemetry/skills/observations.ts +7 -7
- package/src/telemetry/skills/pi.ts +3 -3
- package/src/telemetry/skills/shell_file_reads.ts +2 -2
- package/src/telemetry/skills/shell_words.ts +1 -1
- package/src/telemetry/tools/input.ts +1 -1
- package/src/telemetry/tools/observations.ts +9 -9
- package/src/telemetry/usage.ts +9 -5
- package/src/types.ts +15 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { InteractionUsage } from "../interaction/types.js";
|
|
2
|
+
import type { ProviderKeySource } from "../types.js";
|
|
3
|
+
export type RoutingBillingTerminalOutcome = "completed" | "customer_canceled" | "provider_failed" | "selection";
|
|
4
|
+
export type RoutingBillingProviderAttemptFacts = {
|
|
5
|
+
provider: string;
|
|
6
|
+
model: string;
|
|
7
|
+
provider_key_source: ProviderKeySource;
|
|
8
|
+
role: "primary" | "fallback";
|
|
9
|
+
attempt: number;
|
|
10
|
+
outcome: "completed" | "provider_failed" | "customer_canceled";
|
|
11
|
+
provider_request_id: string | null;
|
|
12
|
+
provider_input_tokens: number | null;
|
|
13
|
+
provider_cache_read_tokens: number | null;
|
|
14
|
+
provider_cache_write_tokens: number | null;
|
|
15
|
+
provider_output_tokens: number | null;
|
|
16
|
+
provider_input_cost_usd: string | null;
|
|
17
|
+
provider_cache_read_cost_usd: string | null;
|
|
18
|
+
provider_cache_write_cost_usd: string | null;
|
|
19
|
+
provider_output_cost_usd: string | null;
|
|
20
|
+
provider_cost_usd: string | null;
|
|
21
|
+
provider_pricing_known: boolean;
|
|
22
|
+
usage_estimated: boolean;
|
|
23
|
+
};
|
|
24
|
+
export type RoutingBillingFinalizationPayload = {
|
|
25
|
+
request_id: string;
|
|
26
|
+
organization_id: string;
|
|
27
|
+
event_schema_version: 1;
|
|
28
|
+
provider_attempts: RoutingBillingProviderAttemptFacts[];
|
|
29
|
+
benchmark_replay_cost_usd: string | null;
|
|
30
|
+
benchmark_pricing_known: boolean;
|
|
31
|
+
terminal_outcome: RoutingBillingTerminalOutcome;
|
|
32
|
+
finalized_at: string;
|
|
33
|
+
};
|
|
34
|
+
export type FrozenRoutingBillingTerminal = {
|
|
35
|
+
readPayload(): RoutingBillingFinalizationPayload;
|
|
36
|
+
};
|
|
37
|
+
type BillingFinalizationIdentity = {
|
|
38
|
+
requestId: string;
|
|
39
|
+
organizationId: string;
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* One request-scoped terminal register. The first terminal facts and timestamp
|
|
43
|
+
* win; every later response hook, catch, or duplicate provider terminal event
|
|
44
|
+
* observes the same serialized bytes, which the routing report carries as the
|
|
45
|
+
* request's billing facts.
|
|
46
|
+
*/
|
|
47
|
+
export declare class RoutingBillingFinalization {
|
|
48
|
+
private readonly identity;
|
|
49
|
+
private terminal;
|
|
50
|
+
constructor(identity: BillingFinalizationIdentity);
|
|
51
|
+
freeze(terminalOutcome: RoutingBillingTerminalOutcome, providerAttempts: readonly RoutingBillingProviderAttemptFacts[], benchmarkReplayCostUsd: number | null): FrozenRoutingBillingTerminal;
|
|
52
|
+
}
|
|
53
|
+
export declare function routingBillingProviderAttemptFacts(args: {
|
|
54
|
+
provider: string;
|
|
55
|
+
model: string;
|
|
56
|
+
providerKeySource: ProviderKeySource;
|
|
57
|
+
role: "primary" | "fallback";
|
|
58
|
+
attempt: number;
|
|
59
|
+
outcome: "completed" | "provider_failed" | "customer_canceled";
|
|
60
|
+
providerMessage: Record<string, unknown> | null;
|
|
61
|
+
usage: InteractionUsage | Record<string, unknown> | null;
|
|
62
|
+
providerPricingKnown: boolean;
|
|
63
|
+
}): RoutingBillingProviderAttemptFacts;
|
|
64
|
+
export {};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { finiteNumber, isRecord, tokenCount } from "./ingest_values.js";
|
|
2
|
+
const BILLING_EVENT_SCHEMA_VERSION = 1;
|
|
3
|
+
/**
|
|
4
|
+
* One request-scoped terminal register. The first terminal facts and timestamp
|
|
5
|
+
* win; every later response hook, catch, or duplicate provider terminal event
|
|
6
|
+
* observes the same serialized bytes, which the routing report carries as the
|
|
7
|
+
* request's billing facts.
|
|
8
|
+
*/
|
|
9
|
+
export class RoutingBillingFinalization {
|
|
10
|
+
identity;
|
|
11
|
+
terminal = null;
|
|
12
|
+
constructor(identity) {
|
|
13
|
+
this.identity = identity;
|
|
14
|
+
}
|
|
15
|
+
freeze(terminalOutcome, providerAttempts, benchmarkReplayCostUsd) {
|
|
16
|
+
if (this.terminal !== null)
|
|
17
|
+
return this.terminal;
|
|
18
|
+
const finalizedAt = new Date().toISOString();
|
|
19
|
+
const benchmarkCost = nonnegativeMoney(benchmarkReplayCostUsd);
|
|
20
|
+
const payload = {
|
|
21
|
+
request_id: this.identity.requestId,
|
|
22
|
+
organization_id: this.identity.organizationId,
|
|
23
|
+
event_schema_version: BILLING_EVENT_SCHEMA_VERSION,
|
|
24
|
+
provider_attempts: [...providerAttempts],
|
|
25
|
+
benchmark_replay_cost_usd: benchmarkCost,
|
|
26
|
+
benchmark_pricing_known: benchmarkCost !== null,
|
|
27
|
+
terminal_outcome: terminalOutcome,
|
|
28
|
+
finalized_at: finalizedAt,
|
|
29
|
+
};
|
|
30
|
+
const serializedPayload = JSON.stringify(payload);
|
|
31
|
+
const terminal = {
|
|
32
|
+
readPayload: () => JSON.parse(serializedPayload),
|
|
33
|
+
};
|
|
34
|
+
this.terminal = terminal;
|
|
35
|
+
return terminal;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export function routingBillingProviderAttemptFacts(args) {
|
|
39
|
+
const usage = args.usage;
|
|
40
|
+
const cost = usage !== null && isRecord(usage.cost) ? usage.cost : null;
|
|
41
|
+
const inputCost = cost === null ? null : nonnegativeMoney(cost.input);
|
|
42
|
+
const cacheReadCost = cost === null ? null : nonnegativeMoney(cost.cacheRead);
|
|
43
|
+
const cacheWriteCost = cost === null ? null : nonnegativeMoney(cost.cacheWrite);
|
|
44
|
+
const outputCost = cost === null ? null : nonnegativeMoney(cost.output);
|
|
45
|
+
const totalCost = cost === null ? null : nonnegativeMoney(cost.total);
|
|
46
|
+
const providerPricingKnown = args.providerPricingKnown &&
|
|
47
|
+
inputCost !== null &&
|
|
48
|
+
cacheReadCost !== null &&
|
|
49
|
+
cacheWriteCost !== null &&
|
|
50
|
+
outputCost !== null &&
|
|
51
|
+
totalCost !== null;
|
|
52
|
+
const costs = providerPricingKnown
|
|
53
|
+
? {
|
|
54
|
+
input: inputCost,
|
|
55
|
+
cacheRead: cacheReadCost,
|
|
56
|
+
cacheWrite: cacheWriteCost,
|
|
57
|
+
output: outputCost,
|
|
58
|
+
total: totalCost,
|
|
59
|
+
}
|
|
60
|
+
: null;
|
|
61
|
+
return {
|
|
62
|
+
provider: args.provider,
|
|
63
|
+
model: args.model,
|
|
64
|
+
provider_key_source: args.providerKeySource,
|
|
65
|
+
role: args.role,
|
|
66
|
+
attempt: args.attempt,
|
|
67
|
+
outcome: args.outcome,
|
|
68
|
+
provider_request_id: providerRequestId(args.providerMessage),
|
|
69
|
+
provider_input_tokens: nonnegativeTokenCount(usage?.input),
|
|
70
|
+
provider_cache_read_tokens: nonnegativeTokenCount(usage?.cacheRead),
|
|
71
|
+
provider_cache_write_tokens: nonnegativeTokenCount(usage?.cacheWrite),
|
|
72
|
+
provider_output_tokens: nonnegativeTokenCount(usage?.output),
|
|
73
|
+
provider_input_cost_usd: costs?.input ?? null,
|
|
74
|
+
provider_cache_read_cost_usd: costs?.cacheRead ?? null,
|
|
75
|
+
provider_cache_write_cost_usd: costs?.cacheWrite ?? null,
|
|
76
|
+
provider_output_cost_usd: costs?.output ?? null,
|
|
77
|
+
provider_cost_usd: costs?.total ?? null,
|
|
78
|
+
provider_pricing_known: providerPricingKnown,
|
|
79
|
+
usage_estimated: usage !== null && usage.estimated === true,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
function providerRequestId(message) {
|
|
83
|
+
return message !== null &&
|
|
84
|
+
typeof message.responseId === "string" &&
|
|
85
|
+
message.responseId.length > 0
|
|
86
|
+
? message.responseId
|
|
87
|
+
: null;
|
|
88
|
+
}
|
|
89
|
+
function nonnegativeMoney(value) {
|
|
90
|
+
const number = finiteNumber(value);
|
|
91
|
+
return number === null || number < 0 ? null : String(number);
|
|
92
|
+
}
|
|
93
|
+
function nonnegativeTokenCount(value) {
|
|
94
|
+
const count = tokenCount(value);
|
|
95
|
+
return count === null || count < 0 ? null : count;
|
|
96
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export declare function tokenCount(value: unknown): number | null;
|
|
2
|
+
export declare function finiteNumber(value: unknown): number | null;
|
|
3
|
+
export declare function costString(value: unknown): string | null;
|
|
4
|
+
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export function tokenCount(value) {
|
|
2
|
+
return typeof value === "number" && Number.isFinite(value) ? Math.trunc(value) : null;
|
|
3
|
+
}
|
|
4
|
+
export function finiteNumber(value) {
|
|
5
|
+
return typeof value === "number" && Number.isFinite(value) ? value : null;
|
|
6
|
+
}
|
|
7
|
+
export function costString(value) {
|
|
8
|
+
return typeof value === "number" && Number.isFinite(value) ? String(value) : null;
|
|
9
|
+
}
|
|
10
|
+
export function isRecord(value) {
|
|
11
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
12
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { RoutingBillingProviderAttemptFacts } from "./billing_finalization.js";
|
|
2
|
+
/** Model reference cost only, including retries; unknown/estimated usage is never free. */
|
|
3
|
+
export declare function modelCost(attempts: readonly RoutingBillingProviderAttemptFacts[]): number | null;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Model reference cost only, including retries; unknown/estimated usage is never free. */
|
|
2
|
+
export function modelCost(attempts) {
|
|
3
|
+
if (attempts.length === 0)
|
|
4
|
+
return null;
|
|
5
|
+
let total = 0;
|
|
6
|
+
for (const attempt of attempts) {
|
|
7
|
+
if (!attempt.provider_pricing_known || attempt.usage_estimated || attempt.provider_cost_usd === null)
|
|
8
|
+
return null;
|
|
9
|
+
const cost = Number(attempt.provider_cost_usd);
|
|
10
|
+
if (!Number.isFinite(cost) || cost < 0)
|
|
11
|
+
return null;
|
|
12
|
+
total += cost;
|
|
13
|
+
}
|
|
14
|
+
return Number.isFinite(total) ? total : null;
|
|
15
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type ReasoningEffort, type RouterPrefixHit, type RoutingDecision } from "@mupt-ai/dari-router/policy-engine";
|
|
2
|
+
import type { InteractionOutput, InteractionRequest, InteractionUsage, ProviderIdentity } from "../interaction/types.js";
|
|
3
|
+
import { type PrefixStateWrite } from "../platform/platform.js";
|
|
4
|
+
export type CompletedPrefixHit = Omit<RouterPrefixHit, "updated_at"> & {
|
|
5
|
+
lease_depth: number;
|
|
6
|
+
};
|
|
7
|
+
export declare function buildCompletedPrefixHit(args: {
|
|
8
|
+
request: InteractionRequest;
|
|
9
|
+
output: InteractionOutput;
|
|
10
|
+
model: string;
|
|
11
|
+
nextModel: string | null;
|
|
12
|
+
nextReasoningEffort: ReasoningEffort | null;
|
|
13
|
+
reasoningBucket: ReasoningEffort | null;
|
|
14
|
+
leaseTurnsRemaining: number | null;
|
|
15
|
+
reason: string | null;
|
|
16
|
+
chain: string[];
|
|
17
|
+
looseChain: readonly string[];
|
|
18
|
+
target: ProviderIdentity;
|
|
19
|
+
conversationId: string;
|
|
20
|
+
leaseDepth: number;
|
|
21
|
+
providerBlockDepth: number;
|
|
22
|
+
fingerprints: {
|
|
23
|
+
tool_choice_fp: string;
|
|
24
|
+
response_format_fp: string;
|
|
25
|
+
};
|
|
26
|
+
usage: InteractionUsage;
|
|
27
|
+
benchmarkReplayDepth: number;
|
|
28
|
+
}): CompletedPrefixHit | null;
|
|
29
|
+
export declare function leaseCountdownForPrefix(args: {
|
|
30
|
+
served: RoutingDecision | null;
|
|
31
|
+
next: RoutingDecision | null;
|
|
32
|
+
fallbackServed?: boolean;
|
|
33
|
+
}): number | null;
|
|
34
|
+
export declare function reportPendingLease(args: {
|
|
35
|
+
routerId: string;
|
|
36
|
+
conversationId: string;
|
|
37
|
+
decidedAtDepth: number;
|
|
38
|
+
lease: {
|
|
39
|
+
model: string;
|
|
40
|
+
reasoningEffort: string;
|
|
41
|
+
turns: number;
|
|
42
|
+
reason: string;
|
|
43
|
+
outputText: string | null;
|
|
44
|
+
} | null;
|
|
45
|
+
}): Promise<void>;
|
|
46
|
+
export declare function prefixEntryForIngest(hit: CompletedPrefixHit): Record<string, unknown>;
|
|
47
|
+
export declare function reportPrefixState(write: PrefixStateWrite): Promise<void>;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { extendInteractionChain, extendInteractionLooseChain, } from "../context/interaction_fingerprint.js";
|
|
2
|
+
import { gatewayPlatform } from "../platform/platform.js";
|
|
3
|
+
import { tokenCount } from "./ingest_values.js";
|
|
4
|
+
export function buildCompletedPrefixHit(args) {
|
|
5
|
+
if (args.chain.length === 0)
|
|
6
|
+
return null;
|
|
7
|
+
const outputExtension = extendOutputPrefix({
|
|
8
|
+
request: args.request,
|
|
9
|
+
output: args.output,
|
|
10
|
+
chain: args.chain,
|
|
11
|
+
target: args.target,
|
|
12
|
+
});
|
|
13
|
+
const hash = outputExtension.at(-1);
|
|
14
|
+
if (hash === undefined)
|
|
15
|
+
return null;
|
|
16
|
+
const inputTokens = tokenCount(args.usage?.input) ?? 0;
|
|
17
|
+
const cacheReadTokens = tokenCount(args.usage?.cacheRead) ?? 0;
|
|
18
|
+
const cacheWriteTokens = tokenCount(args.usage?.cacheWrite) ?? 0;
|
|
19
|
+
return {
|
|
20
|
+
hash,
|
|
21
|
+
loose_hash: looseOutputHash(args.looseChain, args.output, args.request.sourceProtocol),
|
|
22
|
+
conversation_id: args.conversationId,
|
|
23
|
+
model: args.model,
|
|
24
|
+
provider: args.target.provider,
|
|
25
|
+
next_model: args.nextModel,
|
|
26
|
+
next_reasoning_effort: args.nextReasoningEffort,
|
|
27
|
+
message_depth: args.chain.length + outputExtension.length,
|
|
28
|
+
lease_depth: args.leaseDepth,
|
|
29
|
+
provider_block_depth: args.providerBlockDepth,
|
|
30
|
+
prompt_anchor_depth: args.chain.length,
|
|
31
|
+
input_tokens: inputTokens,
|
|
32
|
+
cache_read_tokens: cacheReadTokens,
|
|
33
|
+
cache_write_tokens: cacheWriteTokens,
|
|
34
|
+
prompt_tokens: inputTokens + cacheReadTokens + cacheWriteTokens,
|
|
35
|
+
benchmark_replay_depth: args.benchmarkReplayDepth,
|
|
36
|
+
tool_choice_fp: args.fingerprints.tool_choice_fp,
|
|
37
|
+
response_format_fp: args.fingerprints.response_format_fp,
|
|
38
|
+
reasoning_bucket: args.reasoningBucket,
|
|
39
|
+
lease_turns_remaining: args.leaseTurnsRemaining,
|
|
40
|
+
reason: args.reason,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
export function leaseCountdownForPrefix(args) {
|
|
44
|
+
const granted = args.fallbackServed === true ? args.served : args.next ?? args.served;
|
|
45
|
+
const remaining = granted?.leaseTurnsRemaining;
|
|
46
|
+
if (remaining === undefined || remaining === null)
|
|
47
|
+
return null;
|
|
48
|
+
if (args.fallbackServed === true)
|
|
49
|
+
return remaining;
|
|
50
|
+
const servedGrantedPair = args.next === null ||
|
|
51
|
+
(args.served !== null &&
|
|
52
|
+
args.served.selectedModel === args.next.selectedModel &&
|
|
53
|
+
args.served.reasoningEffort === args.next.reasoningEffort);
|
|
54
|
+
return servedGrantedPair ? remaining : remaining + 1;
|
|
55
|
+
}
|
|
56
|
+
export async function reportPendingLease(args) {
|
|
57
|
+
try {
|
|
58
|
+
await gatewayPlatform().writePendingLease({
|
|
59
|
+
router_id: args.routerId,
|
|
60
|
+
conversation_id: args.conversationId,
|
|
61
|
+
decided_at_depth: args.decidedAtDepth,
|
|
62
|
+
pending_lease: args.lease === null
|
|
63
|
+
? null
|
|
64
|
+
: {
|
|
65
|
+
model: args.lease.model,
|
|
66
|
+
reasoning_effort: args.lease.reasoningEffort,
|
|
67
|
+
turns: args.lease.turns,
|
|
68
|
+
reason: args.lease.reason,
|
|
69
|
+
output_text: args.lease.outputText,
|
|
70
|
+
},
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
console.error("pending-lease write failed", error);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
export function prefixEntryForIngest(hit) {
|
|
78
|
+
const { hash, loose_hash, ...entry } = hit;
|
|
79
|
+
return { prefix_hash: hash, loose_prefix_hash: loose_hash ?? null, ...entry };
|
|
80
|
+
}
|
|
81
|
+
// Loose-tier hash for the entry: the request's loose chain extended with the
|
|
82
|
+
// reply. Best-effort — a null loose hash only forfeits echo-mutation
|
|
83
|
+
// tolerance for this one turn, never the entry itself.
|
|
84
|
+
function looseOutputHash(looseChain, output, sourceProtocol) {
|
|
85
|
+
const lastHash = looseChain[looseChain.length - 1];
|
|
86
|
+
if (lastHash === undefined)
|
|
87
|
+
return null;
|
|
88
|
+
try {
|
|
89
|
+
return extendInteractionLooseChain(lastHash, output, sourceProtocol).at(-1) ?? null;
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
console.error("loose prefix extension failed", error);
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
function extendOutputPrefix(args) {
|
|
97
|
+
const lastHash = args.chain[args.chain.length - 1];
|
|
98
|
+
return extendInteractionChain(lastHash, args.output, args.target, {
|
|
99
|
+
includeItemIds: carriesItemIds(args.request),
|
|
100
|
+
sourceProtocol: args.request.sourceProtocol,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
// Codex strips provider-returned item ids from stateless HTTP requests unless
|
|
104
|
+
// its ItemIds feature is active. Existing input ids are the only request-side
|
|
105
|
+
// evidence that newly returned ids will be carried into the next turn.
|
|
106
|
+
function carriesItemIds(request) {
|
|
107
|
+
return request.items.some((item) => "id" in item && typeof item.id === "string" && item.id.length > 0);
|
|
108
|
+
}
|
|
109
|
+
export async function reportPrefixState(write) {
|
|
110
|
+
try {
|
|
111
|
+
await gatewayPlatform().writePrefixState(write);
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
console.error("routing prefix-state write failed", error);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { type CandidateCostEstimate, type CandidatePruningAudit, type ChainHits, type PrefixHit, type PricingLookup, type RoutingDecision, type RoutingStrategy } from "@mupt-ai/dari-router/policy-engine";
|
|
2
|
+
import type { ImageCapabilityPrunedModel } from "../context/routing_context.js";
|
|
3
|
+
import { type InteractionRequest, type ProviderIdentity } from "../interaction/types.js";
|
|
4
|
+
import { type RequestTags } from "../platform/platform.js";
|
|
5
|
+
import type { ProviderAttemptRecord, FrozenProviderTerminal, ReportableProviderOutcome } from "../runtime/runtime_reporter.js";
|
|
6
|
+
import { type SelectorRun } from "../strategies/routing.js";
|
|
7
|
+
import type { ResolvedRouter } from "../types.js";
|
|
8
|
+
import type { HarnessConversationIdentity } from "../runtime/harness_identity/index.js";
|
|
9
|
+
import { type RoutingBillingFinalization } from "./billing_finalization.js";
|
|
10
|
+
export type ReportedCandidatePruning = (CandidatePruningAudit & {
|
|
11
|
+
capability_pruned_models?: ImageCapabilityPrunedModel[];
|
|
12
|
+
}) | {
|
|
13
|
+
capability_pruned_models: ImageCapabilityPrunedModel[];
|
|
14
|
+
};
|
|
15
|
+
export declare class RequestReporter {
|
|
16
|
+
private readonly args;
|
|
17
|
+
private selectorRun;
|
|
18
|
+
private selectorTrace;
|
|
19
|
+
private adoptedSelectorOutput;
|
|
20
|
+
private selectorOutputAccepted;
|
|
21
|
+
private decision;
|
|
22
|
+
private nextDecision;
|
|
23
|
+
private fallbackDecision;
|
|
24
|
+
private providerAttempts;
|
|
25
|
+
private billingProviderAttempts;
|
|
26
|
+
private decisionDetails;
|
|
27
|
+
private reported;
|
|
28
|
+
private terminal;
|
|
29
|
+
private prefixStatePromise;
|
|
30
|
+
constructor(args: {
|
|
31
|
+
requestId: string;
|
|
32
|
+
clientRequestId: string | null;
|
|
33
|
+
tags: RequestTags;
|
|
34
|
+
credentials: ResolvedRouter;
|
|
35
|
+
routerId: string;
|
|
36
|
+
interaction: InteractionRequest;
|
|
37
|
+
harnessConversationIdentity?: HarnessConversationIdentity;
|
|
38
|
+
leaseDepth: number;
|
|
39
|
+
providerBlockDepthFor: (model: string) => number;
|
|
40
|
+
zdr: boolean;
|
|
41
|
+
strategy: RoutingStrategy;
|
|
42
|
+
receivedAt: Date;
|
|
43
|
+
startedMs: number;
|
|
44
|
+
conversationId: string;
|
|
45
|
+
isNewConversation: boolean;
|
|
46
|
+
agentSessionId?: string;
|
|
47
|
+
identityMatchDepth: number | null;
|
|
48
|
+
identityHit?: PrefixHit;
|
|
49
|
+
hits: ChainHits;
|
|
50
|
+
costEstimates: CandidateCostEstimate[];
|
|
51
|
+
pruning: ReportedCandidatePruning | null;
|
|
52
|
+
pricing: PricingLookup | null;
|
|
53
|
+
chainByModel: ReadonlyMap<string, string[]>;
|
|
54
|
+
looseChain: readonly string[];
|
|
55
|
+
targetsByModel: ReadonlyMap<string, ProviderIdentity>;
|
|
56
|
+
fingerprints: {
|
|
57
|
+
tool_choice_fp: string;
|
|
58
|
+
response_format_fp: string;
|
|
59
|
+
};
|
|
60
|
+
billingFinalization: RoutingBillingFinalization;
|
|
61
|
+
});
|
|
62
|
+
attachSelectorRun(run: SelectorRun): void;
|
|
63
|
+
attachSpeculativeSelectorRun(run: SelectorRun, servingDecision: RoutingDecision): void;
|
|
64
|
+
attachDecision(decision: RoutingDecision): void;
|
|
65
|
+
attachFallbackDecision(decision: RoutingDecision | undefined): void;
|
|
66
|
+
attachServingDecision(decision: RoutingDecision): void;
|
|
67
|
+
recordProviderAttempt(attempt: ProviderAttemptRecord): void;
|
|
68
|
+
modelCost(attempt?: ProviderAttemptRecord): number | null;
|
|
69
|
+
private billingFacts;
|
|
70
|
+
attachAdoptedSelectorOutput(adopted: {
|
|
71
|
+
outputText: string | null;
|
|
72
|
+
reason: string;
|
|
73
|
+
candidates: readonly {
|
|
74
|
+
model: string;
|
|
75
|
+
reasoningEffort: string;
|
|
76
|
+
}[];
|
|
77
|
+
}): void;
|
|
78
|
+
attachDecisionDetails(details: Record<string, unknown>): void;
|
|
79
|
+
waitForPrefixEntryWrite(): Promise<void>;
|
|
80
|
+
freezeProviderTerminal(args: ReportableProviderOutcome): FrozenProviderTerminal;
|
|
81
|
+
reportSelectorFailure(error: unknown): void;
|
|
82
|
+
freezeFailure(error: unknown): FrozenProviderTerminal;
|
|
83
|
+
private attachFailedSelectorTrace;
|
|
84
|
+
private pricingKnown;
|
|
85
|
+
private freezeTerminal;
|
|
86
|
+
private registerBilling;
|
|
87
|
+
private send;
|
|
88
|
+
}
|