Quarantine the Eve operator surface publisher; Eve is deprecated, rebuild on Thing 2

Removes buildOperatorSurface, the surface_state and interface_binding documents, eve-surfaces.cc and the surface advertisement entries. Typed state and the provider advertisement stay. Parked at parked/weksa-eve-surface per thing2:ruling:eve-dashboards-quarantined.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
Meta Vens 2026-10-22 20:13:36 +02:00
commit 55c75e3bd0
7 changed files with 14 additions and 265 deletions

View file

@ -42,7 +42,7 @@ meaning-packet contract Weksa clients should target.
See [Verse Service Contract](./docs/verse-service-contract.md) for the daemon
contract: Weksa owns typed conversational intent, pronunciation plans, utterance
handoffs, and the Eve/CultMesh surfaces that make those documents inspectable.
handoffs, and the typed CultMesh state that makes those documents inspectable. Eve is deprecated and Thing 2 is its successor; the operator Eve surface is quarantined (see the contract).
See [Multilingual Utterance Lowering](./docs/multilingual-utterance-lowering.md)
for the shared lowering target: interlingua projected through speaker state into

View file

@ -4,7 +4,7 @@ Weksa is the language-intent daemon surface: currently a state spine, pipeline
map, fixtures, and service contract waiting for its runtime loop.
See [Verse Service Contract](./verse-service-contract.md) for the
CultCache/CultMesh/Eve authority map.
CultCache/CultMesh authority map.
## Objective

View file

