crucible-mcp 1.0.0__py3-none-any.whl → 1.0.1__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.
- crucible/enforcement/compliance.py +9 -5
- {crucible_mcp-1.0.0.dist-info → crucible_mcp-1.0.1.dist-info}/METADATA +1 -1
- {crucible_mcp-1.0.0.dist-info → crucible_mcp-1.0.1.dist-info}/RECORD +6 -6
- {crucible_mcp-1.0.0.dist-info → crucible_mcp-1.0.1.dist-info}/WHEEL +0 -0
- {crucible_mcp-1.0.0.dist-info → crucible_mcp-1.0.1.dist-info}/entry_points.txt +0 -0
- {crucible_mcp-1.0.0.dist-info → crucible_mcp-1.0.1.dist-info}/top_level.txt +0 -0
|
@@ -6,6 +6,7 @@ Supports Sonnet (default) and Opus (for high-stakes assertions).
|
|
|
6
6
|
|
|
7
7
|
import json
|
|
8
8
|
import os
|
|
9
|
+
import sys
|
|
9
10
|
from typing import Any
|
|
10
11
|
|
|
11
12
|
from crucible.enforcement.budget import (
|
|
@@ -79,8 +80,8 @@ def _load_api_key_from_config() -> str | None:
|
|
|
79
80
|
key = data.get("anthropic_api_key") or data.get("ANTHROPIC_API_KEY")
|
|
80
81
|
if key:
|
|
81
82
|
return key
|
|
82
|
-
except Exception:
|
|
83
|
-
|
|
83
|
+
except Exception as e:
|
|
84
|
+
print(f"Warning: failed to read {config_path}: {e}", file=sys.stderr)
|
|
84
85
|
|
|
85
86
|
return None
|
|
86
87
|
|
|
@@ -294,27 +295,30 @@ def run_single_assertion(
|
|
|
294
295
|
)
|
|
295
296
|
|
|
296
297
|
except ImportError as e:
|
|
298
|
+
print(f"Warning: LLM assertion '{assertion.id}' skipped: {e}", file=sys.stderr)
|
|
297
299
|
return LLMAssertionResult(
|
|
298
300
|
assertion_id=assertion.id,
|
|
299
|
-
passed=True, #
|
|
301
|
+
passed=True, # Graceful degradation - don't fail on missing dependency
|
|
300
302
|
findings=(),
|
|
301
303
|
tokens_used=0,
|
|
302
304
|
model_used=model_name,
|
|
303
305
|
error=str(e),
|
|
304
306
|
)
|
|
305
307
|
except ValueError as e:
|
|
308
|
+
print(f"Warning: LLM assertion '{assertion.id}' skipped: {e}", file=sys.stderr)
|
|
306
309
|
return LLMAssertionResult(
|
|
307
310
|
assertion_id=assertion.id,
|
|
308
|
-
passed=True, #
|
|
311
|
+
passed=True, # Graceful degradation - don't fail on missing API key
|
|
309
312
|
findings=(),
|
|
310
313
|
tokens_used=0,
|
|
311
314
|
model_used=model_name,
|
|
312
315
|
error=str(e),
|
|
313
316
|
)
|
|
314
317
|
except Exception as e:
|
|
318
|
+
print(f"Warning: LLM assertion '{assertion.id}' failed: {e}", file=sys.stderr)
|
|
315
319
|
return LLMAssertionResult(
|
|
316
320
|
assertion_id=assertion.id,
|
|
317
|
-
passed=True, #
|
|
321
|
+
passed=True, # Graceful degradation - don't fail on API errors
|
|
318
322
|
findings=(),
|
|
319
323
|
tokens_used=0,
|
|
320
324
|
model_used=model_name,
|
|
@@ -8,7 +8,7 @@ crucible/domain/detection.py,sha256=TNeLB_VQgS1AsT5BKDf_tIpGa47THrFoRXwU4u54VB0,
|
|
|
8
8
|
crucible/enforcement/__init__.py,sha256=FOaGSrE1SWFPxBJ1L5VoDhQDmlJgRXXs_iiI20wHf2Q,867
|
|
9
9
|
crucible/enforcement/assertions.py,sha256=ay5QvJIr_YaqWYbrJNhbouafJOiy4ZhwiX7E9VAY3s4,8166
|
|
10
10
|
crucible/enforcement/budget.py,sha256=-wFTlVY80c3-eJhvmlWrdlS8LB8E25aMnhtYpwR38sQ,4706
|
|
11
|
-
crucible/enforcement/compliance.py,sha256=
|
|
11
|
+
crucible/enforcement/compliance.py,sha256=skod0sa381Jwrg-N1FmjJBw4o0BeiBiDEqQ1osKGDQk,15269
|
|
12
12
|
crucible/enforcement/models.py,sha256=dEcPiUL6JEOBtxWOgKd_PZnsW_nUIaFsx18L70fM59M,4574
|
|
13
13
|
crucible/enforcement/patterns.py,sha256=hE4Z-JJ9OBruSFPBDxw_aNaSJbyUPD2SWCEwA1KzDmI,9720
|
|
14
14
|
crucible/enforcement/bundled/error-handling.yaml,sha256=2OSRhZwUGkF18bNfpARrVRsvgPgpyWr3pC0OUhtLgl0,2741
|
|
@@ -59,8 +59,8 @@ crucible/synthesis/__init__.py,sha256=CYrkZG4bdAjp8XdOh1smfKscd3YU5lZlaDLGwLE9c-
|
|
|
59
59
|
crucible/tools/__init__.py,sha256=gFRThTk1E-fHzpe8bB5rtBG6Z6G-ysPzjVEHfKGbEYU,400
|
|
60
60
|
crucible/tools/delegation.py,sha256=_x1y76No3qkmGjjROVvMx1pSKKwU59aRu5R-r07lVFU,12871
|
|
61
61
|
crucible/tools/git.py,sha256=7-aJCesoQe3ZEBFcRxHBhY8RpZrBlNtHSns__RqiG04,10406
|
|
62
|
-
crucible_mcp-1.0.
|
|
63
|
-
crucible_mcp-1.0.
|
|
64
|
-
crucible_mcp-1.0.
|
|
65
|
-
crucible_mcp-1.0.
|
|
66
|
-
crucible_mcp-1.0.
|
|
62
|
+
crucible_mcp-1.0.1.dist-info/METADATA,sha256=ltZIXAfvcRtmlStP51tk4Q7Ht49of5K1b_MegcZCmp0,6231
|
|
63
|
+
crucible_mcp-1.0.1.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
|
|
64
|
+
crucible_mcp-1.0.1.dist-info/entry_points.txt,sha256=18BZaH1OlFSFYtKuHq0Z8yYX8Wmx7Ikfqay-P00ZX3Q,83
|
|
65
|
+
crucible_mcp-1.0.1.dist-info/top_level.txt,sha256=4hzuFgqbFPOO-WiU_DYxTm8VYIxTXh7Wlp0gRcWR0Cs,9
|
|
66
|
+
crucible_mcp-1.0.1.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|