context-compiler 0.9.0.dev6__tar.gz → 0.9.0.dev7__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.
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/PKG-INFO +1 -1
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/pyproject.toml +1 -1
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/src/context_compiler/grammar.py +2 -33
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/.gitignore +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/LICENSE +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/README.md +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/01_llm_contradiction_error.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/02_llm_constraint_guardrail.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/03_llm_premise_guardrail.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/04_llm_tool_denylist_guardrail.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/05_llm_prompt_drift_vs_state.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/06_llm_context_compaction.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/07_llm_prompt_vs_state.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/08_llm_replacement_precondition.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/09_llm_confirmation_no_directive.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/README.md +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/__init__.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/common.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/llm_client.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/run_demo.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/examples/01_persistent_guardrails.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/examples/02_configuration_and_correction.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/examples/03_ambiguity_with_error.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/examples/04_tool_governance_denylist.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/examples/05_llm_integration_pattern.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/examples/06_step_sequence_and_state_restore.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/examples/07_single_policy_correction.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/examples/README.md +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/examples/_util.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/host_support/__init__.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/host_support/provider_mode.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/src/context_compiler/__init__.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/src/context_compiler/const.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/src/context_compiler/decision_helpers.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/src/context_compiler/engine.py +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/src/context_compiler/py.typed +0 -0
- {context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/src/context_compiler/repl.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: context-compiler
|
|
3
|
-
Version: 0.9.0.
|
|
3
|
+
Version: 0.9.0.dev7
|
|
4
4
|
Summary: Deterministic conversational state engine for LLM applications.
|
|
5
5
|
Project-URL: Homepage, https://github.com/rlippmann/context-compiler
|
|
6
6
|
Project-URL: Repository, https://github.com/rlippmann/context-compiler
|
|
@@ -21,19 +21,6 @@ class DirectiveKind(StrEnum):
|
|
|
21
21
|
CLEAR_STATE = "clear_state"
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
@dataclass(frozen=True, slots=True)
|
|
25
|
-
class ValidatedDirective:
|
|
26
|
-
"""Classify accepted input text as one canonical directive kind.
|
|
27
|
-
|
|
28
|
-
``text`` preserves the accepted input text used for classification rather
|
|
29
|
-
than a canonical rendered representation, so caller casing and formatting
|
|
30
|
-
may remain visible here.
|
|
31
|
-
"""
|
|
32
|
-
|
|
33
|
-
text: str
|
|
34
|
-
kind: DirectiveKind
|
|
35
|
-
|
|
36
|
-
|
|
37
24
|
@dataclass(frozen=True, slots=True)
|
|
38
25
|
class CanonicalDirective:
|
|
39
26
|
"""Represent one parsed canonical directive and its named operands.
|
|
@@ -409,22 +396,6 @@ def decompose_directive(text: str) -> CanonicalDirective | None:
|
|
|
409
396
|
return None
|
|
410
397
|
|
|
411
398
|
|
|
412
|
-
def validate_directive(text: str) -> ValidatedDirective | None:
|
|
413
|
-
"""Classify whether text is a canonical directive.
|
|
414
|
-
|
|
415
|
-
This determines whether ``text`` belongs to one canonical directive family
|
|
416
|
-
and returns only the normalized semantic kind needed for classification.
|
|
417
|
-
Callers can determine whether ``text`` is a canonical directive by checking
|
|
418
|
-
whether this returns a non-`None` result while only receiving
|
|
419
|
-
classification information. It does not expose operands, render directives,
|
|
420
|
-
repair malformed text, or evaluate any state transition.
|
|
421
|
-
"""
|
|
422
|
-
parsed = decompose_directive(text)
|
|
423
|
-
if parsed is None:
|
|
424
|
-
return None
|
|
425
|
-
return ValidatedDirective(text=parsed.text, kind=parsed.kind)
|
|
426
|
-
|
|
427
|
-
|
|
428
399
|
def render_directive(kind: DirectiveKind, /, **operands: str) -> str:
|
|
429
400
|
"""Produce canonical directive text from a semantic kind and operands.
|
|
430
401
|
|
|
@@ -461,8 +432,8 @@ def render_directive(kind: DirectiveKind, /, **operands: str) -> str:
|
|
|
461
432
|
|
|
462
433
|
operand_view = MappingProxyType(normalized_operands)
|
|
463
434
|
rendered = spec.renderer(operand_view)
|
|
464
|
-
|
|
465
|
-
if
|
|
435
|
+
decomposed = decompose_directive(rendered)
|
|
436
|
+
if decomposed is None or decomposed.kind is not normalized_kind:
|
|
466
437
|
raise ValueError(f"Operands do not produce a canonical {normalized_kind.value} directive.")
|
|
467
438
|
return rendered
|
|
468
439
|
|
|
@@ -470,10 +441,8 @@ def render_directive(kind: DirectiveKind, /, **operands: str) -> str:
|
|
|
470
441
|
__all__ = [
|
|
471
442
|
"CanonicalDirective",
|
|
472
443
|
"DirectiveKind",
|
|
473
|
-
"ValidatedDirective",
|
|
474
444
|
"contains_multiple_canonical_directives",
|
|
475
445
|
"decompose_directive",
|
|
476
446
|
"match_canonical_directive_start",
|
|
477
447
|
"render_directive",
|
|
478
|
-
"validate_directive",
|
|
479
448
|
]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/01_llm_contradiction_error.py
RENAMED
|
File without changes
|
{context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/02_llm_constraint_guardrail.py
RENAMED
|
File without changes
|
{context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/03_llm_premise_guardrail.py
RENAMED
|
File without changes
|
{context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/04_llm_tool_denylist_guardrail.py
RENAMED
|
File without changes
|
{context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/05_llm_prompt_drift_vs_state.py
RENAMED
|
File without changes
|
{context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/06_llm_context_compaction.py
RENAMED
|
File without changes
|
|
File without changes
|
{context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/demos/08_llm_replacement_precondition.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/examples/01_persistent_guardrails.py
RENAMED
|
File without changes
|
|
File without changes
|
{context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/examples/03_ambiguity_with_error.py
RENAMED
|
File without changes
|
{context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/examples/04_tool_governance_denylist.py
RENAMED
|
File without changes
|
{context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/examples/05_llm_integration_pattern.py
RENAMED
|
File without changes
|
|
File without changes
|
{context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/examples/07_single_policy_correction.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/src/context_compiler/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{context_compiler-0.9.0.dev6 → context_compiler-0.9.0.dev7}/src/context_compiler/decision_helpers.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|