@ -2,7 +2,7 @@
"schema": "gamecult.eve.provider_advertisement.v1",
"providerId": "weksa.intent.service",
"title": "Weksa Intent Service",
"description": "Weksa converts writing, interlingua, and agent state into typed conversational intent, target-language realizations, pronunciation plans, speech-provider requests, and utterance handoff documents for AquaSynth and other consumers.",
"description": "Weksa converts writing, interlingua, and agent state into typed conversational intent, pronunciation plans, and utterance handoff documents for AquaSynth and other consumers.",
"mode": "fixture-read-only",
"serviceVerse": {
"id": "verse.weksa.service.v1",
@ -12,7 +12,6 @@
"typed conversational intent",
"pronunciation plans",
"utterance handoff documents",
"speech-provider request projections",
"lowering traces",
"language-project and flavor-profile state"
],
@ -20,7 +19,6 @@
"AquaSynth learned embeddings",
"Faust compilation",
"rendered audio",
"MiMo provider audio",
"Persona canonical state"
]
},
@ -53,23 +51,13 @@
"weksa.utterance_embedding_handoff.v0.1"
]
},
{
"id": "weksa.speech_provider",
"kind": "speech_provider",
"cultMeshKey": "weksa.speech-provider/requests",
"authority": "Weksa speech-provider request projection",
"schemas": [
"weksa.mimo_tts_request.v0"
]
},
{
"id": "weksa.operator",
"kind": "operator",
"cultMeshKey": "weksa.operator/status",
"authority": "Weksa daemon runtime",
"schemas": [
"weksa.operator_state.v0",
"gamecult.eve.surface.v1"
"weksa.operator_state.v0"
]
},
{
@ -109,14 +97,6 @@
],
"durableShape": ".weksa/handoff/{utteranceId}.cc"
},
{
"family": "speech_provider",
"namespace": "weksa.speech_provider.*",
"witnesses": [
"weksa.mimo_tts_request.v0"
],
"durableShape": ".weksa/speech-provider/{requestId}.cc"
},
{
"family": "trace",
"namespace": "weksa.trace.*",
@ -133,47 +113,6 @@
"weksa.cultural_ontology_catalog.v0"
],
"durableShape": ".weksa/cultural-ontology/{storeId}.cc"
},
{
"family": "eve",
"namespace": "weksa.eve.*",
"witnesses": [
"gamecult.eve.provider_advertisement.v1",
"gamecult.eve.surface.v1"
],
"durableShape": ".weksa/eve-surfaces.cc"
}
],
"cultMeshSurfaceKeys": [
{
"id": "weksa.eve.intent_review.v0",
"documentSchema": "gamecult.eve.surface.v1",
"cultMeshKey": "weksa.eve.surface.intent-review",
"binds": [
"weksa.intent.*",
"weksa.trace.*"
],
"status": "expected-surface"
},
{
"id": "weksa.eve.pronunciation_trace.v0",
"documentSchema": "gamecult.eve.surface.v1",
"cultMeshKey": "weksa.eve.surface.pronunciation-trace",
"binds": [
"weksa.pronunciation.*",
"weksa.trace.*"
],
"status": "expected-surface"
},
{
"id": "weksa.eve.utterance_handoff.v0",
"documentSchema": "gamecult.eve.surface.v1",
"cultMeshKey": "weksa.eve.surface.utterance-handoff",
"binds": [
"weksa.utterance.*",
"aquasynth.speech.*"
],
"status": "expected-surface"
}
],
"commandBoundaries": [
@ -217,57 +156,11 @@
"audio rendering",
"AquaSynth synth driver truth"
]
},
{
"id": "weksa.command.speech_provider.project",
"owner": "Weksa",
"acceptedByFixture": false,
"allowedInputs": [
"accepted target-language realization",
"provider-neutral delivery intent",
"speech provider profile"
],
"emits": [
"weksa.mimo_tts_request.v0"
],
"forbiddenTargets": [
"source interlingua truth",
"Persona canonical state",
"rendered audio ownership"
]
},
{
"id": "weksa.command.speech_provider.mimo.voicedesign",
"owner": "Weksa",
"acceptedByFixture": true,
"commandIngress": "cultnet.transport.rudp.v0",
"inputSchema": "weksa.mimo_voicedesign_command.v0",
"allowedInputs": [
"Persona/agent state file path",
"weksa.interlingua_packet.v0-compatible object",
"raw thought text for provisional interlingua decomposition",
"optional target-language and performance-register controls"
],
"emits": [
"weksa.interlingua_packet.v0-daemon-provisional",
"weksa.mimo_tts_request.v0",
"weksa.mimo_voicedesign_receipt.v0",
"rendered audio artifact reference"
],
"forbiddenTargets": [
"Persona canonical state mutation",
"source meaning rewrite after accepted interlingua",
"MiMo-owned text optimization",
"AquaSynth embedding truth"
]
}
],
"loweringRules": [
"Weksa owns conversational intent and utterance lowering.",
"Speech-provider requests are target projections from accepted realizations, not source meaning.",
"AquaSynth owns learned embeddings, synth controls, Faust compilation, and audio output.",
"MiMo owns provider rendering and audio output, not Weksa delivery truth.",
"Eve surfaces submit commands and inspect witnesses; they do not own intent truth.",
"Fixture exports are discovery metadata until the daemon loop commits typed witnesses."
]
}

View file

@ -27,8 +27,8 @@
values with the AquaSynth-owned learned encoder.
- Add a daemon loop that commits conversational intent, pronunciation plans, and
utterance handoffs as typed CultCache witnesses.
- Publish the provider advertisement and first Eve operator/intent-review
surfaces through CultMesh for Odin discovery.
- Publish the provider advertisement through CultMesh for Odin discovery; the
operator view returns on Thing 2 (Eve is deprecated).
- Preserve the first English-only lowering proof under
`examples/english-lowering/`, and the shared multilingual proof under
`examples/multilingual-lowering/`.
@ -39,7 +39,7 @@
- Render glossed output through grammar, morphology, phonology, and diachrony.
- Emit a trace explaining which stage made each decision.
- Keep runtime LLM-free; model use belongs in authoring and critique.
- Keep CLI tools, fixtures, daemon jobs, and Eve commands on the same commit and
- Keep CLI tools, fixtures, and daemon jobs on the same commit and
derivation paths so Weksa does not grow split-brained intent truth.
## Later

