experiential 0.4.0__py3-none-any.whl
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.
- exp/__init__.py +262 -0
- exp/__main__.py +11 -0
- exp/cli/__init__.py +5 -0
- exp/cli/app.py +50 -0
- exp/cli/build/__init__.py +1 -0
- exp/cli/build/app.py +966 -0
- exp/cli/build/cost.py +77 -0
- exp/cli/build/wizard.py +893 -0
- exp/cli/build/wizard_screens.py +142 -0
- exp/cli/config/__init__.py +1 -0
- exp/cli/config/app.py +167 -0
- exp/cli/gateway/__init__.py +1 -0
- exp/cli/gateway/alias.py +348 -0
- exp/cli/gateway/app.py +498 -0
- exp/cli/gateway/budget.py +185 -0
- exp/cli/gateway/compatibility.py +121 -0
- exp/cli/gateway/key_output.py +532 -0
- exp/cli/gateway/pool.py +197 -0
- exp/cli/gateway/provider.py +166 -0
- exp/cli/gateway/receipts.py +74 -0
- exp/cli/gateway/setup.py +114 -0
- exp/cli/judge/__init__.py +1 -0
- exp/cli/judge/app.py +545 -0
- exp/cli/judge/review.py +675 -0
- exp/cli/judge/rubric.py +261 -0
- exp/cli/judge/trace_viewer.py +581 -0
- exp/cli/judge/transcript.py +298 -0
- exp/cli/optimize/__init__.py +1 -0
- exp/cli/optimize/app.py +28 -0
- exp/cli/optimize/model.py +613 -0
- exp/cli/optimize/router.py +219 -0
- exp/cli/optimize/router_candidates.py +524 -0
- exp/cli/providers/__init__.py +1 -0
- exp/cli/providers/model_picker.py +830 -0
- exp/cli/providers/provider_picker.py +718 -0
- exp/cli/providers/setup.py +780 -0
- exp/cli/run/__init__.py +1 -0
- exp/cli/run/app.py +236 -0
- exp/cli/shared/__init__.py +1 -0
- exp/cli/shared/consent.py +299 -0
- exp/cli/shared/defer.py +101 -0
- exp/cli/shared/options.py +22 -0
- exp/cli/shared/picker.py +814 -0
- exp/cli/shared/picker_view.py +277 -0
- exp/cli/shared/progress.py +237 -0
- exp/cli/shared/theme.py +31 -0
- exp/common/__init__.py +1 -0
- exp/common/config/__init__.py +23 -0
- exp/common/config/dotenv.py +31 -0
- exp/common/config/paths.py +5 -0
- exp/common/config/settings.py +192 -0
- exp/common/core/artifacts.py +435 -0
- exp/common/core/files.py +181 -0
- exp/common/core/hashing.py +35 -0
- exp/common/core/locks.py +97 -0
- exp/common/core/money.py +84 -0
- exp/common/core/text.py +32 -0
- exp/common/core/union_find.py +59 -0
- exp/common/evaluations/__init__.py +46 -0
- exp/common/evaluations/build.py +532 -0
- exp/common/evaluations/dataset.py +291 -0
- exp/common/evaluations/evidence.py +229 -0
- exp/common/evaluations/fidelity.py +322 -0
- exp/common/evaluations/plan.py +144 -0
- exp/common/evaluations/planning.py +487 -0
- exp/common/judging/__init__.py +111 -0
- exp/common/judging/calibration.py +961 -0
- exp/common/judging/calibration_assembly.py +65 -0
- exp/common/judging/calibration_contracts.py +170 -0
- exp/common/judging/calibration_metrics.py +387 -0
- exp/common/judging/calibration_provenance.py +103 -0
- exp/common/judging/display.py +95 -0
- exp/common/judging/evidence.py +141 -0
- exp/common/judging/interface.py +35 -0
- exp/common/judging/judgment.py +89 -0
- exp/common/judging/labels.py +581 -0
- exp/common/judging/lineage.py +149 -0
- exp/common/judging/lm.py +530 -0
- exp/common/judging/prompts.py +41 -0
- exp/common/judging/proposal.py +215 -0
- exp/common/judging/provenance.py +137 -0
- exp/common/judging/review.py +692 -0
- exp/common/judging/risk_acceptance.py +222 -0
- exp/common/judging/rubric.py +373 -0
- exp/common/models/__init__.py +185 -0
- exp/common/models/catalog.py +551 -0
- exp/common/models/client.py +58 -0
- exp/common/models/connection_authoring.py +86 -0
- exp/common/models/discovery.py +267 -0
- exp/common/models/gateway_catalog.py +225 -0
- exp/common/models/known_models.py +573 -0
- exp/common/models/model.py +461 -0
- exp/common/models/pricing.py +548 -0
- exp/common/models/router_candidates.py +380 -0
- exp/common/models/setup.py +352 -0
- exp/common/models/structured.py +36 -0
- exp/common/observability/__init__.py +15 -0
- exp/common/observability/telemetry.py +427 -0
- exp/common/progress.py +66 -0
- exp/common/project/__init__.py +142 -0
- exp/common/project/bundle.py +932 -0
- exp/common/project/catalog.py +141 -0
- exp/common/project/events.py +94 -0
- exp/common/project/hosted_state.py +308 -0
- exp/common/project/manifests.py +73 -0
- exp/common/project/paths.py +119 -0
- exp/common/project/project.py +383 -0
- exp/common/project/store.py +990 -0
- exp/common/release_revision.py +48 -0
- exp/common/rollouts/__init__.py +47 -0
- exp/common/rollouts/artifact.py +370 -0
- exp/common/rollouts/dispatch_failures.py +87 -0
- exp/common/rollouts/otel.py +82 -0
- exp/common/routing/__init__.py +40 -0
- exp/common/routing/bank.py +374 -0
- exp/common/routing/decision.py +371 -0
- exp/common/routing/embeddings.py +559 -0
- exp/common/routing/features.py +120 -0
- exp/common/routing/policy.py +133 -0
- exp/common/tasks/__init__.py +12 -0
- exp/common/tasks/store.py +68 -0
- exp/common/tasks/task.py +90 -0
- exp/common/traces/__init__.py +14 -0
- exp/common/traces/store.py +134 -0
- exp/common/traces/trace.py +135 -0
- exp/optimize/__init__.py +1 -0
- exp/optimize/model/__init__.py +1 -0
- exp/optimize/model/sft/__init__.py +145 -0
- exp/optimize/model/sft/automatic.py +797 -0
- exp/optimize/model/sft/builder.py +868 -0
- exp/optimize/model/sft/composition.py +948 -0
- exp/optimize/model/sft/contracts.py +511 -0
- exp/optimize/model/sft/provider_resources.py +39 -0
- exp/optimize/model/sft/rendering.py +89 -0
- exp/optimize/model/sft/run_manifest.py +814 -0
- exp/optimize/model/sft/runtime_source.py +276 -0
- exp/optimize/model/sft/selection.py +386 -0
- exp/optimize/model/sft/sources.py +568 -0
- exp/optimize/model/sft/tinker.py +407 -0
- exp/optimize/model/sft/training.py +865 -0
- exp/optimize/model/sft/training_contracts.py +414 -0
- exp/optimize/model/sft/training_runtime.py +221 -0
- exp/optimize/router/__init__.py +150 -0
- exp/optimize/router/activation.py +159 -0
- exp/optimize/router/attempt_authority.py +729 -0
- exp/optimize/router/automatic/__init__.py +1 -0
- exp/optimize/router/automatic/artifacts.py +340 -0
- exp/optimize/router/automatic/attribution.py +578 -0
- exp/optimize/router/automatic/execution_contract.py +415 -0
- exp/optimize/router/automatic/judge.py +350 -0
- exp/optimize/router/automatic/judge_provenance.py +325 -0
- exp/optimize/router/automatic/preflight.py +793 -0
- exp/optimize/router/automatic/provisional.py +471 -0
- exp/optimize/router/automatic/replay.py +646 -0
- exp/optimize/router/automatic/reservations.py +751 -0
- exp/optimize/router/automatic/service.py +738 -0
- exp/optimize/router/composition.py +759 -0
- exp/optimize/router/errors.py +32 -0
- exp/optimize/router/evaluation/__init__.py +1 -0
- exp/optimize/router/evaluation/build.py +123 -0
- exp/optimize/router/evaluation/setup.py +50 -0
- exp/optimize/router/evaluation/simulation_spec.py +91 -0
- exp/optimize/router/evaluation/spend.py +199 -0
- exp/optimize/router/fit/__init__.py +1 -0
- exp/optimize/router/fit/optimizer.py +910 -0
- exp/optimize/router/fit/report.py +640 -0
- exp/optimize/router/fit/spec.py +81 -0
- exp/optimize/router/fit/workflow.py +320 -0
- exp/optimize/router/hosted.py +944 -0
- exp/optimize/router/hosted_preflight.py +638 -0
- exp/optimize/router/hosted_spend.py +285 -0
- exp/optimize/router/hosted_stages.py +149 -0
- exp/optimize/router/hosted_verification.py +719 -0
- exp/optimize/router/judging/__init__.py +1 -0
- exp/optimize/router/judging/artifacts.py +940 -0
- exp/optimize/router/judging/contracts.py +932 -0
- exp/optimize/router/judging/labels.py +207 -0
- exp/optimize/router/judging/pricing.py +103 -0
- exp/optimize/router/judging/protocol.py +777 -0
- exp/optimize/router/judging/provisional.py +108 -0
- exp/optimize/router/judging/review.py +954 -0
- exp/optimize/router/judging/selection.py +179 -0
- exp/optimize/router/judging/service.py +920 -0
- exp/optimize/router/judging/setup_store.py +83 -0
- exp/optimize/router/judging/template_bind.py +112 -0
- exp/optimize/router/judgment_budget.py +866 -0
- exp/optimize/router/spend.py +353 -0
- exp/runtime/agents/__init__.py +83 -0
- exp/runtime/agents/chat.py +252 -0
- exp/runtime/agents/factory.py +145 -0
- exp/runtime/agents/interface.py +97 -0
- exp/runtime/agents/lifecycle.py +230 -0
- exp/runtime/agents/pi.py +841 -0
- exp/runtime/environments/__init__.py +49 -0
- exp/runtime/environments/harbor.py +562 -0
- exp/runtime/environments/interface.py +54 -0
- exp/runtime/environments/local.py +998 -0
- exp/runtime/environments/local_exec_gate.py +27 -0
- exp/runtime/environments/sandbox_ledger.py +272 -0
- exp/runtime/gateway/__init__.py +203 -0
- exp/runtime/gateway/aggregation.py +49 -0
- exp/runtime/gateway/auth.py +241 -0
- exp/runtime/gateway/budgets.py +664 -0
- exp/runtime/gateway/catalog_authority.py +446 -0
- exp/runtime/gateway/composition.py +235 -0
- exp/runtime/gateway/contracts.py +341 -0
- exp/runtime/gateway/execution.py +891 -0
- exp/runtime/gateway/health.py +143 -0
- exp/runtime/gateway/interfaces.py +145 -0
- exp/runtime/gateway/ledger.py +806 -0
- exp/runtime/gateway/lifecycle.py +554 -0
- exp/runtime/gateway/management.py +791 -0
- exp/runtime/gateway/platform.py +846 -0
- exp/runtime/gateway/project_activation.py +310 -0
- exp/runtime/gateway/project_alias.py +168 -0
- exp/runtime/gateway/provider_certification.py +277 -0
- exp/runtime/gateway/routing.py +342 -0
- exp/runtime/gateway/secrets.py +45 -0
- exp/runtime/gateway/service.py +911 -0
- exp/runtime/gateway/sqlite/__init__.py +5 -0
- exp/runtime/gateway/sqlite/alias_activation.py +166 -0
- exp/runtime/gateway/sqlite/key_delivery.py +158 -0
- exp/runtime/gateway/sqlite/migrations.py +694 -0
- exp/runtime/gateway/sqlite/platform.py +988 -0
- exp/runtime/gateway/sqlite/platform_records.py +224 -0
- exp/runtime/gateway/sqlite/provider_authority.py +327 -0
- exp/runtime/gateway/sqlite/provider_store.py +161 -0
- exp/runtime/gateway/sqlite/store.py +975 -0
- exp/runtime/gateway/usage.py +175 -0
- exp/runtime/models/__init__.py +18 -0
- exp/runtime/models/credentials.py +42 -0
- exp/runtime/models/preflight.py +83 -0
- exp/runtime/models/providers/__init__.py +72 -0
- exp/runtime/models/providers/anthropic.py +308 -0
- exp/runtime/models/providers/async_transport.py +674 -0
- exp/runtime/models/providers/azure.py +179 -0
- exp/runtime/models/providers/base.py +304 -0
- exp/runtime/models/providers/bedrock.py +737 -0
- exp/runtime/models/providers/bedrock_streaming.py +461 -0
- exp/runtime/models/providers/errors.py +249 -0
- exp/runtime/models/providers/gemini.py +354 -0
- exp/runtime/models/providers/gemini_streaming.py +241 -0
- exp/runtime/models/providers/listing.py +323 -0
- exp/runtime/models/providers/openai.py +364 -0
- exp/runtime/models/providers/openai_compatible.py +395 -0
- exp/runtime/models/providers/protocol.py +221 -0
- exp/runtime/models/providers/stream_attempts.py +128 -0
- exp/runtime/models/providers/streaming.py +970 -0
- exp/runtime/models/providers/streaming_requests.py +310 -0
- exp/runtime/models/providers/streaming_usage.py +85 -0
- exp/runtime/models/providers/tinker_sampling.py +334 -0
- exp/runtime/models/providers/transport.py +434 -0
- exp/runtime/models/registry.py +415 -0
- exp/runtime/openai_protocol/__init__.py +21 -0
- exp/runtime/openai_protocol/errors.py +166 -0
- exp/runtime/openai_protocol/headers.py +127 -0
- exp/runtime/openai_protocol/manifest.py +147 -0
- exp/runtime/openai_protocol/model_adapter.py +137 -0
- exp/runtime/openai_protocol/requests.py +559 -0
- exp/runtime/openai_protocol/response.py +191 -0
- exp/runtime/openai_protocol/state.py +533 -0
- exp/runtime/openai_protocol/streaming.py +727 -0
- exp/runtime/router/__init__.py +123 -0
- exp/runtime/router/application.py +170 -0
- exp/runtime/router/capability.py +219 -0
- exp/runtime/router/completion.py +149 -0
- exp/runtime/router/economics.py +217 -0
- exp/runtime/router/errors.py +5 -0
- exp/runtime/router/journal.py +977 -0
- exp/runtime/router/journal_handoff.py +47 -0
- exp/runtime/router/journal_io.py +77 -0
- exp/runtime/router/journal_service.py +379 -0
- exp/runtime/router/journal_spend.py +350 -0
- exp/runtime/router/journal_validation.py +417 -0
- exp/runtime/router/runtime.py +926 -0
- exp/runtime/router/runtime_selection.py +133 -0
- exp/runtime/router/runtime_support.py +453 -0
- exp/runtime/router/snapshot.py +889 -0
- exp/simulation/__init__.py +39 -0
- exp/simulation/build.py +670 -0
- exp/simulation/comparison.py +782 -0
- exp/simulation/engines/__init__.py +11 -0
- exp/simulation/engines/clock.py +32 -0
- exp/simulation/engines/sandbox.py +916 -0
- exp/simulation/engines/sandbox_bindings.py +243 -0
- exp/simulation/engines/sandbox_recording.py +748 -0
- exp/simulation/engines/text/__init__.py +29 -0
- exp/simulation/engines/text/artifact_set.py +119 -0
- exp/simulation/engines/text/bindings.py +260 -0
- exp/simulation/engines/text/cell_progress.py +54 -0
- exp/simulation/engines/text/environment.py +66 -0
- exp/simulation/engines/text/episode_loop.py +111 -0
- exp/simulation/engines/text/errors.py +13 -0
- exp/simulation/engines/text/grounded_rollout.py +141 -0
- exp/simulation/engines/text/grounding.py +336 -0
- exp/simulation/engines/text/leases.py +701 -0
- exp/simulation/engines/text/prompt.py +172 -0
- exp/simulation/engines/text/recording.py +890 -0
- exp/simulation/engines/text/redaction.py +261 -0
- exp/simulation/engines/text/resume.py +229 -0
- exp/simulation/engines/text/rollout_support.py +170 -0
- exp/simulation/engines/text/simulator.py +977 -0
- exp/simulation/engines/text/spec_persistence.py +60 -0
- exp/simulation/ingest/__init__.py +64 -0
- exp/simulation/ingest/braintrust.py +260 -0
- exp/simulation/ingest/chat_json.py +318 -0
- exp/simulation/ingest/dataset.py +376 -0
- exp/simulation/ingest/environment_capture.py +415 -0
- exp/simulation/ingest/json_strict.py +31 -0
- exp/simulation/ingest/langfuse.py +355 -0
- exp/simulation/ingest/langsmith.py +233 -0
- exp/simulation/ingest/mastra.py +237 -0
- exp/simulation/ingest/model_identity.py +279 -0
- exp/simulation/ingest/otel_genai.py +297 -0
- exp/simulation/ingest/otlp.py +740 -0
- exp/simulation/ingest/phoenix.py +574 -0
- exp/simulation/ingest/posthog.py +16 -0
- exp/simulation/ingest/posthog_canonical.py +620 -0
- exp/simulation/ingest/posthog_pull.py +214 -0
- exp/simulation/ingest/sources.py +98 -0
- exp/simulation/ingest/testdata/sample_otlp.json +60 -0
- exp/simulation/ingest/testdata/sample_spans.jsonl +3 -0
- exp/simulation/ingest/trace_extensions.py +355 -0
- exp/simulation/ingest/vendor_observations.py +390 -0
- exp/simulation/ingest/vendor_records.py +434 -0
- exp/simulation/ingest/vendor_source.py +155 -0
- exp/simulation/ingest/vendor_trace.py +669 -0
- exp/simulation/mining/__init__.py +1 -0
- exp/simulation/mining/bindings.py +411 -0
- exp/simulation/mining/cleanup.py +323 -0
- exp/simulation/mining/coverage.py +359 -0
- exp/simulation/mining/deduplicate.py +500 -0
- exp/simulation/mining/descriptors.py +315 -0
- exp/simulation/mining/lineage.py +126 -0
- exp/simulation/mining/select.py +490 -0
- exp/simulation/mining/service.py +385 -0
- exp/simulation/orchestration/__init__.py +9 -0
- exp/simulation/orchestration/interface.py +45 -0
- exp/simulation/retrieval/__init__.py +119 -0
- exp/simulation/retrieval/build.py +265 -0
- exp/simulation/retrieval/build_inputs.py +62 -0
- exp/simulation/retrieval/contracts.py +254 -0
- exp/simulation/retrieval/embedding.py +130 -0
- exp/simulation/retrieval/refresh.py +794 -0
- exp/simulation/retrieval/refresh_dataset.py +211 -0
- exp/simulation/retrieval/retriever.py +177 -0
- exp/simulation/retrieval/runtime_stitching.py +399 -0
- exp/simulation/retrieval/store.py +212 -0
- exp/simulation/retrieval/transitions.py +305 -0
- exp/simulation/specs/__init__.py +27 -0
- exp/simulation/specs/completion.py +221 -0
- exp/simulation/specs/simulation.py +145 -0
- exp/simulation/world_model/__init__.py +91 -0
- exp/simulation/world_model/application.py +475 -0
- exp/simulation/world_model/artifact.py +193 -0
- exp/simulation/world_model/runtime.py +400 -0
- experiential-0.4.0.dist-info/METADATA +132 -0
- experiential-0.4.0.dist-info/RECORD +360 -0
- experiential-0.4.0.dist-info/WHEEL +4 -0
- experiential-0.4.0.dist-info/entry_points.txt +2 -0
exp/__init__.py
ADDED
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
"""Experiential public customer services with lazy package-root exports."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from importlib import import_module
|
|
6
|
+
from typing import TYPE_CHECKING
|
|
7
|
+
|
|
8
|
+
if TYPE_CHECKING:
|
|
9
|
+
from exp.common.evaluations import FidelityReport as FidelityReport
|
|
10
|
+
from exp.common.evaluations import (
|
|
11
|
+
build_fidelity_evaluation_plan as build_fidelity_evaluation_plan,
|
|
12
|
+
)
|
|
13
|
+
from exp.common.evaluations import build_fidelity_report as build_fidelity_report
|
|
14
|
+
from exp.common.models import BillingSource as BillingSource
|
|
15
|
+
from exp.common.models import ConnectionConfig as ConnectionConfig
|
|
16
|
+
from exp.common.models import DiscoveredModel as DiscoveredModel
|
|
17
|
+
from exp.common.models import ModelCapabilities as ModelCapabilities
|
|
18
|
+
from exp.common.models import ModelCatalog as ModelCatalog
|
|
19
|
+
from exp.common.models import ModelRecord as ModelRecord
|
|
20
|
+
from exp.common.models import ModelRoles as ModelRoles
|
|
21
|
+
from exp.common.models import ResolvedDiscoveredModel as ResolvedDiscoveredModel
|
|
22
|
+
from exp.common.models import resolve_discovered_model as resolve_discovered_model
|
|
23
|
+
from exp.common.project import ExportedProjectBundle as ExportedProjectBundle
|
|
24
|
+
from exp.common.project import ProjectBudgetConfiguration as ProjectBudgetConfiguration
|
|
25
|
+
from exp.common.project import ProjectModelConfiguration as ProjectModelConfiguration
|
|
26
|
+
from exp.common.project import ProjectProviderFreeStage as ProjectProviderFreeStage
|
|
27
|
+
from exp.common.project import ProjectRetrievalConfiguration as ProjectRetrievalConfiguration
|
|
28
|
+
from exp.common.project import ProjectStage as ProjectStage
|
|
29
|
+
from exp.common.project import ProjectStageEvent as ProjectStageEvent
|
|
30
|
+
from exp.common.project import ProjectStore as ProjectStore
|
|
31
|
+
from exp.common.project import ProjectSystemConfiguration as ProjectSystemConfiguration
|
|
32
|
+
from exp.common.project import (
|
|
33
|
+
ProjectTracePreparationSettings as ProjectTracePreparationSettings,
|
|
34
|
+
)
|
|
35
|
+
from exp.common.project import export_project_bundle as export_project_bundle
|
|
36
|
+
from exp.common.project import restore_project_bundle as restore_project_bundle
|
|
37
|
+
from exp.optimize.router.activation import load_project_router as load_project_router
|
|
38
|
+
from exp.optimize.router.activation import load_router as load_router
|
|
39
|
+
from exp.optimize.router.attempt_authority import (
|
|
40
|
+
FileHostedAttemptAuthorityStore as FileHostedAttemptAuthorityStore,
|
|
41
|
+
)
|
|
42
|
+
from exp.optimize.router.attempt_authority import (
|
|
43
|
+
HostedAttemptAuthority as HostedAttemptAuthority,
|
|
44
|
+
)
|
|
45
|
+
from exp.optimize.router.attempt_authority import (
|
|
46
|
+
HostedAttemptAuthorityStore as HostedAttemptAuthorityStore,
|
|
47
|
+
)
|
|
48
|
+
from exp.optimize.router.attempt_authority import HostedAttemptState as HostedAttemptState
|
|
49
|
+
from exp.optimize.router.attempt_authority import HostedProviderHazard as HostedProviderHazard
|
|
50
|
+
from exp.optimize.router.attempt_authority import HostedStageCommit as HostedStageCommit
|
|
51
|
+
from exp.optimize.router.attempt_authority import (
|
|
52
|
+
create_hosted_attempt_authority as create_hosted_attempt_authority,
|
|
53
|
+
)
|
|
54
|
+
from exp.optimize.router.composition import (
|
|
55
|
+
ApprovedRouterReview as ApprovedRouterReview,
|
|
56
|
+
)
|
|
57
|
+
from exp.optimize.router.composition import (
|
|
58
|
+
RouterCompositionBudget as RouterCompositionBudget,
|
|
59
|
+
)
|
|
60
|
+
from exp.optimize.router.composition import (
|
|
61
|
+
RouterCompositionResult as RouterCompositionResult,
|
|
62
|
+
)
|
|
63
|
+
from exp.optimize.router.composition import (
|
|
64
|
+
RouterEvaluationSetup as RouterEvaluationSetup,
|
|
65
|
+
)
|
|
66
|
+
from exp.optimize.router.composition import RouterWorkflowServices as RouterWorkflowServices
|
|
67
|
+
from exp.optimize.router.composition import compose_router as compose_router
|
|
68
|
+
from exp.optimize.router.fit.workflow import EvaluationInputs as EvaluationInputs
|
|
69
|
+
from exp.optimize.router.fit.workflow import RouterFitConfig as RouterFitConfig
|
|
70
|
+
from exp.optimize.router.fit.workflow import (
|
|
71
|
+
RouterFitWorkflowResult as RouterFitWorkflowResult,
|
|
72
|
+
)
|
|
73
|
+
from exp.optimize.router.fit.workflow import (
|
|
74
|
+
RouterOptimizationConfig as RouterOptimizationConfig,
|
|
75
|
+
)
|
|
76
|
+
from exp.optimize.router.fit.workflow import RouterReportConfig as RouterReportConfig
|
|
77
|
+
from exp.optimize.router.fit.workflow import RouterWorkflowResult as RouterWorkflowResult
|
|
78
|
+
from exp.optimize.router.fit.workflow import fit_router as fit_router
|
|
79
|
+
from exp.optimize.router.fit.workflow import optimize_router as optimize_router
|
|
80
|
+
from exp.optimize.router.fit.workflow import report_router as report_router
|
|
81
|
+
from exp.optimize.router.hosted import HostedRouterWorkflowError as HostedRouterWorkflowError
|
|
82
|
+
from exp.optimize.router.hosted import (
|
|
83
|
+
HostedRouterWorkflowOptions as HostedRouterWorkflowOptions,
|
|
84
|
+
)
|
|
85
|
+
from exp.optimize.router.hosted import HostedRouterWorkflowResult as HostedRouterWorkflowResult
|
|
86
|
+
from exp.optimize.router.hosted import HostedRouterWorkflowSetup as HostedRouterWorkflowSetup
|
|
87
|
+
from exp.optimize.router.hosted import HostedStageBundle as HostedStageBundle
|
|
88
|
+
from exp.optimize.router.hosted import (
|
|
89
|
+
restore_hosted_project_bundle as restore_hosted_project_bundle,
|
|
90
|
+
)
|
|
91
|
+
from exp.optimize.router.hosted import run_hosted_router_workflow as run_hosted_router_workflow
|
|
92
|
+
from exp.optimize.router.hosted_preflight import (
|
|
93
|
+
HostedRouterPreflightError as HostedRouterPreflightError,
|
|
94
|
+
)
|
|
95
|
+
from exp.optimize.router.spend import ProviderSpendComponent as ProviderSpendComponent
|
|
96
|
+
from exp.optimize.router.spend import ProviderSpendEntry as ProviderSpendEntry
|
|
97
|
+
from exp.optimize.router.spend import ProviderSpendLedger as ProviderSpendLedger
|
|
98
|
+
from exp.optimize.router.spend import ProviderSpendStatus as ProviderSpendStatus
|
|
99
|
+
from exp.runtime.gateway.composition import GatewayRuntime as GatewayRuntime
|
|
100
|
+
from exp.runtime.gateway.composition import GatewayRuntimeConfig as GatewayRuntimeConfig
|
|
101
|
+
from exp.runtime.gateway.composition import create_gateway_runtime as create_gateway_runtime
|
|
102
|
+
from exp.runtime.models import RuntimeModelCatalog as RuntimeModelCatalog
|
|
103
|
+
from exp.runtime.router.economics import (
|
|
104
|
+
BillingSourceEconomics as BillingSourceEconomics,
|
|
105
|
+
)
|
|
106
|
+
from exp.runtime.router.economics import (
|
|
107
|
+
RoutedCompletionEconomics as RoutedCompletionEconomics,
|
|
108
|
+
)
|
|
109
|
+
from exp.runtime.router.economics import (
|
|
110
|
+
RoutedProviderComponent as RoutedProviderComponent,
|
|
111
|
+
)
|
|
112
|
+
from exp.runtime.router.economics import (
|
|
113
|
+
RoutedProviderOperation as RoutedProviderOperation,
|
|
114
|
+
)
|
|
115
|
+
from exp.runtime.router.economics import (
|
|
116
|
+
RoutedSpendDisposition as RoutedSpendDisposition,
|
|
117
|
+
)
|
|
118
|
+
from exp.runtime.router.economics import RoutedSpendLedger as RoutedSpendLedger
|
|
119
|
+
from exp.runtime.router.runtime import RoutedModelResponse as RoutedModelResponse
|
|
120
|
+
from exp.runtime.router.runtime import RouterRuntime as RouterRuntime
|
|
121
|
+
from exp.simulation.build import BuildReviewReadiness as BuildReviewReadiness
|
|
122
|
+
from exp.simulation.build import ProjectBuild as ProjectBuild
|
|
123
|
+
from exp.simulation.build import TaskSetBuild as TaskSetBuild
|
|
124
|
+
from exp.simulation.build import build_project as build_project
|
|
125
|
+
from exp.simulation.build import build_task_set as build_task_set
|
|
126
|
+
from exp.simulation.build import (
|
|
127
|
+
load_project_provider_free_stage as load_project_provider_free_stage,
|
|
128
|
+
)
|
|
129
|
+
from exp.simulation.build import prepare_project_traces as prepare_project_traces
|
|
130
|
+
from exp.simulation.world_model.application import WorldModel as WorldModel
|
|
131
|
+
from exp.simulation.world_model.application import (
|
|
132
|
+
WorldModelLoadError as WorldModelLoadError,
|
|
133
|
+
)
|
|
134
|
+
from exp.simulation.world_model.application import (
|
|
135
|
+
WorldModelObservation as WorldModelObservation,
|
|
136
|
+
)
|
|
137
|
+
from exp.simulation.world_model.application import (
|
|
138
|
+
WorldModelSession as WorldModelSession,
|
|
139
|
+
)
|
|
140
|
+
from exp.simulation.world_model.application import (
|
|
141
|
+
WorldModelSessionError as WorldModelSessionError,
|
|
142
|
+
)
|
|
143
|
+
from exp.simulation.world_model.application import (
|
|
144
|
+
WorldModelSessionLimits as WorldModelSessionLimits,
|
|
145
|
+
)
|
|
146
|
+
from exp.simulation.world_model.application import load_world_model as load_world_model
|
|
147
|
+
|
|
148
|
+
_EXPORT_MODULES = {
|
|
149
|
+
"BillingSource": "exp.common.models",
|
|
150
|
+
"ConnectionConfig": "exp.common.models",
|
|
151
|
+
"DiscoveredModel": "exp.common.models",
|
|
152
|
+
"ModelCapabilities": "exp.common.models",
|
|
153
|
+
"ModelCatalog": "exp.common.models",
|
|
154
|
+
"ModelRecord": "exp.common.models",
|
|
155
|
+
"ModelRoles": "exp.common.models",
|
|
156
|
+
"ResolvedDiscoveredModel": "exp.common.models",
|
|
157
|
+
"resolve_discovered_model": "exp.common.models",
|
|
158
|
+
"RuntimeModelCatalog": "exp.runtime.models",
|
|
159
|
+
"GatewayRuntime": "exp.runtime.gateway.composition",
|
|
160
|
+
"GatewayRuntimeConfig": "exp.runtime.gateway.composition",
|
|
161
|
+
"create_gateway_runtime": "exp.runtime.gateway.composition",
|
|
162
|
+
"ExportedProjectBundle": "exp.common.project",
|
|
163
|
+
"export_project_bundle": "exp.common.project",
|
|
164
|
+
"restore_project_bundle": "exp.common.project",
|
|
165
|
+
"ProjectProviderFreeStage": "exp.common.project",
|
|
166
|
+
"ProjectBudgetConfiguration": "exp.common.project",
|
|
167
|
+
"ProjectModelConfiguration": "exp.common.project",
|
|
168
|
+
"ProjectRetrievalConfiguration": "exp.common.project",
|
|
169
|
+
"ProjectStage": "exp.common.project",
|
|
170
|
+
"ProjectStageEvent": "exp.common.project",
|
|
171
|
+
"ProjectStore": "exp.common.project",
|
|
172
|
+
"ProjectSystemConfiguration": "exp.common.project",
|
|
173
|
+
"ProjectTracePreparationSettings": "exp.common.project",
|
|
174
|
+
"BuildReviewReadiness": "exp.simulation.build",
|
|
175
|
+
"ProjectBuild": "exp.simulation.build",
|
|
176
|
+
"TaskSetBuild": "exp.simulation.build",
|
|
177
|
+
"build_project": "exp.simulation.build",
|
|
178
|
+
"build_task_set": "exp.simulation.build",
|
|
179
|
+
"load_project_provider_free_stage": "exp.simulation.build",
|
|
180
|
+
"prepare_project_traces": "exp.simulation.build",
|
|
181
|
+
"WorldModel": "exp.simulation.world_model.application",
|
|
182
|
+
"WorldModelLoadError": "exp.simulation.world_model.application",
|
|
183
|
+
"WorldModelObservation": "exp.simulation.world_model.application",
|
|
184
|
+
"WorldModelSession": "exp.simulation.world_model.application",
|
|
185
|
+
"WorldModelSessionError": "exp.simulation.world_model.application",
|
|
186
|
+
"WorldModelSessionLimits": "exp.simulation.world_model.application",
|
|
187
|
+
"load_world_model": "exp.simulation.world_model.application",
|
|
188
|
+
"FidelityReport": "exp.common.evaluations",
|
|
189
|
+
"build_fidelity_evaluation_plan": "exp.common.evaluations",
|
|
190
|
+
"build_fidelity_report": "exp.common.evaluations",
|
|
191
|
+
"EvaluationInputs": "exp.optimize.router.fit.workflow",
|
|
192
|
+
"RouterFitConfig": "exp.optimize.router.fit.workflow",
|
|
193
|
+
"RouterFitWorkflowResult": "exp.optimize.router.fit.workflow",
|
|
194
|
+
"RouterOptimizationConfig": "exp.optimize.router.fit.workflow",
|
|
195
|
+
"RouterReportConfig": "exp.optimize.router.fit.workflow",
|
|
196
|
+
"RouterWorkflowResult": "exp.optimize.router.fit.workflow",
|
|
197
|
+
"fit_router": "exp.optimize.router.fit.workflow",
|
|
198
|
+
"optimize_router": "exp.optimize.router.fit.workflow",
|
|
199
|
+
"report_router": "exp.optimize.router.fit.workflow",
|
|
200
|
+
"RouterRuntime": "exp.runtime.router.runtime",
|
|
201
|
+
"load_project_router": "exp.optimize.router.activation",
|
|
202
|
+
"load_router": "exp.optimize.router.activation",
|
|
203
|
+
"ApprovedRouterReview": "exp.optimize.router.composition",
|
|
204
|
+
"RouterCompositionBudget": "exp.optimize.router.composition",
|
|
205
|
+
"RouterCompositionResult": "exp.optimize.router.composition",
|
|
206
|
+
"RouterEvaluationSetup": "exp.optimize.router.composition",
|
|
207
|
+
"RouterWorkflowServices": "exp.optimize.router.composition",
|
|
208
|
+
"compose_router": "exp.optimize.router.composition",
|
|
209
|
+
"HostedRouterWorkflowError": "exp.optimize.router.hosted",
|
|
210
|
+
"HostedRouterWorkflowOptions": "exp.optimize.router.hosted",
|
|
211
|
+
"HostedRouterWorkflowResult": "exp.optimize.router.hosted",
|
|
212
|
+
"HostedRouterWorkflowSetup": "exp.optimize.router.hosted",
|
|
213
|
+
"HostedStageBundle": "exp.optimize.router.hosted",
|
|
214
|
+
"restore_hosted_project_bundle": "exp.optimize.router.hosted",
|
|
215
|
+
"run_hosted_router_workflow": "exp.optimize.router.hosted",
|
|
216
|
+
"FileHostedAttemptAuthorityStore": "exp.optimize.router.attempt_authority",
|
|
217
|
+
"HostedAttemptAuthority": "exp.optimize.router.attempt_authority",
|
|
218
|
+
"HostedAttemptAuthorityStore": "exp.optimize.router.attempt_authority",
|
|
219
|
+
"HostedAttemptState": "exp.optimize.router.attempt_authority",
|
|
220
|
+
"HostedProviderHazard": "exp.optimize.router.attempt_authority",
|
|
221
|
+
"HostedStageCommit": "exp.optimize.router.attempt_authority",
|
|
222
|
+
"create_hosted_attempt_authority": "exp.optimize.router.attempt_authority",
|
|
223
|
+
"HostedRouterPreflightError": "exp.optimize.router.hosted_preflight",
|
|
224
|
+
"ProviderSpendComponent": "exp.optimize.router.spend",
|
|
225
|
+
"ProviderSpendEntry": "exp.optimize.router.spend",
|
|
226
|
+
"ProviderSpendLedger": "exp.optimize.router.spend",
|
|
227
|
+
"ProviderSpendStatus": "exp.optimize.router.spend",
|
|
228
|
+
"BillingSourceEconomics": "exp.runtime.router.economics",
|
|
229
|
+
"RoutedCompletionEconomics": "exp.runtime.router.economics",
|
|
230
|
+
"RoutedProviderComponent": "exp.runtime.router.economics",
|
|
231
|
+
"RoutedProviderOperation": "exp.runtime.router.economics",
|
|
232
|
+
"RoutedSpendDisposition": "exp.runtime.router.economics",
|
|
233
|
+
"RoutedSpendLedger": "exp.runtime.router.economics",
|
|
234
|
+
"RoutedModelResponse": "exp.runtime.router.runtime",
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
__all__ = list(_EXPORT_MODULES)
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
def __getattr__(name: str) -> object:
|
|
241
|
+
"""Resolve one supported package-root service on first access.
|
|
242
|
+
|
|
243
|
+
Args:
|
|
244
|
+
name: Package attribute requested by Python.
|
|
245
|
+
|
|
246
|
+
Returns:
|
|
247
|
+
The supported public object loaded from its owning domain module.
|
|
248
|
+
|
|
249
|
+
Raises:
|
|
250
|
+
AttributeError: The name is not part of the supported public API.
|
|
251
|
+
"""
|
|
252
|
+
module_name = _EXPORT_MODULES.get(name)
|
|
253
|
+
if module_name is None:
|
|
254
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
255
|
+
value = getattr(import_module(module_name), name)
|
|
256
|
+
globals()[name] = value
|
|
257
|
+
return value
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
def __dir__() -> list[str]:
|
|
261
|
+
"""Return module globals plus supported lazy exports for introspection."""
|
|
262
|
+
return sorted(set(globals()) | set(__all__))
|
exp/__main__.py
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"""`python -m exp`: the same CLI as the `exp` console script.
|
|
2
|
+
|
|
3
|
+
Exists so a subprocess can invoke the CLI through the interpreter that imported this
|
|
4
|
+
package (`sys.executable -m exp ...`) without depending on PATH, which is what a caller
|
|
5
|
+
replaying a pinned command manifest needs.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from exp.cli import main
|
|
9
|
+
|
|
10
|
+
if __name__ == "__main__":
|
|
11
|
+
main()
|
exp/cli/__init__.py
ADDED
exp/cli/app.py
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"""Compose the supported root CLI surface."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import logging
|
|
6
|
+
|
|
7
|
+
import typer
|
|
8
|
+
|
|
9
|
+
from exp.cli.build.app import build
|
|
10
|
+
from exp.cli.config.app import config_app
|
|
11
|
+
from exp.cli.run.app import run
|
|
12
|
+
from exp.cli.shared.defer import add_deferred_typer
|
|
13
|
+
from exp.common.config import load_env_file
|
|
14
|
+
|
|
15
|
+
app = typer.Typer(
|
|
16
|
+
help="Build grounded simulations, optimize model use, and serve routers locally.",
|
|
17
|
+
no_args_is_help=True,
|
|
18
|
+
)
|
|
19
|
+
app.add_typer(config_app, name="config")
|
|
20
|
+
add_deferred_typer(
|
|
21
|
+
app,
|
|
22
|
+
name="optimize",
|
|
23
|
+
module="exp.cli.optimize.app",
|
|
24
|
+
attr="optimize_app",
|
|
25
|
+
help="Optimize supported frozen project artifacts.",
|
|
26
|
+
known_names=("router", "model"),
|
|
27
|
+
)
|
|
28
|
+
app.command("build", help="Build a reusable grounded world model from local trace evidence.")(build)
|
|
29
|
+
app.command("run", help="Run the local gateway, optionally with one project-backed alias.")(run)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def _quiet_http_logs() -> None:
|
|
33
|
+
"""Cap noisy per-request loggers at WARNING."""
|
|
34
|
+
for name in ("httpx", "httpcore", "urllib3"):
|
|
35
|
+
logging.getLogger(name).setLevel(logging.WARNING)
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def main() -> None:
|
|
39
|
+
"""Load local environment settings, quiet HTTP logs, and dispatch the CLI.
|
|
40
|
+
|
|
41
|
+
The explicit entrypoint keeps environment loading out of import time, so library imports
|
|
42
|
+
cannot mutate an operator's process environment.
|
|
43
|
+
"""
|
|
44
|
+
load_env_file()
|
|
45
|
+
_quiet_http_logs()
|
|
46
|
+
app()
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
if __name__ == "__main__":
|
|
50
|
+
main()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"""Grounded project build command modules."""
|