Extend XIC v1 Engine with Symbolic Mode, 5 New Ops, GPU Path, Cognition Integration
New instructions: - STREAM: Line-by-line execution and output - CHAIN: Named execution boundaries - CALL_GLYPH: Invoke glyph-aware cognition - SET_CONTEXT: Set symbolic/cognitive context metadata - LOG: Structured logging Symbolic execution mode: - SET_MODE "symbolic" routes prompts through LAIN 8-lane cognition pipeline - run_symbolic_prompt() compresses prompt, builds manifest, executes via execute_symbolic() - Full integration with glyphos/cognitive_kernel.py GPU-accelerated path: - xic_extensions/gpu_runtime.py: has_gpu() probes torch.cuda, run_on_gpu() executes - SET_PARAM "use_gpu" true enables GPU (auto-fallback to CPU if unavailable) - No required GPU dependencies; system works equally on CPU Demo programs: - demo_symbolic.gx.json: Shows symbolic mode through LAIN pipeline - demo_gpu.gx.json: Shows GPU mode with CPU fallback Backward compatibility: - All 4 original ops unchanged; 5 new ops added to OP_TABLE - xic_vm.py, xic_executor.py: No changes (pure dispatcher pattern holds) - demo_chat.gx.json: Still executes identically - All existing GlyphRunner commands: Unchanged behavior Architecture: - Lazy imports prevent circular dependencies (xic_ops, glyphos, xic_extensions) - Clean separation: XIC is client of cognition layer - Zero breaking changes; additive extension only - No XIC v2 binary format; all within v1 JSON+.gx architecture Validation: - 10 integration tests: all passing - Backward compat verified with original demo - Symbolic and GPU modes tested end-to-end - No external dependencies required (GPU optional) Co-contributors: LAIN cognition engine, gx_compiler GSZ3, glyphos event system
This commit is contained in:
@@ -168,16 +168,16 @@ class CognitiveKernel:
|
||||
exec_context["cognitive_mode"] = mode
|
||||
|
||||
# Normalize segments
|
||||
normalized_segs = normalize_segments(segments, payload)
|
||||
normalized_segs = normalize_segments(manifest, segments, payload)
|
||||
|
||||
# Map to lanes (0-7)
|
||||
lane_assignments = map_lanes(manifest, normalized_segs)
|
||||
lane_assignments = map_lanes(normalized_segs)
|
||||
|
||||
# Build envelope
|
||||
envelope = build_envelope(manifest, normalized_segs)
|
||||
envelope = build_envelope(manifest, lane_assignments, payload, context=exec_context)
|
||||
|
||||
# Execute through LAIN with glyph bridge
|
||||
result = execute_with_lain(manifest, envelope, lane_assignments, exec_context)
|
||||
result = execute_with_lain(envelope)
|
||||
|
||||
# Cache result
|
||||
self._last_result = result
|
||||
@@ -257,6 +257,52 @@ class CognitiveKernel:
|
||||
}
|
||||
|
||||
|
||||
def run_symbolic_prompt(prompt: str, context: dict | None = None) -> str:
|
||||
"""Entry point for symbolic execution from XIC.
|
||||
|
||||
Compresses the prompt text into GSZ3 bytes, builds a minimal manifest,
|
||||
and routes through the full LAIN 8-lane cognition pipeline via
|
||||
CognitiveKernel.execute_symbolic(). Returns the output_text string.
|
||||
|
||||
Args:
|
||||
prompt: User or system prompt text
|
||||
context: Optional symbolic/cognitive context dict
|
||||
|
||||
Returns:
|
||||
String result from the 8-lane cognition pipeline
|
||||
"""
|
||||
from gx_compiler.compressor import GXCompressor
|
||||
|
||||
kernel = get_kernel()
|
||||
prompt_bytes = prompt.encode("utf-8")
|
||||
|
||||
try:
|
||||
payload = GXCompressor.compress(prompt)
|
||||
except Exception as e:
|
||||
return f"[Symbolic Error] Compression failed: {e}"
|
||||
|
||||
manifest = {
|
||||
"source_file": "<symbolic>",
|
||||
"source_type": "symbolic",
|
||||
"version": "1.0.0",
|
||||
"contributor": "XIC-symbolic",
|
||||
"segments": [{"id": "seg_0", "start": 0, "end": 1,
|
||||
"start_byte": 0, "end_byte": len(prompt_bytes)}],
|
||||
}
|
||||
segments = [{"id": "seg_0", "start": 0, "end": 1,
|
||||
"start_byte": 0, "end_byte": len(prompt_bytes)}]
|
||||
|
||||
result = kernel.execute_symbolic(
|
||||
manifest=manifest,
|
||||
segments=segments,
|
||||
payload=payload,
|
||||
mode="symbolic",
|
||||
context=context or {},
|
||||
)
|
||||
|
||||
return result.get("output_text") or result.get("fused_symbol", {}).get("summary", prompt)
|
||||
|
||||
|
||||
# Global singleton kernel instance
|
||||
_GLOBAL_KERNEL: Optional[CognitiveKernel] = None
|
||||
|
||||
|
||||
Reference in New Issue
Block a user