View file

@ -25,8 +25,6 @@ Outputs:
- `weksa.mimo_voicedesign_command.v0`
- `weksa.mimo_tts_request.v0`
- `weksa.mimo_voicedesign_receipt.v0`
- Eve/CultUI surfaces for intent review, pronunciation inspection, and handoff
traces
Weksa owns conversational intent and utterance lowering. AquaSynth owns learned
phonetic realization, packed utterance embeddings, synth-driver controls, Faust
@ -39,12 +37,10 @@ and trace.
- `.weksa/provider-advertisement.cc`: read-only provider advertisement witness.
- `.weksa/provider-advertisement-store.cc`: CultMesh/CultCache provider store
containing `gamecult.eve.provider_advertisement.v1`,
`gamecult.eve.interface_binding.v1`, `gamecult.eve.surface_state.v1`,
`weksa.operator_state.v0`, `weksa.command_boundary.v1`, and
`weksa.transport_profile.v1` records for Odin discovery.
- `.weksa/operator-state.cc`: daemon health, readiness, and runtime witness
index used by Idunn health checks and operator inspection.
- `.weksa/eve-surfaces.cc`: current Weksa operator Eve surface witness.
- `.weksa/command-boundary.cc`: provider-owned command and lifecycle boundary
naming Weksa as owner, Idunn as lifecycle requester, and the MiMo
VoiceDesign RUDP command ingress as daemon-owned transport authority.
@ -107,20 +103,13 @@ Odin ingests the Starfire Weksa provider through
`.weksa/provider-advertisement-store.cc`. Idunn tracks the daemon as target
`weksa` in the `starfire-local` swarm profile and owns restart authority through
the Weksa restart script. Odin should read Weksa's provider advertisement,
operator state, command boundary, transport profile, and Eve surface from the
operator state, command boundary, and transport profile from the
typed provider store and RUDP command boundary; no HTTP endpoint owns provider
truth.
## Eve Surfaces
## Operator Dashboards
- `weksa.eve.intent_review.v0`: inspect typed conversational intent before it
becomes an utterance.
- `weksa.eve.pronunciation_trace.v0`: inspect pronunciation and IPA/prosody
lowering.
- `weksa.eve.utterance_handoff.v0`: inspect handoff packets, embedding request
status, and AquaSynth receipt links.
- `weksa.eve.operator.v0`: compact daemon state, queues, schema versions, and
witness freshness.
Eve is deprecated, and Thing 2 is its successor (`thing2:ruling:eve-dashboards-quarantined`, 2026-10-22). Weksa's operator Eve surface publisher is quarantined: removed from main and the build, parked at the `parked/weksa-eve-surface` tag, with follow-up `thing2:follow_up:weksa-operator-view-on-thing2` to rebuild it on Thing 2. Until Thing 2's surface contract is ready, Weksa publishes typed CultMesh state (operator state, command boundary, transport profile, provider advertisement) and no dashboard composition.
## Commands
@ -142,7 +131,7 @@ truth.
- Text renderers do not own meaning.
- AquaSynth does not own conversational intent.
- Eve lowerings do not own Weksa state.
- Dashboard renderers do not own Weksa state.
- Fixture emitters cannot become an alternate runtime truth.
- Agent transcript memory cannot silently override typed Persona or intent
documents.

View file

