Files
correx/docs/visual/ref/data.jsx
T

115 lines
7.7 KiB
React
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// data.jsx — Correx scenario fixture
// Session: implementing CAS-based storage for segments (Kafka-style) of domain data.
// The kernel ("Correx") is the orchestration harness; the model is a stateless worker.
const SESSION = {
id: "01J9-CAS-SEG-7F2A",
name: "cas-segment-storage",
project: "correx/segment-store",
branch: "feat/cas-segments",
state: "awaiting_approval",
started: "14:02:11",
model: "qwen_coder_14b",
provider: "local",
};
// Stage / transition graph. current = implementation.
const STAGES = [
{ id: "intake", role: "router", status: "done", enter: "14:02", note: "parsed request → plan" },
{ id: "planning", role: "architect", status: "done", enter: "14:04", note: "segment layout + CAS index" },
{ id: "implementation", role: "coder", status: "active", enter: "14:11", note: "writing SegmentStore.kt" },
{ id: "validation", role: "reviewer", status: "pending", enter: "—", note: "schema + semantic checks" },
{ id: "integration", role: "coder", status: "pending", enter: "—", note: "wire into DomainLog" },
{ id: "done", role: "—", status: "pending", enter: "—", note: "" },
];
const TRANSITIONS = [
{ when: 'artifact.status == "success"', goto: "validation" },
{ when: "retries > 3", goto: "failed" },
{ when: 'semantic.contradiction', goto: "retry" },
];
// Router conversation. The last assistant turn is mid-stream.
const CONVERSATION = [
{ role: "user", t: "14:02", text: "Implement CAS-based storage for segments, Kafka-style. Domain data lands as an append-only log; segments should be content-addressed so dedup is free." },
{ role: "kernel", t: "14:02", kind: "route", text: "Routed → planning (role: architect). Synthesized Context Pack [4 sources, 6.1k tok]." },
{ role: "assistant", t: "14:05", text: "Plan: each segment is an immutable, size-bounded run of records keyed by SHA-256 of its bytes. A SegmentIndex maps logical offset ranges → CAS keys. Compaction rewrites overlapping segments; identical segments collapse to one object. Writing SegmentStore.kt, CasKey.kt, SegmentIndex.kt." },
{ role: "kernel", t: "14:11", kind: "route", text: "Transition planning → implementation (role: coder). Tools: filesystem, git, shell." },
{ role: "assistant", t: "14:12", streaming: true, text: "SegmentStore.append() now hashes the framed buffer with a streaming SHA-256 and writes <key>.seg under .correx/cas/. To pull zstd compression for cold segments I need com.github.luben:zstd-jni — resolving it touches the network, so I've raised a T3 approval before running gradle" },
];
// Live event stream (newest at bottom). category drives color + filter.
const EVENTS = [
{ id: "e41", t: "14:11:02", cat: "Lifecycle", type: "stage.enter", text: "implementation (role=coder)" },
{ id: "e42", t: "14:11:02", cat: "Context", type: "pack.synthesized", text: "4 sources · 6,120 tok · dedup 38%" },
{ id: "e43", t: "14:11:03", cat: "Inference", type: "infer.start", text: "qwen_coder_14b · t=0.2 · ctx 6.1k/32k" },
{ id: "e44", t: "14:11:19", cat: "Tool", type: "fs.write", text: "SegmentStore.kt (+212)" },
{ id: "e45", t: "14:11:20", cat: "Tool", type: "fs.write", text: "CasKey.kt (+47)" },
{ id: "e46", t: "14:11:24", cat: "Domain", type: "artifact.partial", text: "ImplementationArtifact draft" },
{ id: "e47", t: "14:11:31", cat: "Tool", type: "shell.exec", text: "./gradlew compileKotlin → OK (3.2s)" },
{ id: "e48", t: "14:11:48", cat: "Inference", type: "infer.token", text: "streaming … 1,204 tok" },
{ id: "e49", t: "14:12:02", cat: "Approval", type: "approval.raised", text: "T3 · gradle network resolve", pending: true },
];
// Pending approval (modal interrupt).
const APPROVAL = {
tier: "T3",
tierLabel: "external / network",
tool: "shell",
intent: "Resolve a new dependency over the network",
command: "./gradlew :segment-store:dependencies --refresh-dependencies",
detail: "Adds com.github.luben:zstd-jni:1.5.6-3 for cold-segment compression. Touches Maven Central (network egress).",
reversible: false,
policy: "stages.implementation.approvals.tool_tier_3 = required",
risks: [
"Network egress to repo1.maven.org",
"Mutates gradle.lockfile",
"New transitive: org.lz4? (none detected)",
],
};
// Context Pack — what the model actually receives. Layered L0..L4.
const CONTEXT_PACK = {
budget: 32768,
used: 6120,
layers: [
{ id: "L0", name: "live execution", tok: 1840, mode: "verbatim", items: ["current diff: SegmentStore.kt", "last tool result: compileKotlin OK"] },
{ id: "L1", name: "stage-local", tok: 1310, mode: "verbatim", items: ["stage=implementation", "role=coder card", "allowed tools (3)"] },
{ id: "L2", name: "compressed session", tok: 1490, mode: "semantic_summary", items: ["plan summary", "CasKey design decision", "rejected: per-record hashing"] },
{ id: "L3", name: "project memory", tok: 980, mode: "ranked", items: ["DomainLog.kt interface", "build conventions", "ADR-014 immutability"] },
{ id: "L4", name: "archival", tok: 500, mode: "latest_only", items: ["prior CAS spike (summary)"] },
],
dropped: ["12 stale tool logs (summarized)", "router chit-chat (excluded)", "duplicate file reads (deduped)"],
};
// Model registry.
const MODELS = [
{ id: "qwen_coder_14b", provider: "local", active: true, caps: ["coding", "tool_calling", "reasoning"], ctx: 32768, temp: 0.2, gpu: "48 layers · q8_0 kv", status: "warm", parallel: "1/2" },
{ id: "qwen_coder_32b", provider: "local", active: false, caps: ["coding", "tool_calling", "reasoning"], ctx: 32768, temp: 0.2, gpu: "unloaded", status: "cold", parallel: "0/1" },
{ id: "gpt-oss-120b", provider: "remote", active: false, caps: ["coding", "reasoning"], ctx: 131072, temp: 0.3, gpu: "—", status: "ready", parallel: "0/8" },
{ id: "claude-sonnet", provider: "remote", active: false, caps: ["coding", "tool_calling", "reasoning"], ctx: 200000, temp: 0.2, gpu: "—", status: "ready", parallel: "0/8" },
];
// Tool palette.
const TOOLS = [
{ id: "filesystem", tier: "T2", enabled: true, mode: "auto", desc: "read/write workspace files" },
{ id: "git", tier: "T2", enabled: true, mode: "auto", desc: "stage, commit, branch" },
{ id: "shell", tier: "T2", enabled: true, mode: "prompt", desc: "run bounded commands" },
{ id: "gradle", tier: "T3", enabled: true, mode: "prompt", desc: "build · may resolve deps (network)" },
{ id: "curl", tier: "T3", enabled: false, mode: "deny", desc: "raw network egress" },
{ id: "rm", tier: "T4", enabled: false, mode: "deny", desc: "destructive delete" },
];
// Command palette entries — id maps to an overlay/action in app.jsx.
const COMMANDS = [
{ id: "events", label: "Inspect event stream", hint: "filter · drill payload", key: "e" },
{ id: "context", label: "Inspect Context Pack", hint: "what the model sees", key: "c" },
{ id: "graph", label: "Stage / transition graph", hint: "workflow DAG", key: "g" },
{ id: "models", label: "Model registry", hint: "switch provider/model", key: "m" },
{ id: "tools", label: "Tool palette", hint: "enable · tiers · approvals", key: "t" },
{ id: "approval", label: "Review pending approval", hint: "T3 gate", key: "a" },
{ id: "appearance", label: "Cycle aesthetic direction", hint: "Boxed · Soft · Bare", key: "F2" },
];
window.CORREX = { SESSION, STAGES, TRANSITIONS, CONVERSATION, EVENTS, APPROVAL, CONTEXT_PACK, MODELS, TOOLS, COMMANDS };