alpha-engine-lib 0.41.0__tar.gz → 0.42.0__tar.gz
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.
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/PKG-INFO +1 -1
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/pyproject.toml +1 -1
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/__init__.py +1 -1
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/agent_schemas.py +11 -2
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib.egg-info/PKG-INFO +1 -1
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_agent_schemas.py +27 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/README.md +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/setup.cfg +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/alerts.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/anthropic_payload.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/arcticdb.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/artifact_freshness.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/collector_results.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/cost.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/dates.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/decision_capture.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/ec2_spot.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/email_sender.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/eval_artifacts.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/locks.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/logging.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/model_pricing.yaml +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/pillars.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/pipeline_status/__init__.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/pipeline_status/read.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/pipeline_status/registry.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/pipeline_status/templates.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/preflight.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/rag/__init__.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/rag/db.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/rag/embeddings.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/rag/migrations/0001_content_tsv.sql +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/rag/rerank.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/rag/retrieval.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/rag/schema.sql +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/reconcile.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/secrets.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/sources/__init__.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/sources/protocols.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/ssm_dispatcher.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/ssm_log_capture.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/telegram.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/trading_calendar.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/transparency.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/transparency_inventory.yaml +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/universe.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib.egg-info/SOURCES.txt +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib.egg-info/dependency_links.txt +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib.egg-info/requires.txt +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib.egg-info/top_level.txt +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_alerts.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_anthropic_payload.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_arcticdb.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_artifact_freshness.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_collector_results.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_cost.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_dates.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_decision_capture.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_ec2_spot.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_email_sender.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_eval_artifacts.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_locks.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_logging.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_pillars.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_pipeline_status_read.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_pipeline_status_registry.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_pipeline_status_templates.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_preflight.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_rag.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_rag_rerank.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_rag_retrieval_hybrid.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_reconcile.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_secrets.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_sources_protocols.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_ssm_dispatcher.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_ssm_log_capture.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_telegram.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_trading_calendar.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_transparency.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_universe.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_version_bump_workflow.py +0 -0
- {alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/tests/test_version_pin.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: alpha-engine-lib
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.42.0
|
|
4
4
|
Summary: Shared utilities for the Alpha Engine modules: preflight, logging, ArcticDB, dates, decision capture, cost telemetry, Anthropic payload chokepoint, artifact freshness, RAG, agent schemas, SSM secrets, Telegram + SNS alerts, EC2 spot resilience, SSM log-capture, SSM dispatcher, Step-Functions execution-state projection, and S3-conditional-PUT writer locks. Full surface documented in README.
|
|
5
5
|
Author: Brian McMahon
|
|
6
6
|
License: Proprietary
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "alpha-engine-lib"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.42.0"
|
|
8
8
|
description = "Shared utilities for the Alpha Engine modules: preflight, logging, ArcticDB, dates, decision capture, cost telemetry, Anthropic payload chokepoint, artifact freshness, RAG, agent schemas, SSM secrets, Telegram + SNS alerts, EC2 spot resilience, SSM log-capture, SSM dispatcher, Step-Functions execution-state projection, and S3-conditional-PUT writer locks. Full surface documented in README."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
# EC2 still runs Python 3.9 on the always-on micro instance (boto3 drops
|
|
@@ -50,10 +50,19 @@ from pydantic import BaseModel, ConfigDict, Field, field_validator, model_valida
|
|
|
50
50
|
# ── Literals ─────────────────────────────────────────────────────────────
|
|
51
51
|
|
|
52
52
|
|
|
53
|
-
RegimeLiteral = Literal["bull", "neutral", "bear"
|
|
53
|
+
RegimeLiteral = Literal["bull", "neutral", "bear"]
|
|
54
54
|
"""Macro market regime — output of the macro_economist agent and the
|
|
55
55
|
macro critic. Drives sector_modifiers downstream and the executor's
|
|
56
|
-
graduated drawdown gate.
|
|
56
|
+
graduated drawdown gate.
|
|
57
|
+
|
|
58
|
+
3-class Ang-Bekaert taxonomy. The legacy 4th value ``"caution"`` was
|
|
59
|
+
retired in v0.42.0 (plan: caution-regime-retirement-260528.md): the
|
|
60
|
+
rule-based caution override at the macro-agent layer double-counted
|
|
61
|
+
signals already weighted into the continuous ``regime_intensity_z``
|
|
62
|
+
META_FEATURE. Portfolio-protective drawdown state is now a separate
|
|
63
|
+
axis (``drawdown_tier: Literal["risk_on","caution","risk_off"]``)
|
|
64
|
+
emitted by the predictor's drawdown leg; consumers compose the two
|
|
65
|
+
axes via most-protective override at decision time."""
|
|
57
66
|
|
|
58
67
|
|
|
59
68
|
CIORawDecisionLiteral = Literal["ADVANCE", "REJECT", "NO_ADVANCE_DEADLOCK"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: alpha-engine-lib
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.42.0
|
|
4
4
|
Summary: Shared utilities for the Alpha Engine modules: preflight, logging, ArcticDB, dates, decision capture, cost telemetry, Anthropic payload chokepoint, artifact freshness, RAG, agent schemas, SSM secrets, Telegram + SNS alerts, EC2 spot resilience, SSM log-capture, SSM dispatcher, Step-Functions execution-state projection, and S3-conditional-PUT writer locks. Full surface documented in README.
|
|
5
5
|
Author: Brian McMahon
|
|
6
6
|
License: Proprietary
|
|
@@ -325,6 +325,33 @@ class TestMacroEconomistRawOutput:
|
|
|
325
325
|
with pytest.raises(ValidationError):
|
|
326
326
|
MacroEconomistRawOutput(market_regime="exuberant")
|
|
327
327
|
|
|
328
|
+
def test_regime_literal_is_3class_caution_rejected(self):
|
|
329
|
+
# v0.42.0 retired "caution" from the macro market_regime taxonomy
|
|
330
|
+
# per caution-regime-retirement-260528.md. The 3-class Ang-Bekaert
|
|
331
|
+
# taxonomy (bull/neutral/bear) is the institutional baseline; the
|
|
332
|
+
# rule-based caution override at the macro-agent layer was double-
|
|
333
|
+
# counted by the continuous regime_intensity_z META_FEATURE.
|
|
334
|
+
# Portfolio-protective hysteresis (risk_on/caution/risk_off) is a
|
|
335
|
+
# separate axis emitted by the predictor drawdown leg.
|
|
336
|
+
from alpha_engine_lib.agent_schemas import (
|
|
337
|
+
MacroCriticOutput,
|
|
338
|
+
MacroEconomistRawOutput,
|
|
339
|
+
)
|
|
340
|
+
|
|
341
|
+
with pytest.raises(ValidationError):
|
|
342
|
+
MacroEconomistRawOutput(market_regime="caution")
|
|
343
|
+
with pytest.raises(ValidationError):
|
|
344
|
+
MacroCriticOutput(
|
|
345
|
+
action="revise", critique="elevated stress", suggested_regime="caution",
|
|
346
|
+
)
|
|
347
|
+
|
|
348
|
+
def test_regime_literal_accepts_all_3_classes(self):
|
|
349
|
+
from alpha_engine_lib.agent_schemas import MacroEconomistRawOutput
|
|
350
|
+
|
|
351
|
+
for regime in ("bull", "neutral", "bear"):
|
|
352
|
+
out = MacroEconomistRawOutput(market_regime=regime)
|
|
353
|
+
assert out.market_regime == regime
|
|
354
|
+
|
|
328
355
|
|
|
329
356
|
class TestMacroCriticOutput:
|
|
330
357
|
def test_accept_action(self):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/anthropic_payload.py
RENAMED
|
File without changes
|
|
File without changes
|
{alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/artifact_freshness.py
RENAMED
|
File without changes
|
{alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/collector_results.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/decision_capture.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/pipeline_status/__init__.py
RENAMED
|
File without changes
|
{alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/pipeline_status/read.py
RENAMED
|
File without changes
|
{alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/pipeline_status/registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/sources/__init__.py
RENAMED
|
File without changes
|
{alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/sources/protocols.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/trading_calendar.py
RENAMED
|
File without changes
|
|
File without changes
|
{alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib/transparency_inventory.yaml
RENAMED
|
File without changes
|
|
File without changes
|
{alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib.egg-info/SOURCES.txt
RENAMED
|
File without changes
|
|
File without changes
|
{alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib.egg-info/requires.txt
RENAMED
|
File without changes
|
{alpha_engine_lib-0.41.0 → alpha_engine_lib-0.42.0}/src/alpha_engine_lib.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|