@ -157,14 +157,12 @@ async function publishWitnesses() {
const snapshot = await buildSnapshot();
await writeWitness("provider-advertisement.cc", snapshot.providerAdvertisement);
await writeWitness("operator-state.cc", snapshot.operatorState);
await writeWitness("eve-surfaces.cc", snapshot.operatorSurface);
await writeWitness("command-boundary.cc", snapshot.commandBoundary);
await writeWitness("transport-profile.cc", snapshot.transportProfile);
await writeWitness("cultmesh-publications.cc", snapshot.cultMeshPublications);
await writeCultMeshStore(snapshot);
await writeJson(resolve(stateRoot, "provider-advertisement.json"), snapshot.providerAdvertisement);
await writeJson(resolve(stateRoot, "operator-state.json"), snapshot.operatorState);
await writeJson(resolve(stateRoot, "eve-operator-surface.json"), snapshot.operatorSurface);
await writeJson(resolve(stateRoot, "command-boundary.json"), snapshot.commandBoundary);
await writeJson(resolve(stateRoot, "transport-profile.json"), snapshot.transportProfile);
await writeJson(resolve(stateRoot, "cultmesh-publications.json"), snapshot.cultMeshPublications);
@ -255,7 +253,6 @@ async function buildSnapshot() {
provider_advertisement: ".weksa/provider-advertisement.cc",
provider_advertisement_store: ".weksa/provider-advertisement-store.cc",
operator_state: ".weksa/operator-state.cc",
eve_surface: ".weksa/eve-surfaces.cc",
cultmesh_publications: ".weksa/cultmesh-publications.cc",
},
readiness: {
@ -270,7 +267,6 @@ async function buildSnapshot() {
};
const commandBoundary = buildCommandBoundary(updatedAt);
const transportProfile = buildTransportProfile(updatedAt);
const operatorSurface = buildOperatorSurface({ providerAdvertisement, operatorState, commandBoundary, cultureCatalog, tuning });
const cultMeshPublications = {
schema: "weksa.cultmesh_publications.v0",
service_id: "weksa.intent.service",
@ -283,14 +279,13 @@ async function buildSnapshot() {
publications: [
publication("weksa.service/provider-advertisement", "gamecult.eve.provider_advertisement.v1", ".weksa/provider-advertisement-store.cc", ".weksa/provider-advertisement-store.cc"),
publication("weksa.operator/status", "weksa.operator_state.v0", ".weksa/operator-state.cc", ".weksa/operator-state.cc"),
publication("weksa.eve.surface.operator", "gamecult.eve.surface.v1", ".weksa/eve-surfaces.cc", ".weksa/eve-surfaces.cc"),
publication("weksa.command-boundary", "weksa.command_boundary.v1", ".weksa/command-boundary.cc", null),
publication("weksa.transport-profile", "weksa.transport_profile.v1", ".weksa/transport-profile.cc", null),
publication("weksa.cultmesh/publications", "weksa.cultmesh_publications.v0", ".weksa/cultmesh-publications.cc", ".weksa/cultmesh-publications.cc"),
publication("weksa.speech-provider/mimo/voicedesign", WEKSA_MIMO_VOICEDESIGN_COMMAND_SCHEMA_ID, ".weksa/speech-provider/mimo/{requestId}/command.cc", formatRudpEndpoint(host, port)),
],
};
return { providerAdvertisement, operatorState, operatorSurface, commandBoundary, transportProfile, cultMeshPublications };
return { providerAdvertisement, operatorState, commandBoundary, transportProfile, cultMeshPublications };
}
async function writeCultMeshStore(snapshot) {
@ -301,16 +296,12 @@ async function writeCultMeshStore(snapshot) {
}
const {
providerAdvertisementDefinition,
interfaceBindingDefinition,
surfaceDefinition,
operatorStateDefinition,
commandBoundaryDefinition,
transportProfileDefinition,
} = defineCultMeshDocuments(runtime.defineDocumentType);
const documents = [
providerAdvertisementDefinition,
interfaceBindingDefinition,
surfaceDefinition,
operatorStateDefinition,
commandBoundaryDefinition,
transportProfileDefinition,
@ -318,35 +309,6 @@ async function writeCultMeshStore(snapshot) {
await rm(cultMeshStorePath, { force: true });
const node = await createCultMeshNodeWithOwnedStoreReset(runtime.CultMesh, cultMeshStorePath, documents);
await node.put(providerAdvertisementDefinition, snapshot.providerAdvertisement.providerId, snapshot.providerAdvertisement);
await node.put(interfaceBindingDefinition, "weksa.operator", {
bindingId: "weksa.operator",
providerId: snapshot.providerAdvertisement.providerId,
title: "Weksa Operator",
kind: "operator",
updatedAt: snapshot.operatorState.updated_at,
provider: {
providerId: snapshot.providerAdvertisement.providerId,
canonicalService: "asgard.weksa",
locatedService: "asgard.starfire.weksa",
cultMeshAddress: "asgard.starfire.weksa/eve/operator",
endpoints: [
{ transport: "cultmesh-store", address: ".weksa/provider-advertisement-store.cc" },
{ transport: CULTNET_RUDP_PROTOCOL_ID, address: formatRudpEndpoint(host, port) },
],
routes: [
{ transport: "cultmesh-store", address: ".weksa/provider-advertisement-store.cc" },
{ transport: CULTNET_RUDP_PROTOCOL_ID, address: formatRudpEndpoint(host, port) },
],
},
surface: snapshot.operatorSurface,
});
await node.put(surfaceDefinition, snapshot.providerAdvertisement.providerId, {
providerId: snapshot.providerAdvertisement.providerId,
title: "Weksa Operator",
version: tick + 1,
updatedAt: snapshot.operatorState.updated_at,
surface: snapshot.operatorSurface,
});
await node.put(operatorStateDefinition, "weksa", snapshot.operatorState);
await node.put(commandBoundaryDefinition, "weksa", snapshot.commandBoundary);
await node.put(transportProfileDefinition, "weksa", snapshot.transportProfile);
@ -392,31 +354,6 @@ function configureCultLibModulePath() {
}
function defineCultMeshDocuments(defineDocumentType) {
const surfaceDefinition = defineDocumentType({
type: "gamecult.eve.surface_state",
schemaName: "gamecult.eve.surface_state",
schemaId: "gamecult.eve.surface_state.v1",
schemaVersion: "gamecult.eve.surface_state.v1",
global: false,
name: (value) => value?.providerId || "surface",
schema: { parse: (value) => value },
members: [
{ slot: 0, memberName: "providerId", typeName: "string", isName: true },
{ slot: 1, memberName: "title", typeName: "string" },
{ slot: 2, memberName: "version", typeName: "long" },
{ slot: 3, memberName: "updatedAt", typeName: "string" },
{ slot: 4, memberName: "surface", typeName: "object" },
],
});
const interfaceBindingDefinition = defineDocumentType({
type: "gamecult.eve.interface_binding",
schemaName: "gamecult.eve.interface_binding",
schemaId: "gamecult.eve.interface_binding.v1",
schemaVersion: "gamecult.eve.interface_binding.v1",
global: false,
name: (value) => value?.bindingId || value?.providerId || "interface",
schema: { parse: (value) => value },
});
const providerAdvertisementDefinition = defineDocumentType({
type: "gamecult.eve.provider_advertisement",
schemaName: "gamecult.eve.provider_advertisement",
@ -455,8 +392,6 @@ function defineCultMeshDocuments(defineDocumentType) {
});
return {
providerAdvertisementDefinition,
interfaceBindingDefinition,
surfaceDefinition,
operatorStateDefinition,
commandBoundaryDefinition,
transportProfileDefinition,
@ -474,7 +409,7 @@ function loadProviderAdvertisement(updatedAt) {
updatedAt,
canonicalService: "asgard.weksa",
locatedService: "asgard.starfire.weksa",
cultMeshAddress: "asgard.starfire.weksa/eve/operator",
cultMeshAddress: "asgard.starfire.weksa/operator",
serviceVerse: {
...fixture.serviceVerse,
semanticAddress: "asgard.starfire.weksa",
@ -607,36 +542,6 @@ async function inspectCultureCatalog() {
};
}
function buildOperatorSurface({ providerAdvertisement, operatorState, commandBoundary, cultureCatalog, tuning }) {
return {
schema: "gamecult.eve.surface.v1",
providerId: providerAdvertisement.providerId,
surfaceId: "weksa.eve.operator.v0",
title: "Weksa",
updatedAt: operatorState.updated_at,
root: {
id: "weksa.operator.root",
kind: "panel",
props: {
title: "Weksa Intent Service",
providerId: providerAdvertisement.providerId,
status: operatorState.state,
},
children: [
fact("health", operatorState.state),
fact("verse", operatorState.verse_id),
fact("affect", operatorState.readiness.affect_aware_lowering),
fact("affect passes", tuning ? `${tuning.affect_contrast_visible}/${tuning.pass_count} visible` : "none"),
fact("culture profiles", String(cultureCatalog.profile_count)),
fact("target profiles", String(cultureCatalog.target_language_profile_count)),
fact("commands", operatorState.readiness.command_ingress),
fact("command boundary", commandBoundary.boundary_id),
fact("mimo voicedesign", operatorState.readiness.mimo_voicedesign),
],
},
};
}
async function handleMimoVoiceDesign(body) {
const command = validateMimoCommand(body);
const requestId = command.request_id || `mimo-${new Date().toISOString().replace(/[-:.TZ]/g, "")}-${Math.random().toString(36).slice(2, 8)}`;
@ -1008,14 +913,6 @@ async function callMimoVoiceDesign(mimoRequest) {
};
}
function fact(label, value) {
return {
id: `weksa.operator.fact.${label.replace(/[^a-z0-9]+/gi, "-").toLowerCase()}`,
kind: "text",
props: { label, text: `${label}: ${value}` },
};
}
function publication(key, schema, witness, endpoint) {
return {
key,

View file

@ -54,7 +54,7 @@ const document = {
kind: "operator",
cultMeshKey: "weksa.operator/status",
authority: "Weksa daemon runtime",
schemas: ["weksa.operator_state.v0", "gamecult.eve.surface.v1"],
schemas: ["weksa.operator_state.v0"],
},
{
id: "weksa.cultural_ontology",
@ -95,35 +95,6 @@ const document = {
witnesses: ["weksa.cultural_ontology_profile.v0", "weksa.cultural_ontology_catalog.v0"],
durableShape: ".weksa/cultural-ontology/{storeId}.cc",
},
{
family: "eve",
namespace: "weksa.eve.*",
witnesses: ["gamecult.eve.provider_advertisement.v1", "gamecult.eve.surface.v1"],
durableShape: ".weksa/eve-surfaces.cc",
},
],
cultMeshSurfaceKeys: [
{
id: "weksa.eve.intent_review.v0",
documentSchema: "gamecult.eve.surface.v1",
cultMeshKey: "weksa.eve.surface.intent-review",
binds: ["weksa.intent.*", "weksa.trace.*"],
status: "expected-surface",
},
{
id: "weksa.eve.pronunciation_trace.v0",
documentSchema: "gamecult.eve.surface.v1",
cultMeshKey: "weksa.eve.surface.pronunciation-trace",
binds: ["weksa.pronunciation.*", "weksa.trace.*"],
status: "expected-surface",
},
{
id: "weksa.eve.utterance_handoff.v0",
documentSchema: "gamecult.eve.surface.v1",
cultMeshKey: "weksa.eve.surface.utterance-handoff",
binds: ["weksa.utterance.*", "aquasynth.speech.*"],
status: "expected-surface",
},
],
commandBoundaries: [
{
@ -151,7 +122,6 @@ const document = {
loweringRules: [
"Weksa owns conversational intent and utterance lowering.",
"AquaSynth owns learned embeddings, synth controls, Faust compilation, and audio output.",
"Eve surfaces submit commands and inspect witnesses; they do not own intent truth.",
"Fixture exports are discovery metadata until the daemon loop commits typed witnesses.",
],
};